Merge pull request #2996 from alphagov/serialise-broadcast-template-content

Serialise content for broadcast templates
This commit is contained in:
Chris Hill-Scott
2020-10-15 16:35:10 +01:00
committed by GitHub
2 changed files with 22 additions and 3 deletions

View File

@@ -377,7 +377,6 @@ class TemplateSchemaNoDetail(TemplateSchema):
class Meta(TemplateSchema.Meta): class Meta(TemplateSchema.Meta):
exclude = TemplateSchema.Meta.exclude + ( exclude = TemplateSchema.Meta.exclude + (
'archived', 'archived',
'content',
'created_at', 'created_at',
'created_by', 'created_by',
'created_by_id', 'created_by_id',
@@ -396,6 +395,11 @@ class TemplateSchemaNoDetail(TemplateSchema):
'broadcast_data', 'broadcast_data',
) )
@pre_dump
def remove_content_for_non_broadcast_templates(self, template):
if template.template_type != models.BROADCAST_TYPE:
template.content = None
class TemplateHistorySchema(BaseSchema): class TemplateHistorySchema(BaseSchema):

View File

@@ -561,22 +561,37 @@ def test_should_get_return_all_fields_by_default(
{'detailed': False}, {'detailed': False},
{'detailed': 'False'}, {'detailed': 'False'},
)) ))
@pytest.mark.parametrize('template_type, expected_content', (
(EMAIL_TYPE, None),
(SMS_TYPE, None),
(LETTER_TYPE, None),
(BROADCAST_TYPE, 'This is a test'),
))
def test_should_not_return_content_and_subject_if_requested( def test_should_not_return_content_and_subject_if_requested(
admin_request, admin_request,
sample_email_template, sample_service,
extra_args, extra_args,
template_type,
expected_content,
): ):
create_template(
sample_service,
template_type=template_type,
content='This is a test',
)
json_response = admin_request.get( json_response = admin_request.get(
'template.get_all_templates_for_service', 'template.get_all_templates_for_service',
service_id=sample_email_template.service.id, service_id=sample_service.id,
**extra_args **extra_args
) )
assert json_response['data'][0].keys() == { assert json_response['data'][0].keys() == {
'content',
'folder', 'folder',
'id', 'id',
'name', 'name',
'template_type', 'template_type',
} }
assert json_response['data'][0]['content'] == expected_content
@pytest.mark.parametrize( @pytest.mark.parametrize(