2019-11-08 09:56:59 +00:00
|
|
|
|
import pytest
|
2019-09-06 17:10:48 +01:00
|
|
|
|
from flask import current_app
|
|
|
|
|
|
|
2019-11-08 09:56:59 +00:00
|
|
|
|
from app.s3_client.s3_letter_upload_client import (
|
|
|
|
|
|
format_recipient,
|
|
|
|
|
|
upload_letter_to_s3,
|
|
|
|
|
|
)
|
2019-09-06 17:10:48 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_upload_letter_to_s3(mocker):
|
|
|
|
|
|
s3_mock = mocker.patch('app.s3_client.s3_letter_upload_client.utils_s3upload')
|
|
|
|
|
|
|
2019-10-07 15:22:11 +01:00
|
|
|
|
upload_letter_to_s3(
|
|
|
|
|
|
'pdf_data',
|
|
|
|
|
|
file_location='service_id/upload_id.pdf',
|
|
|
|
|
|
status='valid',
|
|
|
|
|
|
page_count=3,
|
|
|
|
|
|
filename='my_doc')
|
2019-09-06 17:10:48 +01:00
|
|
|
|
|
|
|
|
|
|
s3_mock.assert_called_once_with(
|
|
|
|
|
|
bucket_name=current_app.config['TRANSIENT_UPLOADED_LETTERS'],
|
|
|
|
|
|
file_location='service_id/upload_id.pdf',
|
|
|
|
|
|
filedata='pdf_data',
|
2019-10-07 15:22:11 +01:00
|
|
|
|
metadata={'status': 'valid', 'page_count': '3', 'filename': 'my_doc'},
|
2019-09-06 17:10:48 +01:00
|
|
|
|
region=current_app.config['AWS_REGION']
|
|
|
|
|
|
)
|
2019-10-15 15:55:17 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_upload_letter_to_s3_with_message_and_invalid_pages(mocker):
|
|
|
|
|
|
s3_mock = mocker.patch('app.s3_client.s3_letter_upload_client.utils_s3upload')
|
|
|
|
|
|
|
|
|
|
|
|
upload_letter_to_s3(
|
|
|
|
|
|
'pdf_data',
|
|
|
|
|
|
file_location='service_id/upload_id.pdf',
|
|
|
|
|
|
status='invalid',
|
|
|
|
|
|
page_count=3,
|
|
|
|
|
|
filename='my_doc',
|
|
|
|
|
|
message='This file failed',
|
|
|
|
|
|
invalid_pages=[1, 2, 5])
|
|
|
|
|
|
|
|
|
|
|
|
s3_mock.assert_called_once_with(
|
|
|
|
|
|
bucket_name=current_app.config['TRANSIENT_UPLOADED_LETTERS'],
|
|
|
|
|
|
file_location='service_id/upload_id.pdf',
|
|
|
|
|
|
filedata='pdf_data',
|
|
|
|
|
|
metadata={
|
|
|
|
|
|
'status': 'invalid',
|
|
|
|
|
|
'page_count': '3',
|
|
|
|
|
|
'filename': 'my_doc',
|
|
|
|
|
|
'message': 'This file failed',
|
|
|
|
|
|
'invalid_pages': '[1, 2, 5]'
|
|
|
|
|
|
},
|
|
|
|
|
|
region=current_app.config['AWS_REGION']
|
|
|
|
|
|
)
|
2019-11-08 09:56:59 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize('original_address,expected_address', [
|
|
|
|
|
|
('The Queen, Buckingham Palace, SW1 1AA', 'The Queen, Buckingham Palace, SW1 1AA'),
|
|
|
|
|
|
('The Queen Buckingham Palace SW1 1AA', 'The Queen Buckingham Palace SW1 1AA'),
|
|
|
|
|
|
('The Queen,\nBuckingham Palace,\r\nSW1 1AA', 'The Queen, Buckingham Palace, SW1 1AA'),
|
|
|
|
|
|
('The Queen ,,\nBuckingham Palace,\rSW1 1AA,', 'The Queen, Buckingham Palace, SW1 1AA'),
|
|
|
|
|
|
(' The Queen\n Buckingham Palace\n SW1 1AA', 'The Queen, Buckingham Palace, SW1 1AA'),
|
|
|
|
|
|
("The ’Queen\n Buckingham Palace\n SW1 1AA", "The 'Queen, Buckingham Palace, SW1 1AA"),
|
|
|
|
|
|
])
|
|
|
|
|
|
def test_format_recipient(original_address, expected_address):
|
|
|
|
|
|
assert format_recipient(original_address) == expected_address
|