私は Django 1.3 を使用しており、ロギング システムで出力と対話の数を確認する必要があります。ロギングには Django-Sentry を使用していますが、通常の Python ロガーと同じように機能しているようです。
私はモックに python-mockito を使用しています。可能であれば、さまざまなメソッドが呼び出された回数とそれらが返すメッセージを確認したいと思います。
私は次のようなチェックを達成しようとしています:
from foo import views
logger = mock()
views.logger = logger
do_method()
verify(logger).error(any, any)
do_method()
verifyZeroInteractions(logger)
また、パラメーターを確認できると便利です。
models.py
:
from django.db import models
import logging
from sentry.client.handlers import SentryHandler
logger = logging.getLogger(__name__)
try:
is_logging_setup = True
except NameError:
is_logging_setup = True
logger.setLevel(settings.LOGGING_LEVEL)
logger.addHandler(SentryHandler())
class Foo(models.Model):
def bar(self):
logger.warning("Rawr", 'extra': { 'data': 'foo' })
tests.py
:
class TestModelFoo(TestCase):
def setUp(self):
self.foo = Foo()
def test_getting_logged(self):
self.foo.bar()
# Check the log output.
出力をキャッチする方法について何か提案はありますか?