예제 #1
0
def test_process_response_not_matches_by_response_code(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 = 5

    def get_response(self):
        return response

    mw = TelegramMiddleware(get_response)

    assert mw(django_request) == response
    mock_send_message.assert_not_called()
예제 #2
0
def test_process_response_not_json(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="model", headers={'Content-Type': 'text/html'})

    def get_response(self):
        return response

    mw = TelegramMiddleware(get_response)

    assert mw(None) == response
    mock_send_message.assert_not_called()