発生している問題
VSCodeでPytestの設定をしていたのですが、GoogleCloud の Cloud Logging を設定するとPytestからテストを見つけられなく問題に遭遇しました。
Djangoのsettigns.pyは下記のとおりです。
# Initialize the Cloud Logging client
client = cloud_logging.Client()
# Add the Cloud Logging handler
cloud_handler = cloud_logging.handlers.CloudLoggingHandler(client)
cloud_handler.setLevel(logging.INFO) # Or any level you desire
# Initialize Django's logging config
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '[{asctime}] {levelname} line {lineno}, in {funcName} {message}',
'style': '{',
},
},
'handlers': {
'console_log': {
'class': 'logging.StreamHandler',
'formatter': 'verbose',
},
'stackdriver': {
'class': 'google.cloud.logging.handlers.CloudLoggingHandler',
'client': client,
}
},
# 以下省略
このエラーの原因
原因はまだ分かっていません。
cloud_handler = cloud_logging.handlers.CloudLoggingHandler(client)
この行を読み込むだけで pytest が機能しなくなることだけは分かっています。
回避方法
回避方法は settings_test.py を作成してCloud Loggingを使わない設定ファイルを用意してもダメでした。
settings.py に Cloud Logging handler が設定されているだけでエラーになります。
テスト環境では settings_test.py を設定しているのに腑に落ちません。
Cloud Logging handler の設定を消すことでのみpytestが正常に動作することを確認しました。
もっと良い解決方法や原因が分かる方がおられましたらコメントをいただけると嬉しいです。
コメントを残す