From 7f72d3a60f813c587916e6a85a9eba21e97eb1aa Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Fri, 4 Feb 2022 10:46:02 +0000 Subject: [PATCH] Bump utils to 53.0.0 Changes: 53.0.0 --- * `notifications_utils.columns.Columns` has moved to `notifications_utils.insensitive_dict.InsensitiveDict` * `notifications_utils.columns.Rows` has moved to `notifications_utils.recipients.Rows` * `notifications_utils.columns.Cell` has moved to `notifications_utils.recipients.Cell` 52.0.0 --- * Deprecate the following unused `redis_client` functions: - `redis_client.increment_hash_value` - `redis_client.decrement_hash_value` - `redis_client.get_all_from_hash` - `redis_client.set_hash_and_expire` - `redis_client.expire` 51.3.1 --- * Bump govuk-bank-holidays to cache holidays for next year. --- app/celery/tasks.py | 4 ++-- app/models.py | 27 ++++++++++++++++++--------- requirements.in | 2 +- requirements.txt | 2 +- tests/app/celery/test_tasks.py | 2 +- 5 files changed, 23 insertions(+), 14 deletions(-) diff --git a/app/celery/tasks.py b/app/celery/tasks.py index 48e419781..d83bf7cc2 100644 --- a/app/celery/tasks.py +++ b/app/celery/tasks.py @@ -3,7 +3,7 @@ from collections import defaultdict, namedtuple from datetime import datetime from flask import current_app -from notifications_utils.columns import Columns +from notifications_utils.insensitive_dict import InsensitiveDict from notifications_utils.postal_address import PostalAddress from notifications_utils.recipients import RecipientCSV from notifications_utils.timezones import convert_utc_to_bst @@ -351,7 +351,7 @@ def save_letter( notification = encryption.decrypt(encrypted_notification) postal_address = PostalAddress.from_personalisation( - Columns(notification['personalisation']) + InsensitiveDict(notification['personalisation']) ) service = SerialisedService.from_id(service_id) diff --git a/app/models.py b/app/models.py index 2486a4045..c6269e421 100644 --- a/app/models.py +++ b/app/models.py @@ -3,8 +3,11 @@ import itertools import uuid from flask import current_app, url_for -from notifications_utils.columns import Columns +from notifications_utils.insensitive_dict import InsensitiveDict from notifications_utils.letter_timings import get_letter_timings +from notifications_utils.postal_address import ( + address_lines_1_to_6_and_postcode_keys, +) from notifications_utils.recipients import ( InvalidEmailError, InvalidPhoneError, @@ -1692,14 +1695,20 @@ class Notification(db.Model): } if self.notification_type == LETTER_TYPE: - col = Columns(self.personalisation) - serialized['line_1'] = col.get('address_line_1') - serialized['line_2'] = col.get('address_line_2') - serialized['line_3'] = col.get('address_line_3') - serialized['line_4'] = col.get('address_line_4') - serialized['line_5'] = col.get('address_line_5') - serialized['line_6'] = col.get('address_line_6') - serialized['postcode'] = col.get('postcode') + personalisation = InsensitiveDict(self.personalisation) + + ( + serialized['line_1'], + serialized['line_2'], + serialized['line_3'], + serialized['line_4'], + serialized['line_5'], + serialized['line_6'], + serialized['postcode'], + ) = ( + personalisation.get(line) for line in address_lines_1_to_6_and_postcode_keys + ) + serialized['estimated_delivery'] = \ get_letter_timings(serialized['created_at'], postage=self.postage)\ .earliest_delivery\ diff --git a/requirements.in b/requirements.in index 6868d299d..9cba7ec2d 100644 --- a/requirements.in +++ b/requirements.in @@ -31,7 +31,7 @@ notifications-python-client==6.0.2 # PaaS awscli-cwlogs==1.4.6 -notifications-utils @ git+https://github.com/alphagov/notifications-utils.git@51.3.0 +notifications-utils @ git+https://github.com/alphagov/notifications-utils.git@53.0.0 # gds-metrics requires prometheseus 0.2.0, override that requirement as 0.7.1 brings significant performance gains prometheus-client==0.10.1 diff --git a/requirements.txt b/requirements.txt index a90098a04..0b21f21ea 100644 --- a/requirements.txt +++ b/requirements.txt @@ -148,7 +148,7 @@ mistune==0.8.4 # via notifications-utils notifications-python-client==6.0.2 # via -r requirements.in -notifications-utils @ git+https://github.com/alphagov/notifications-utils.git@51.3.0 +notifications-utils @ git+https://github.com/alphagov/notifications-utils.git@53.0.0 # via -r requirements.in orderedset==2.0.3 # via notifications-utils diff --git a/tests/app/celery/test_tasks.py b/tests/app/celery/test_tasks.py index deb82afc1..08bba3c38 100644 --- a/tests/app/celery/test_tasks.py +++ b/tests/app/celery/test_tasks.py @@ -7,7 +7,7 @@ import pytest import requests_mock from celery.exceptions import Retry from freezegun import freeze_time -from notifications_utils.columns import Row +from notifications_utils.recipients import Row from notifications_utils.template import ( LetterPrintTemplate, PlainTextEmailTemplate,