如何在Django Rest Framework unittest中模拟日志记录?

时间:2018-02-12 13:59:22

标签: python django logging django-rest-framework

我有一个单元测试,用于测试未经授权的用户是否可以GET某个网址。我想使用unittest.mock来模拟请求中的日志记录。如何指示装饰器使用正确的记录器?我的测试看起来像:

@patch(what goes here???)
def test_response_list_not_authenticated(self, mock_logging):
    url = django.core.urlresolvers.reverse("project-api:response-list", args=[6])
    response = self.client.get(url, format="json")
    self.assertEqual(response.status_code, rest_framework.status.HTTP_401_UNAUTHORIZED)
    self.assertEqual(mock_logging.error.called, True)

1 个答案:

答案 0 :(得分:0)

您只需将路径添加到logging对象,例如,您在"myapp.views"文件中有以下内容

import logging

logger = logging.getLogger(__name__)

然后在你的测试中你做:

@patch('myapp.views.logger')
def test_response_list_not_authenticated(self, mock_logger):
     ...
     # asserts about logger
     self.assertEqual(mock_logger.error.called, True)
相关问题