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:
Chris Hill-Scott
2019-04-05 16:26:52 +01:00
parent a39ed098b8
commit ee966668bd
14 changed files with 23 additions and 195 deletions

View File

@@ -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')

View File

@@ -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']

View File

@@ -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",

View File

@@ -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()

View File

@@ -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'"]

View File

@@ -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',
}

View File

@@ -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: