def test_archive_letter_contact_can_archive_a_service_default_letter_contact( notify_db_session): service = create_service() letter_contact = create_letter_contact(service=service, contact_block='Edinburgh, ED1 1AA') archive_letter_contact(service.id, letter_contact.id) assert letter_contact.archived is True
def test_archive_letter_contact(notify_db_session): service = create_service() create_letter_contact(service=service, contact_block='Aberdeen, AB12 23X') letter_contact = create_letter_contact(service=service, contact_block='Edinburgh, ED1 1AA', is_default=False) archive_letter_contact(service.id, letter_contact.id) assert letter_contact.archived assert letter_contact.updated_at is not None
def test_archive_letter_contact_does_not_archive_a_service_default_letter_contact( notify_db_session): service = create_service() letter_contact = create_letter_contact(service=service, contact_block='Edinburgh, ED1 1AA') with pytest.raises(ArchiveValidationError) as e: archive_letter_contact(service.id, letter_contact.id) assert 'You cannot delete a default letter contact block' in str(e.value)
def test_archive_letter_contact_does_not_archive_a_letter_contact_for_a_different_service( notify_db_session, sample_service, ): service = create_service(service_name="First service") letter_contact = create_letter_contact(service=sample_service, contact_block='Edinburgh, ED1 1AA', is_default=False) with pytest.raises(SQLAlchemyError): archive_letter_contact(service.id, letter_contact.id) assert not letter_contact.archived
def test_archive_letter_contact_does_not_archive_a_template_default_letter_contact( notify_db_session): service = create_service() create_letter_contact(service=service, contact_block='Edinburgh, ED1 1AA') template_default = create_letter_contact( service=service, contact_block='Aberdeen, AB12 23X', is_default=False) create_template(service=service, template_type='letter', reply_to=template_default.id) with pytest.raises(ArchiveValidationError) as e: archive_letter_contact(service.id, template_default.id) assert 'You cannot delete the default letter contact block for a template' in str( e.value)
def test_archive_letter_contact_does_dissociates_template_defaults_before_archiving(notify_db_session): service = create_service() create_letter_contact(service=service, contact_block='Edinburgh, ED1 1AA') template_default = create_letter_contact(service=service, contact_block='Aberdeen, AB12 23X', is_default=False) associated_template_1 = create_template(service=service, template_type='letter', reply_to=template_default.id) associated_template_2 = create_template(service=service, template_type='letter', reply_to=template_default.id) assert associated_template_1.reply_to == template_default.id assert associated_template_2.reply_to == template_default.id assert template_default.archived is False archive_letter_contact(service.id, template_default.id) assert associated_template_1.reply_to is None assert associated_template_2.reply_to is None assert template_default.archived is True
def delete_service_letter_contact(service_id, letter_contact_id): archived_letter_contact = archive_letter_contact(service_id, letter_contact_id) return jsonify(data=archived_letter_contact.serialize()), 200