【发布时间】:2020-07-16 23:04:27
【问题描述】:
我正在学习如何对 Django 中间件进行单元测试。
在“旧式”中间件中,使用process_request() 加载中间件来测试结果很容易。例如
def test_session(self):
request = self.factory.get('/')
session_middleware = SessionMiddleware()
session_middleware.process_request(request)
// Do stuff
但是,在“新风格”中,这并不存在。例如,我将如何测试以下示例 Django docs 提供?
class TimezoneMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
tzname = request.session.get('django_timezone')
if tzname:
timezone.activate(pytz.timezone(tzname))
else:
timezone.deactivate()
return self.get_response(request)
使用TimezoneMiddleware(request) 将调用__init__ 而不是__call__?
【问题讨论】:
标签: python django django-testing django-middleware django-tests