Set postage for templated letters when the address is not from the united-kingdom.

If the address is from the united-kingdom use the postage from the template.
This commit is contained in:
Rebecca Law
2020-07-29 13:42:20 +01:00
parent 8e1fa6ab50
commit ed5e73d548
3 changed files with 35 additions and 3 deletions

View File

@@ -174,6 +174,30 @@ def test_post_letter_notification_stores_country(
'Kronprinzenpalais\n'
'Germany'
)
assert notification.postage == 'europe'
def test_post_letter_notification_international_sets_rest_of_world(
client, notify_db_session, mocker
):
service = create_service(service_permissions=[LETTER_TYPE, INTERNATIONAL_LETTERS])
template = create_template(service, template_type="letter")
mocker.patch('app.celery.tasks.letters_pdf_tasks.get_pdf_for_templated_letter.apply_async')
data = {
'template_id': str(template.id),
'personalisation': {
'address_line_1': 'Prince Harry',
'address_line_2': 'Toronto',
'address_line_5': 'Canada',
}
}
resp_json = letter_request(client, data, service_id=service.id)
assert validate(resp_json, post_letter_response) == resp_json
notification = Notification.query.one()
assert notification.postage == 'rest-of-world'
@pytest.mark.parametrize('permissions, personalisation, expected_error', (