Как протестировать пользовательское промежуточное ПО в django?
class VersionCheckMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
meta = request.META
client_data = VersionChecks.get_meta_info(meta)
client = client_data.get('client')
backward_compatibility = {}
last_compatible_pwa_version = backward_compatibility.get('last_supported_pwa_version', 823)
if client == APP_TYPES.consumer_web:
pwa_version = int(client_data.get('client_version', 0))
native_version = int(client_data.get('platform_version', 0))
if pwa_version < last_compatible_pwa_version:
return JsonResponse(UNSUPPORTED_APP_VERSION, status=400)
response = self.get_response(request)
return response
Я написал это пользовательское промежуточное ПО, как я могу протестировать его? Вот мой тестовый код
class TestVersionCheckMiddleware(unittest.TestCase):
@patch('misc.middlewares.version_check_middleware.VersionCheckMiddleware')
def test_init(self, version_check_middleware_mock):
vcm = VersionCheckMiddleware('response')
assert vcm.get_response == 'response'
def test_version_check_middleware(self):
mock_request = Mock()
mock_request.META = {
"HTTP_X_APP_CLIENT": 21,
"HTTP_X_APP_PLATFORM": 21,
"HTTP_X_APP_PLATFORM_VERSION": 23,
"HTTP_X_APP_VERSION": 32,
"app_version": 323,
}
vcm_middleware_response = VersionCheckMiddleware()
assert vcm_middleware_response.get_response == (UNSUPPORTED_APP_VERSION, 400)
Этот тестовый пример не вызывает промежуточное ПО, как я могу правильно протестировать это промежуточное ПО? Любые ресурсы о том, как я могу решить эту проблему, пожалуйста, поделитесь ими тоже