mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-11 09:27:56 -04:00
Quietly ignore extra personalisation
> If a user makes an API request with additional personalisation fields, > we should simply discard any fields that the template doesn't have. > > This gives a couple of related advantages: > > - modifying template parameters no longer requires downtime for > clients - as they can pass in extra new parameters before a template > change, or continue passing in old unused parameters after removing > them from a template > > - services can pass in large user objects, for example, and then play > around with templates adding and removing fields at will > > we should make sure we still return an error if a user doesn't pass in > a required parameter. – https://www.pivotaltracker.com/story/show/140774195
This commit is contained in:
@@ -913,14 +913,12 @@ def test_create_template_raises_invalid_request_exception_with_missing_personali
|
||||
assert {'template': ['Missing personalisation: Name']} == e.value.message
|
||||
|
||||
|
||||
def test_create_template_raises_invalid_request_exception_with_too_much_personalisation_data(
|
||||
def test_create_template_doesnt_raise_with_too_much_personalisation(
|
||||
sample_template_with_placeholders
|
||||
):
|
||||
from app.notifications.rest import create_template_object_for_notification
|
||||
template = Template.query.get(sample_template_with_placeholders.id)
|
||||
with pytest.raises(InvalidRequest) as e:
|
||||
create_template_object_for_notification(template, {'name': 'Jo', 'extra': 'stuff'})
|
||||
assert {'template': ['Personalisation not needed for template: foo']} in e.value.message
|
||||
create_template_object_for_notification(template, {'name': 'Jo', 'extra': 'stuff'})
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
|
||||
Reference in New Issue
Block a user