我正在使用 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.
关于如何捕捉输出的任何建议?