This commit is contained in:
Kenneth Kehl
2023-08-29 14:54:30 -07:00
parent 19dcd7a48b
commit 1ecb747c6d
588 changed files with 34100 additions and 23589 deletions

View File

@@ -16,27 +16,35 @@ from app.models import Template, TemplateHistory, TemplateRedacted
from tests.app.db import create_template
@pytest.mark.parametrize('template_type, subject', [
('sms', None),
('email', 'subject'),
])
@pytest.mark.parametrize(
"template_type, subject",
[
("sms", None),
("email", "subject"),
],
)
def test_create_template(sample_service, sample_user, template_type, subject):
data = {
'name': 'Sample Template',
'template_type': template_type,
'content': "Template content",
'service': sample_service,
'created_by': sample_user
"name": "Sample Template",
"template_type": template_type,
"content": "Template content",
"service": sample_service,
"created_by": sample_user,
}
if subject:
data.update({'subject': subject})
data.update({"subject": subject})
template = Template(**data)
dao_create_template(template)
assert Template.query.count() == 1
assert len(dao_get_all_templates_for_service(sample_service.id)) == 1
assert dao_get_all_templates_for_service(sample_service.id)[0].name == 'Sample Template'
assert dao_get_all_templates_for_service(sample_service.id)[0].process_type == 'normal'
assert (
dao_get_all_templates_for_service(sample_service.id)[0].name
== "Sample Template"
)
assert (
dao_get_all_templates_for_service(sample_service.id)[0].process_type == "normal"
)
def test_create_template_creates_redact_entry(sample_service):
@@ -52,20 +60,20 @@ def test_create_template_creates_redact_entry(sample_service):
def test_update_template(sample_service, sample_user):
data = {
'name': 'Sample Template',
'template_type': "sms",
'content': "Template content",
'service': sample_service,
'created_by': sample_user
"name": "Sample Template",
"template_type": "sms",
"content": "Template content",
"service": sample_service,
"created_by": sample_user,
}
template = Template(**data)
dao_create_template(template)
created = dao_get_all_templates_for_service(sample_service.id)[0]
assert created.name == 'Sample Template'
assert created.name == "Sample Template"
created.name = 'new name'
created.name = "new name"
dao_update_template(created)
assert dao_get_all_templates_for_service(sample_service.id)[0].name == 'new name'
assert dao_get_all_templates_for_service(sample_service.id)[0].name == "new name"
def test_redact_template(sample_template):
@@ -83,8 +91,8 @@ def test_redact_template(sample_template):
def test_get_all_templates_for_service(service_factory):
service_1 = service_factory.get('service 1', email_from='service.1')
service_2 = service_factory.get('service 2', email_from='service.2')
service_1 = service_factory.get("service 1", email_from="service.1")
service_2 = service_factory.get("service 2", email_from="service.2")
assert Template.query.count() == 2
assert len(dao_get_all_templates_for_service(service_1.id)) == 1
@@ -92,19 +100,19 @@ def test_get_all_templates_for_service(service_factory):
create_template(
service=service_1,
template_name='Sample Template 1',
template_name="Sample Template 1",
template_type="sms",
content="Template content",
)
create_template(
service=service_1,
template_name='Sample Template 2',
template_name="Sample Template 2",
template_type="sms",
content="Template content",
)
create_template(
service=service_2,
template_name='Sample Template 3',
template_name="Sample Template 3",
template_type="sms",
content="Template content",
)
@@ -116,33 +124,48 @@ def test_get_all_templates_for_service(service_factory):
def test_get_all_templates_for_service_is_alphabetised(sample_service):
create_template(
template_name='Sample Template 1',
template_name="Sample Template 1",
template_type="sms",
content="Template content",
service=sample_service
service=sample_service,
)
template_2 = create_template(
template_name='Sample Template 2',
template_name="Sample Template 2",
template_type="sms",
content="Template content",
service=sample_service
service=sample_service,
)
create_template(
template_name='Sample Template 3',
template_name="Sample Template 3",
template_type="sms",
content="Template content",
service=sample_service
service=sample_service,
)
assert Template.query.count() == 3
assert dao_get_all_templates_for_service(sample_service.id)[0].name == 'Sample Template 1'
assert dao_get_all_templates_for_service(sample_service.id)[1].name == 'Sample Template 2'
assert dao_get_all_templates_for_service(sample_service.id)[2].name == 'Sample Template 3'
assert (
dao_get_all_templates_for_service(sample_service.id)[0].name
== "Sample Template 1"
)
assert (
dao_get_all_templates_for_service(sample_service.id)[1].name
== "Sample Template 2"
)
assert (
dao_get_all_templates_for_service(sample_service.id)[2].name
== "Sample Template 3"
)
template_2.name = 'AAAAA Sample Template 2'
template_2.name = "AAAAA Sample Template 2"
dao_update_template(template_2)
assert dao_get_all_templates_for_service(sample_service.id)[0].name == 'AAAAA Sample Template 2'
assert dao_get_all_templates_for_service(sample_service.id)[1].name == 'Sample Template 1'
assert (
dao_get_all_templates_for_service(sample_service.id)[0].name
== "AAAAA Sample Template 2"
)
assert (
dao_get_all_templates_for_service(sample_service.id)[1].name
== "Sample Template 1"
)
def test_get_all_returns_empty_list_if_no_templates(sample_service):
@@ -152,13 +175,10 @@ def test_get_all_returns_empty_list_if_no_templates(sample_service):
def test_get_all_templates_ignores_archived_templates(sample_service):
normal_template = create_template(
template_name='Normal Template',
service=sample_service,
archived=False
template_name="Normal Template", service=sample_service, archived=False
)
archived_template = create_template(
template_name='Archived Template',
service=sample_service
template_name="Archived Template", service=sample_service
)
# sample_template fixture uses dao, which forces archived = False at creation.
archived_template.archived = True
@@ -172,15 +192,11 @@ def test_get_all_templates_ignores_archived_templates(sample_service):
def test_get_all_templates_ignores_hidden_templates(sample_service):
normal_template = create_template(
template_name='Normal Template',
service=sample_service,
archived=False
template_name="Normal Template", service=sample_service, archived=False
)
create_template(
template_name='Hidden Template',
hidden=True,
service=sample_service
template_name="Hidden Template", hidden=True, service=sample_service
)
templates = dao_get_all_templates_for_service(sample_service.id)
@@ -191,62 +207,63 @@ def test_get_all_templates_ignores_hidden_templates(sample_service):
def test_get_template_by_id_and_service(sample_service):
sample_template = create_template(
template_name='Test Template',
service=sample_service)
template_name="Test Template", service=sample_service
)
template = dao_get_template_by_id_and_service_id(
template_id=sample_template.id,
service_id=sample_service.id)
template_id=sample_template.id, service_id=sample_service.id
)
assert template.id == sample_template.id
assert template.name == 'Test Template'
assert template.name == "Test Template"
assert template.version == sample_template.version
assert not template.redact_personalisation
def test_get_template_by_id_and_service_returns_none_for_hidden_templates(sample_service):
def test_get_template_by_id_and_service_returns_none_for_hidden_templates(
sample_service,
):
sample_template = create_template(
template_name='Test Template',
hidden=True,
service=sample_service
template_name="Test Template", hidden=True, service=sample_service
)
with pytest.raises(NoResultFound):
dao_get_template_by_id_and_service_id(
template_id=sample_template.id,
service_id=sample_service.id
template_id=sample_template.id, service_id=sample_service.id
)
def test_get_template_version_returns_none_for_hidden_templates(sample_service):
sample_template = create_template(
template_name='Test Template',
hidden=True,
service=sample_service
template_name="Test Template", hidden=True, service=sample_service
)
with pytest.raises(NoResultFound):
dao_get_template_by_id_and_service_id(
sample_template.id,
sample_service.id,
'1'
sample_template.id, sample_service.id, "1"
)
def test_get_template_by_id_and_service_returns_none_if_no_template(sample_service, fake_uuid):
def test_get_template_by_id_and_service_returns_none_if_no_template(
sample_service, fake_uuid
):
with pytest.raises(NoResultFound) as e:
dao_get_template_by_id_and_service_id(template_id=fake_uuid, service_id=sample_service.id)
assert 'No row was found when one was required' in str(e.value)
dao_get_template_by_id_and_service_id(
template_id=fake_uuid, service_id=sample_service.id
)
assert "No row was found when one was required" in str(e.value)
def test_create_template_creates_a_history_record_with_current_data(sample_service, sample_user):
def test_create_template_creates_a_history_record_with_current_data(
sample_service, sample_user
):
assert Template.query.count() == 0
assert TemplateHistory.query.count() == 0
data = {
'name': 'Sample Template',
'template_type': "email",
'subject': "subject",
'content': "Template content",
'service': sample_service,
'created_by': sample_user
"name": "Sample Template",
"template_type": "email",
"subject": "subject",
"content": "Template content",
"service": sample_service,
"created_by": sample_user,
}
template = Template(**data)
dao_create_template(template)
@@ -264,27 +281,29 @@ def test_create_template_creates_a_history_record_with_current_data(sample_servi
assert template_from_db.created_by.id == template_history.created_by_id
def test_update_template_creates_a_history_record_with_current_data(sample_service, sample_user):
def test_update_template_creates_a_history_record_with_current_data(
sample_service, sample_user
):
assert Template.query.count() == 0
assert TemplateHistory.query.count() == 0
data = {
'name': 'Sample Template',
'template_type': "email",
'subject': "subject",
'content': "Template content",
'service': sample_service,
'created_by': sample_user
"name": "Sample Template",
"template_type": "email",
"subject": "subject",
"content": "Template content",
"service": sample_service,
"created_by": sample_user,
}
template = Template(**data)
dao_create_template(template)
created = dao_get_all_templates_for_service(sample_service.id)[0]
assert created.name == 'Sample Template'
assert created.name == "Sample Template"
assert Template.query.count() == 1
assert Template.query.first().version == 1
assert TemplateHistory.query.count() == 1
created.name = 'new name'
created.name = "new name"
dao_update_template(created)
assert Template.query.count() == 1
@@ -294,8 +313,8 @@ def test_update_template_creates_a_history_record_with_current_data(sample_servi
assert template_from_db.version == 2
assert TemplateHistory.query.filter_by(name='Sample Template').one().version == 1
assert TemplateHistory.query.filter_by(name='new name').one().version == 2
assert TemplateHistory.query.filter_by(name="Sample Template").one().version == 1
assert TemplateHistory.query.filter_by(name="new name").one().version == 2
def test_get_template_history_version(sample_user, sample_service, sample_template):
@@ -303,16 +322,15 @@ def test_get_template_history_version(sample_user, sample_service, sample_templa
sample_template.content = "New content"
dao_update_template(sample_template)
old_template = dao_get_template_by_id_and_service_id(
sample_template.id,
sample_service.id,
'1'
sample_template.id, sample_service.id, "1"
)
assert old_template.content == old_content
def test_can_get_template_then_redacted_returns_right_values(sample_template):
template = dao_get_template_by_id_and_service_id(template_id=sample_template.id,
service_id=sample_template.service_id)
template = dao_get_template_by_id_and_service_id(
template_id=sample_template.id, service_id=sample_template.service_id
)
assert not template.redact_personalisation
dao_redact_template(template=template, user_id=sample_template.created_by_id)
assert template.redact_personalisation
@@ -320,13 +338,15 @@ def test_can_get_template_then_redacted_returns_right_values(sample_template):
def test_get_template_versions(sample_template):
original_content = sample_template.content
sample_template.content = 'new version'
sample_template.content = "new version"
dao_update_template(sample_template)
versions = dao_get_template_versions(service_id=sample_template.service_id, template_id=sample_template.id)
versions = dao_get_template_versions(
service_id=sample_template.service_id, template_id=sample_template.id
)
assert len(versions) == 2
versions = sorted(versions, key=lambda x: x.version)
assert versions[0].content == original_content
assert versions[1].content == 'new version'
assert versions[1].content == "new version"
assert versions[0].created_at == versions[1].created_at
@@ -334,16 +354,17 @@ def test_get_template_versions(sample_template):
assert versions[1].updated_at is not None
from app.schemas import template_history_schema
v = template_history_schema.dump(versions, many=True)
assert len(v) == 2
assert {template_history['version'] for template_history in v} == {1, 2}
assert {template_history["version"] for template_history in v} == {1, 2}
def test_get_template_versions_is_empty_for_hidden_templates(sample_service):
sample_template = create_template(
template_name='Test Template',
hidden=True,
service=sample_service
template_name="Test Template", hidden=True, service=sample_service
)
versions = dao_get_template_versions(
service_id=sample_template.service_id, template_id=sample_template.id
)
versions = dao_get_template_versions(service_id=sample_template.service_id, template_id=sample_template.id)
assert len(versions) == 0