def test_response_401(self): am = AuthorizationMiddleware(Mock()) result = am._response_401('TEST') self.assertIsInstance(result, HttpResponseUnauthorized) self.assertEqual(result._headers['www-authenticate'], ('WWW-Authenticate', 'Bearer realm="TEST"'))
def test_response_400(self): am = AuthorizationMiddleware(Mock()) result = am._response_400() self.assertIsInstance(result, HttpResponseBadRequest) self.assertEqual( result._headers['www-authenticate'], ('WWW-Authenticate', 'Bearer realm="invalid_request"'))
def test_process_view_when_not_request_api_jobs(self, m_settings): m_settings.RUN_MODE_PRODUCTION = settings.RUN_MODE_PRODUCTION m_settings.RUN_MODE = settings.RUN_MODE_PRODUCTION view_func = Mock(__name__='api_papers') request = HttpRequest() am = AuthorizationMiddleware(Mock()) result = am.process_view(request, view_func, Mock(), Mock()) self.assertEqual(result, None)
def test_process_view_with_valid_authorization(self, m_settings): m_settings.RUN_MODE_PRODUCTION = settings.RUN_MODE_PRODUCTION m_settings.RUN_MODE = settings.RUN_MODE_PRODUCTION view_func = Mock(__name__='api_jobs_fetchrss') request = HttpRequest() request.META = { 'HTTP_AUTHORIZATION': 'Bearer API_TOKEN', } am = AuthorizationMiddleware(Mock()) am.token = 'API_TOKEN' result = am.process_view(request, view_func, Mock(), Mock()) self.assertEqual(result, None)
def test_init_in_production_and_API_TOKEN_not_defined(self, m_settings): m_settings.RUN_MODE_PRODUCTION = settings.RUN_MODE_PRODUCTION m_settings.RUN_MODE = settings.RUN_MODE_PRODUCTION m_settings.API_TOKEN = None with self.assertRaises(EnvironmentVariableNotDefineError): AuthorizationMiddleware(Mock())
def test_init_in_production_and_API_TOKEN_defined(self, m_settings): m_settings.RUN_MODE_PRODUCTION = settings.RUN_MODE_PRODUCTION m_settings.RUN_MODE = settings.RUN_MODE_PRODUCTION m_settings.API_TOKEN = 'SOME_API_TOKEN' self.assertIsInstance(AuthorizationMiddleware(Mock()), AuthorizationMiddleware)
def test_init_in_development_and_API_TOKEN_not_defined(self, m_settings): m_settings.RUN_MODE_PRODUCTION = settings.RUN_MODE_PRODUCTION m_settings.RUN_MODE = settings.RUN_MODE_DEVELOPMENT m_settings.API_TOKEN = None self.assertIsInstance(AuthorizationMiddleware(Mock()), AuthorizationMiddleware)
def test_enabled(self, run_mode, expected, m_settings): m_settings.RUN_MODE_PRODUCTION = settings.RUN_MODE_PRODUCTION m_settings.RUN_MODE = run_mode m_settings.API_TOKEN = 'SOME_API_TOKEN' am = AuthorizationMiddleware(Mock()) self.assertEqual(am.enabled, expected)
def test_process_view_invalid_authorization(self, authorization, expected_instance, m_settings): m_settings.RUN_MODE_PRODUCTION = settings.RUN_MODE_PRODUCTION m_settings.RUN_MODE = settings.RUN_MODE_PRODUCTION view_func = Mock(__name__='api_jobs_fetchrss') request = HttpRequest() request.META = { 'HTTP_AUTHORIZATION': authorization, } am = AuthorizationMiddleware(Mock()) am.token = 'API_TOKEN' result = am.process_view(request, view_func, Mock(), Mock()) self.assertIsInstance(result, expected_instance)