Я изучаю, как тестировать промежуточное ПО 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__
?