diff --git a/tests/app/conftest.py b/tests/app/conftest.py index 407372d64..5b6aa2234 100644 --- a/tests/app/conftest.py +++ b/tests/app/conftest.py @@ -82,6 +82,7 @@ def service_factory(notify_db, notify_db_session): service_name=service_name, service_permissions=None, user=user, + check_if_service_exists=True, ) if template_type == 'email': create_template( @@ -200,7 +201,8 @@ def sample_service( def _sample_service_full_permissions(notify_db_session): service = create_service( service_name="sample service full permissions", - service_permissions=set(SERVICE_PERMISSION_TYPES) + service_permissions=set(SERVICE_PERMISSION_TYPES), + check_if_service_exists=True ) create_inbound_number('12345', service_id=service.id) return service @@ -233,7 +235,7 @@ def sample_template( if service is None: service = Service.query.filter_by(name='Sample service').first() if not service: - service = create_service(service_permissions=permissions) + service = create_service(service_permissions=permissions, check_if_service_exists=True) if created_by is None: created_by = create_user() @@ -295,7 +297,7 @@ def sample_email_template( if user is None: user = create_user() if service is None: - service = create_service(user=user, service_permissions=permissions) + service = create_service(user=user, service_permissions=permissions, check_if_service_exists=True) data = { 'name': template_name, 'template_type': template_type, @@ -350,7 +352,7 @@ def sample_api_key(notify_db, key_type=KEY_TYPE_NORMAL, name=None): if service is None: - service = create_service() + service = create_service(check_if_service_exists=True) data = {'service': service, 'name': name or uuid.uuid4(), 'created_by': service.created_by, 'key_type': key_type} api_key = ApiKey(**data) save_model_api_key(api_key) @@ -382,7 +384,7 @@ def sample_job( archived=False ): if service is None: - service = create_service() + service = create_service(check_if_service_exists=True) if template is None: template = create_template(service=service) data = { @@ -441,7 +443,7 @@ def sample_email_job(notify_db, service=None, template=None): if service is None: - service = create_service() + service = create_service(check_if_service_exists=True) if template is None: template = sample_email_template( notify_db, @@ -549,7 +551,7 @@ def sample_notification( if created_at is None: created_at = datetime.utcnow() if service is None: - service = create_service() + service = create_service(check_if_service_exists=True) if template is None: template = create_template(service=service) @@ -638,7 +640,7 @@ def sample_notification_with_api_key(notify_db, notify_db_session): @pytest.fixture(scope='function') def sample_email_notification(notify_db, notify_db_session): created_at = datetime.utcnow() - service = create_service() + service = create_service(check_if_service_exists=True) template = sample_email_template(notify_db, notify_db_session, service=service) job = sample_job(notify_db, notify_db_session, service=service, template=template) @@ -740,7 +742,7 @@ def sample_invited_user(notify_db, to_email_address=None): if service is None: - service = create_service() + service = create_service(check_if_service_exists=True) if to_email_address is None: to_email_address = 'invited_user@digital.gov.uk' @@ -780,7 +782,7 @@ def sample_permission(notify_db, 'permission': permission } if service is None: - service = create_service() + service = create_service(check_if_service_exists=True) if service: data['service'] = service p_model = Permission.query.filter_by( @@ -801,7 +803,7 @@ def sample_user_service_permission( if user is None: user = create_user() if service is None: - service = create_service(user=user) + service = create_service(user=user, check_if_service_exists=True) data = { 'user': user, 'service': service, @@ -1035,7 +1037,7 @@ def notify_service(notify_db, notify_db_session): @pytest.fixture(scope='function') def sample_service_whitelist(notify_db, notify_db_session, service=None, email_address=None, mobile_number=None): if service is None: - service = create_service() + service = create_service(check_if_service_exists=True) if email_address: whitelisted_user = ServiceWhitelist.from_string(service.id, EMAIL_TYPE, email_address) @@ -1060,7 +1062,7 @@ def sample_provider_rate(notify_db, notify_db_session, valid_from=None, rate=Non @pytest.fixture def sample_inbound_numbers(notify_db, notify_db_session, sample_service): - service = create_service(service_name='sample service 2') + service = create_service(service_name='sample service 2', check_if_service_exists=True) inbound_numbers = list() inbound_numbers.append(create_inbound_number(number='1', provider='mmg')) inbound_numbers.append(create_inbound_number(number='2', provider='mmg', active=False, service_id=service.id)) diff --git a/tests/app/db.py b/tests/app/db.py index d6d4b9553..5c4889057 100644 --- a/tests/app/db.py +++ b/tests/app/db.py @@ -81,10 +81,12 @@ def create_service( prefix_sms=True, message_limit=1000, organisation_type='central', - postage='second' + postage='second', + check_if_service_exists=False ): - service = Service.query.filter_by(name=service_name).first() - if not service: + if check_if_service_exists: + service = Service.query.filter_by(name=service_name).first() + if (not check_if_service_exists) or (check_if_service_exists and not service): service = Service( name=service_name, message_limit=message_limit,