mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-23 15:56:45 -04:00
Remove domain columns from branding table
This relationship is via the `Organisation` now; we don’t use this column to fudge a relationship based on the user’s email address and the matching something in these columns.
This commit is contained in:
@@ -53,13 +53,7 @@ def test_update_email_branding(notify_db, notify_db_session):
|
||||
assert email_branding[0].name == updated_name
|
||||
|
||||
|
||||
def test_domain_cant_be_empty_string(notify_db, notify_db_session):
|
||||
def test_email_branding_has_no_domain(notify_db, notify_db_session):
|
||||
create_email_branding()
|
||||
|
||||
email_branding = EmailBranding.query.all()
|
||||
assert email_branding[0].domain is None
|
||||
|
||||
dao_update_email_branding(email_branding[0], domain='')
|
||||
|
||||
email_branding = EmailBranding.query.all()
|
||||
assert email_branding[0].domain is None
|
||||
assert not hasattr(email_branding, 'domain')
|
||||
|
||||
@@ -4,7 +4,6 @@ import pytest
|
||||
from sqlalchemy.exc import SQLAlchemyError
|
||||
|
||||
from app.dao.letter_branding_dao import (
|
||||
dao_get_letter_branding_by_domain,
|
||||
dao_get_all_letter_branding,
|
||||
dao_create_letter_branding,
|
||||
dao_update_letter_branding,
|
||||
@@ -26,30 +25,16 @@ def test_dao_get_letter_brand_by_id_raises_exception_if_does_not_exist(notify_db
|
||||
dao_get_letter_branding_by_id(uuid.uuid4())
|
||||
|
||||
|
||||
def test_dao_get_letter_branding_by_domain_returns_none_if_no_matching_domains(notify_db_session):
|
||||
result = dao_get_letter_branding_by_domain(domain="test.domain")
|
||||
assert not result
|
||||
|
||||
|
||||
def test_dao_get_letter_branding_by_domain_returns_correct_brand_for_domain(notify_db_session):
|
||||
create_letter_branding(domain='gov.uk')
|
||||
test_domain_branding = create_letter_branding(
|
||||
name='test domain', filename='test-domain', domain='test.domain'
|
||||
)
|
||||
result = dao_get_letter_branding_by_domain(domain='test.domain')
|
||||
result == test_domain_branding
|
||||
|
||||
|
||||
def test_dao_get_all_letter_branding(notify_db_session):
|
||||
hm_gov = create_letter_branding()
|
||||
test_domain = create_letter_branding(
|
||||
name='test domain', filename='test-domain', domain='test.domain'
|
||||
test_branding = create_letter_branding(
|
||||
name='test branding', filename='test-branding',
|
||||
)
|
||||
|
||||
results = dao_get_all_letter_branding()
|
||||
|
||||
assert hm_gov in results
|
||||
assert test_domain in results
|
||||
assert test_branding in results
|
||||
assert len(results) == 2
|
||||
|
||||
|
||||
@@ -60,7 +45,6 @@ def test_dao_get_all_letter_branding_returns_empty_list_if_no_brands_exist(notif
|
||||
def test_dao_create_letter_branding(notify_db_session):
|
||||
data = {
|
||||
'name': 'test-logo',
|
||||
'domain': 'test.co.uk',
|
||||
'filename': 'test-logo'
|
||||
}
|
||||
assert LetterBranding.query.count() == 0
|
||||
@@ -70,7 +54,6 @@ def test_dao_create_letter_branding(notify_db_session):
|
||||
|
||||
new_letter_branding = LetterBranding.query.first()
|
||||
assert new_letter_branding.name == data['name']
|
||||
assert new_letter_branding.domain == data['domain']
|
||||
assert new_letter_branding.filename == data['name']
|
||||
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ def test_create_service_with_letter_branding(notify_db_session):
|
||||
user = create_user()
|
||||
create_letter_branding()
|
||||
letter_branding = create_letter_branding(
|
||||
name='test domain', filename='test-domain', domain='test.domain'
|
||||
name='test domain', filename='test-domain',
|
||||
)
|
||||
assert Service.query.count() == 0
|
||||
service = Service(name="service_name",
|
||||
|
||||
@@ -774,10 +774,9 @@ def create_template_folder(service, name='foo', parent=None):
|
||||
return tf
|
||||
|
||||
|
||||
def create_letter_branding(name='HM Government', filename='hm-government', domain=None):
|
||||
def create_letter_branding(name='HM Government', filename='hm-government'):
|
||||
test_domain_branding = LetterBranding(name=name,
|
||||
filename=filename,
|
||||
domain=domain,
|
||||
)
|
||||
db.session.add(test_domain_branding)
|
||||
db.session.commit()
|
||||
|
||||
@@ -34,7 +34,7 @@ def test_get_email_branding_by_id(admin_request, notify_db, notify_db_session):
|
||||
)
|
||||
|
||||
assert set(response['email_branding'].keys()) == {'colour', 'logo', 'name', 'id', 'text',
|
||||
'domain', 'brand_type'}
|
||||
'brand_type'}
|
||||
assert response['email_branding']['colour'] == '#FFFFFF'
|
||||
assert response['email_branding']['logo'] == '/path/image.png'
|
||||
assert response['email_branding']['name'] == 'Some Org'
|
||||
@@ -48,7 +48,6 @@ def test_post_create_email_branding(admin_request, notify_db_session):
|
||||
'name': 'test email_branding',
|
||||
'colour': '#0000ff',
|
||||
'logo': '/images/test_x2.png',
|
||||
'domain': 'gov.uk',
|
||||
'brand_type': BRANDING_ORG
|
||||
}
|
||||
response = admin_request.post(
|
||||
@@ -60,7 +59,6 @@ def test_post_create_email_branding(admin_request, notify_db_session):
|
||||
assert data['colour'] == response['data']['colour']
|
||||
assert data['logo'] == response['data']['logo']
|
||||
assert data['name'] == response['data']['text']
|
||||
assert data['domain'] == response['data']['domain']
|
||||
assert data['brand_type'] == response['data']['brand_type']
|
||||
|
||||
|
||||
@@ -69,7 +67,6 @@ def test_post_create_email_branding_without_brand_type_defaults(admin_request, n
|
||||
'name': 'test email_branding',
|
||||
'colour': '#0000ff',
|
||||
'logo': '/images/test_x2.png',
|
||||
'domain': 'gov.uk',
|
||||
}
|
||||
response = admin_request.post(
|
||||
'email_branding.create_email_branding',
|
||||
@@ -181,8 +178,8 @@ def test_post_create_email_branding_returns_400_when_name_is_missing(admin_reque
|
||||
({'name': 'test email_branding 1'}),
|
||||
({'logo': 'images/text_x3.png', 'colour': '#ffffff'}),
|
||||
({'logo': 'images/text_x3.png'}),
|
||||
({'logo': 'images/text_x3.png', 'domain': 'gov.uk'}),
|
||||
({'logo': 'images/text_x3.png', 'brand_type': 'org'}),
|
||||
({'logo': 'images/text_x3.png'}),
|
||||
({'logo': 'images/text_x3.png'}),
|
||||
])
|
||||
def test_post_update_email_branding_updates_field(admin_request, notify_db_session, data_update):
|
||||
data = {
|
||||
@@ -273,30 +270,3 @@ def test_update_email_branding_reject_invalid_brand_type(admin_request, notify_d
|
||||
)
|
||||
|
||||
assert response['errors'][0]['message'] == 'brand_type NOT A TYPE is not one of [org, both, org_banner]'
|
||||
|
||||
|
||||
def test_400_for_duplicate_domain(admin_request, notify_db_session):
|
||||
branding_1 = create_email_branding(name='first brand')
|
||||
branding_2 = create_email_branding(name='second brand')
|
||||
admin_request.post(
|
||||
'email_branding.update_email_branding',
|
||||
_data={'domain': 'example.com', },
|
||||
email_branding_id=branding_1.id,
|
||||
)
|
||||
|
||||
response = admin_request.post(
|
||||
'email_branding.update_email_branding',
|
||||
_data={'domain': 'example.com'},
|
||||
email_branding_id=branding_2.id,
|
||||
_expected_status=400,
|
||||
)
|
||||
assert response['result'] == 'error'
|
||||
assert response['message']['name'] == ["Duplicate domain 'example.com'"]
|
||||
|
||||
response = admin_request.post(
|
||||
'email_branding.create_email_branding',
|
||||
_data={'domain': 'example.com', 'name': 'another brand'},
|
||||
_expected_status=400,
|
||||
)
|
||||
assert response['result'] == 'error'
|
||||
assert response['message']['name'] == ["Duplicate domain 'example.com'"]
|
||||
|
||||
@@ -8,8 +8,8 @@ from tests.app.db import create_letter_branding
|
||||
|
||||
def test_get_all_letter_brands(client, notify_db_session):
|
||||
hm_gov = create_letter_branding()
|
||||
test_domain_branding = create_letter_branding(
|
||||
name='test domain', filename='test-domain', domain='test.domain'
|
||||
test_branding = create_letter_branding(
|
||||
name='test branding', filename='test-branding',
|
||||
)
|
||||
response = client.get('/letter-branding', headers=[create_authorization_header()])
|
||||
assert response.status_code == 200
|
||||
@@ -18,8 +18,8 @@ def test_get_all_letter_brands(client, notify_db_session):
|
||||
for brand in json_response:
|
||||
if brand['id'] == str(hm_gov.id):
|
||||
assert hm_gov.serialize() == brand
|
||||
elif brand['id'] == str(test_domain_branding.id):
|
||||
assert test_domain_branding.serialize() == brand
|
||||
elif brand['id'] == str(test_branding.id):
|
||||
assert test_branding.serialize() == brand
|
||||
else:
|
||||
assert False
|
||||
|
||||
@@ -27,7 +27,7 @@ def test_get_all_letter_brands(client, notify_db_session):
|
||||
def test_get_letter_branding_by_id(client, notify_db_session):
|
||||
hm_gov = create_letter_branding()
|
||||
create_letter_branding(
|
||||
name='test domain', filename='test-domain', domain='test.domain'
|
||||
name='test domain', filename='test-domain'
|
||||
)
|
||||
response = client.get('/letter-branding/{}'.format(hm_gov.id), headers=[create_authorization_header()])
|
||||
|
||||
@@ -43,7 +43,6 @@ def test_get_letter_branding_by_id_returns_404_if_does_not_exist(client, notify_
|
||||
def test_create_letter_branding(client, notify_db_session):
|
||||
form = {
|
||||
'name': 'super brand',
|
||||
'domain': 'super.brand',
|
||||
'filename': 'super-brand'
|
||||
}
|
||||
|
||||
@@ -57,37 +56,16 @@ def test_create_letter_branding(client, notify_db_session):
|
||||
json_response = json.loads(response.get_data(as_text=True))
|
||||
letter_brand = LetterBranding.query.get(json_response['id'])
|
||||
assert letter_brand.name == form['name']
|
||||
assert letter_brand.domain == form['domain']
|
||||
assert letter_brand.filename == form['filename']
|
||||
|
||||
|
||||
def test_create_letter_branding_returns_400_if_domain_already_exists(client, notify_db_session):
|
||||
create_letter_branding(name='duplicate', domain='duplicate', filename='duplicate')
|
||||
form = {
|
||||
'name': 'super brand',
|
||||
'domain': 'duplicate',
|
||||
'filename': 'super-brand',
|
||||
}
|
||||
|
||||
response = client.post(
|
||||
'/letter-branding',
|
||||
headers=[('Content-Type', 'application/json'), create_authorization_header()],
|
||||
data=json.dumps(form)
|
||||
)
|
||||
|
||||
assert response.status_code == 400
|
||||
json_resp = json.loads(response.get_data(as_text=True))
|
||||
assert json_resp['message'] == {'domain': ["Domain already in use"]}
|
||||
|
||||
|
||||
def test_update_letter_branding_returns_400_when_integrity_error_is_thrown(
|
||||
client, notify_db_session
|
||||
):
|
||||
create_letter_branding(name='duplicate', domain='duplicate', filename='duplicate')
|
||||
brand_to_update = create_letter_branding(name='super brand', domain='super brand', filename='super brand')
|
||||
create_letter_branding(name='duplicate', filename='duplicate')
|
||||
brand_to_update = create_letter_branding(name='super brand', filename='super brand')
|
||||
form = {
|
||||
'name': 'duplicate',
|
||||
'domain': 'super brand',
|
||||
'filename': 'super-brand',
|
||||
}
|
||||
|
||||
|
||||
@@ -349,69 +349,6 @@ def test_create_service_inherits_branding_from_organisation(
|
||||
assert json_resp['data']['letter_branding'] == str(letter_branding.id)
|
||||
|
||||
|
||||
def test_create_service_with_domain_sets_letter_branding(admin_request, sample_user):
|
||||
letter_branding = create_letter_branding(
|
||||
name='test domain', filename='test-domain', domain='test.domain'
|
||||
)
|
||||
data = {
|
||||
'name': 'created service',
|
||||
'user_id': str(sample_user.id),
|
||||
'message_limit': 1000,
|
||||
'restricted': False,
|
||||
'active': False,
|
||||
'email_from': 'created.service',
|
||||
'created_by': str(sample_user.id),
|
||||
'service_domain': letter_branding.domain
|
||||
}
|
||||
json_resp = admin_request.post('service.create_service', _data=data, _expected_status=201)
|
||||
assert json_resp['data']['letter_branding'] == str(letter_branding.id)
|
||||
assert json_resp['data']['letter_logo_filename'] == str(letter_branding.filename)
|
||||
|
||||
|
||||
def test_create_service_with_no_domain_doesnt_set_letter_branding(admin_request, sample_user):
|
||||
create_letter_branding(name='no domain', filename='no-domain', domain=None)
|
||||
create_letter_branding(name='test domain', filename='test-domain', domain='test.domain')
|
||||
|
||||
data = {
|
||||
'name': 'created service',
|
||||
'user_id': str(sample_user.id),
|
||||
'message_limit': 1000,
|
||||
'restricted': False,
|
||||
'active': False,
|
||||
'email_from': 'created.service',
|
||||
'created_by': str(sample_user.id),
|
||||
'service_domain': None
|
||||
}
|
||||
|
||||
json_resp = admin_request.post('service.create_service', _data=data, _expected_status=201)
|
||||
|
||||
assert json_resp['data']['letter_branding'] is None
|
||||
assert json_resp['data']['letter_logo_filename'] is None
|
||||
|
||||
|
||||
def test_get_service_by_id_returns_letter_branding(
|
||||
client, sample_service
|
||||
):
|
||||
letter_branding = create_letter_branding(
|
||||
name='test domain', filename='test-domain', domain='test.domain'
|
||||
)
|
||||
data = {
|
||||
'letter_branding': str(letter_branding.id)
|
||||
}
|
||||
client.post(
|
||||
'/service/{}'.format(sample_service.id),
|
||||
data=json.dumps(data),
|
||||
headers=[('Content-Type', 'application/json'), create_authorization_header()]
|
||||
)
|
||||
resp = client.get('/service/{}'.format(sample_service.id),
|
||||
headers=[('Content-Type', 'application/json'), create_authorization_header()])
|
||||
json_resp = resp.json
|
||||
assert json_resp['data']['name'] == sample_service.name
|
||||
assert json_resp['data']['id'] == str(sample_service.id)
|
||||
assert json_resp['data']['letter_branding'] == str(letter_branding.id)
|
||||
assert json_resp['data']['letter_logo_filename'] == 'test-domain'
|
||||
|
||||
|
||||
def test_should_not_create_service_with_missing_user_id_field(notify_api, fake_uuid):
|
||||
with notify_api.test_request_context():
|
||||
with notify_api.test_client() as client:
|
||||
|
||||
Reference in New Issue
Block a user