def load_response(file_or_stream): from rest_framework.response import Response context = json.loads(_read(file_or_stream)) response = Response(context['data'], status=context['status_code'], content_type=context['content_type']) response._is_rendered = True if dj_version < (3, 2): response._headers = context['headers'] else: response.headers = context['headers'] return response
def unauthorized_response(self, request): response = Response( {"detail": "This action is not authorized"}, content_type="application/json", status=status.HTTP_401_UNAUTHORIZED, ) response.accepted_renderer = JSONRenderer() response.accepted_media_type = "application/json" response.renderer_context = {} # Render the response response._is_rendered = False response.render() return response
def test_process_response_exception(django_request, mocker, caplog): mock_send_message = mocker.patch( SEND_MSG_F, side_effect=Exception('ERR'), ) settings.TELEGRAM_BOT = { 'CONVERSATIONS': [ 'tests.bot.conftest.ConvTest', ], 'TOKEN': 'token', 'COMMANDS_SUFFIX': 'dev', 'HISTORY_LOOKUP_MODEL_PROPERTY': 'created_at', 'MIDDLEWARE': { 'CHAT_ID': 123, 'RULES': [{ 'view': 'view', 'conditions': { 'type': 'function', 'function': 'tests.test_configurator.cond_fn', }, 'trigger_codes': [1, 2], 'message': 'msg', }], }, } response = Response( data={'field': 'value'}, headers={'Content-Type': 'application/json'}, ) response._is_rendered = True response.content = '{"field":"value"}' response.render() response.status_code = 1 def get_response(self): return response with caplog.at_level(logging.ERROR): mw = TelegramMiddleware(get_response) assert mw(django_request) == response mock_send_message.assert_called_once() expected_config = settings.TELEGRAM_BOT['MIDDLEWARE']['RULES'][0] assert ( f'TelegramMiddleware rule {expected_config} finished with error: ERR' ) in caplog.records[0].message
def test_process_response_matches(django_request, mocker): mock_send_message = mocker.patch( SEND_MSG_F, return_value=True, ) settings.TELEGRAM_BOT = { 'CONVERSATIONS': [ 'tests.bot.conftest.ConvTest', ], 'TOKEN': 'token', 'COMMANDS_SUFFIX': 'dev', 'HISTORY_LOOKUP_MODEL_PROPERTY': 'created_at', 'MIDDLEWARE': { 'CHAT_ID': 123, 'RULES': [{ 'view': 'view', 'trigger_codes': [1, 2], 'conditions': { 'type': 'value', 'field': 'field', 'field_value': 'value', }, 'message': 'msg', }], }, } response = Response( data={'field': 'value'}, headers={'Content-Type': 'application/json'}, ) response._is_rendered = True response.content = '{"field":"value"}' response.render() response.status_code = 1 def get_response(self): return response mw = TelegramMiddleware(get_response) assert mw(django_request) == response mock_send_message.assert_called_once_with( '[dev] view with pk pk-1 has ended with 1 and sends message: msg', )