def test_create_fake_letter_response_file_calls_dvla_callback_on_development(
        notify_api, mocker):
    mocker.patch('app.celery.research_mode_tasks.file_exists',
                 return_value=False)
    mocker.patch('app.celery.research_mode_tasks.s3upload')

    with set_config_values(notify_api, {'NOTIFY_ENVIRONMENT': 'development'}):
        with requests_mock.Mocker() as request_mock:
            request_mock.post(
                'http://localhost:6011/notifications/letter/dvla',
                content=b'{}',
                status_code=200)

            create_fake_letter_response_file('random-ref')

            assert request_mock.last_request.json() == {
                "Type": "Notification",
                "MessageId": "some-message-id",
                "Message": ANY
            }
            assert json.loads(request_mock.last_request.json()['Message']) == {
                "Records": [{
                    "s3": {
                        "object": {
                            "key": dvla_response_file_matcher
                        }
                    }
                }]
            }
def test_create_fake_letter_response_file_gives_up_after_thirty_times(notify_api, mocker):
    mock_file_exists = mocker.patch('app.celery.research_mode_tasks.file_exists', return_value=True)
    mock_s3upload = mocker.patch('app.celery.research_mode_tasks.s3upload')

    with pytest.raises(ValueError):
        create_fake_letter_response_file('random-ref')

    assert len(mock_file_exists.mock_calls) == 30
    assert not mock_s3upload.called
Exemplo n.º 3
0
def test_create_fake_letter_response_file_does_not_call_dvla_callback_on_preview(
        notify_api, mocker):
    mocker.patch('app.celery.research_mode_tasks.s3upload')

    with set_config_values(notify_api, {'NOTIFY_ENVIRONMENT': 'preview'}):
        with requests_mock.Mocker() as request_mock:
            create_fake_letter_response_file('example-ref')

            assert request_mock.last_request is None
Exemplo n.º 4
0
def test_create_fake_letter_response_file_does_not_call_dvla_callback_on_preview(notify_api, mocker):
    mocker.patch("app.celery.research_mode_tasks.file_exists", return_value=False)
    mocker.patch("app.celery.research_mode_tasks.s3upload")

    with set_config_values(notify_api, {"NOTIFY_ENVIRONMENT": "preview"}):
        with requests_mock.Mocker() as request_mock:
            create_fake_letter_response_file("random-ref")

            assert request_mock.last_request is None
Exemplo n.º 5
0
def test_create_fake_letter_response_file_calls_dvla_callback_on_development(notify_api, mocker):
    mocker.patch("app.celery.research_mode_tasks.file_exists", return_value=False)
    mocker.patch("app.celery.research_mode_tasks.s3upload")
    mock_task = mocker.patch("app.celery.research_mode_tasks.process_sns_results")

    with set_config_values(notify_api, {"NOTIFY_ENVIRONMENT": "development"}):
        some_ref = str(uuid.uuid4())
        create_fake_letter_response_file(some_ref)

        mock_task.apply_async.assert_called_once_with(ANY, queue=QueueNames.RESEARCH_MODE)
        message = json.loads(mock_task.apply_async.call_args[0][0][0])
        assert message["MessageId"] == some_ref
def test_create_fake_letter_response_file_tries_to_create_files_with_other_filenames(notify_api, mocker):
    mock_file_exists = mocker.patch('app.celery.research_mode_tasks.file_exists', side_effect=[True, True, False])
    mock_s3upload = mocker.patch('app.celery.research_mode_tasks.s3upload')

    create_fake_letter_response_file('random-ref')

    assert mock_file_exists.mock_calls == [
        call('test.notify.com-ftp', dvla_response_file_matcher),
        call('test.notify.com-ftp', dvla_response_file_matcher),
        call('test.notify.com-ftp', dvla_response_file_matcher),
    ]
    mock_s3upload.assert_called_once_with(
        filedata=ANY,
        region=ANY,
        bucket_name=ANY,
        file_location=dvla_response_file_matcher
    )
def test_create_fake_letter_response_file_uploads_response_file_s3(
        notify_api, mocker):
    mocker.patch('app.celery.research_mode_tasks.file_exists',
                 return_value=False)
    mock_s3upload = mocker.patch('app.celery.research_mode_tasks.s3upload')

    with requests_mock.Mocker() as request_mock:
        request_mock.post('http://localhost:6011/notifications/letter/dvla',
                          content=b'{}',
                          status_code=200)

        create_fake_letter_response_file('random-ref')

        mock_s3upload.assert_called_once_with(
            filedata='random-ref|Sent|0|Sorted',
            region=current_app.config['AWS_REGION'],
            bucket_name=current_app.config['DVLA_RESPONSE_BUCKET_NAME'],
            file_location=dvla_response_file_matcher)
Exemplo n.º 8
0
def test_create_fake_letter_response_file_uploads_response_file_s3(
        notify_api, mocker):
    mock_s3upload = mocker.patch('app.celery.research_mode_tasks.s3upload')
    filename = 'NOTIFY-20180125140000-RSP.TXT'

    with requests_mock.Mocker() as request_mock:
        request_mock.post(
            'http://localhost:6011/notifications/letter/dvla/example-ref',
            content=b'{}',
            status_code=200)

        create_fake_letter_response_file('example-ref')

        mock_s3upload.assert_called_once_with(
            filedata='example-ref|Sent|0|Sorted',
            region=current_app.config['AWS_REGION'],
            bucket_name=current_app.config['DVLA_RESPONSE_BUCKET_NAME'],
            file_location=filename)
Exemplo n.º 9
0
def test_create_fake_letter_response_file_uploads_response_file_s3(notify_api, mocker):
    mocker.patch("app.celery.research_mode_tasks.file_exists", return_value=False)
    mock_s3upload = mocker.patch("app.celery.research_mode_tasks.s3upload")

    with requests_mock.Mocker() as request_mock:
        request_mock.post(
            "http://localhost:6011/notifications/letter/dvla",
            content=b"{}",
            status_code=200,
        )

        create_fake_letter_response_file("random-ref")

        mock_s3upload.assert_called_once_with(
            filedata="random-ref|Sent|0|Sorted",
            region=current_app.config["AWS_REGION"],
            bucket_name=current_app.config["DVLA_RESPONSE_BUCKET_NAME"],
            file_location=dvla_response_file_matcher,
        )
Exemplo n.º 10
0
def test_create_fake_letter_response_file_calls_dvla_callback_on_development(
        notify_api, mocker):
    mocker.patch('app.celery.research_mode_tasks.s3upload')
    filename = 'NOTIFY-20180125140000-RSP.TXT'

    with set_config_values(notify_api, {
        'NOTIFY_ENVIRONMENT': 'development'
    }):
        with requests_mock.Mocker() as request_mock:
            request_mock.post(
                'http://localhost:6011/notifications/letter/dvla/example-ref',
                content=b'{}',
                status_code=200
            )

            create_fake_letter_response_file('example-ref')

            assert request_mock.last_request.json() == {
                "Type": "Notification",
                "MessageId": "some-message-id",
                "Message": '{"Records":[{"s3":{"object":{"key":"' + filename + '"}}}]}'
            }