Add flag on create_service to decide whether we should also check if service exists

This commit is contained in:
Pea Tyczynska
2019-01-02 17:15:27 +00:00
parent f79c0b03e7
commit eea324a19d
2 changed files with 20 additions and 16 deletions

View File

@@ -82,6 +82,7 @@ def service_factory(notify_db, notify_db_session):
service_name=service_name, service_name=service_name,
service_permissions=None, service_permissions=None,
user=user, user=user,
check_if_service_exists=True,
) )
if template_type == 'email': if template_type == 'email':
create_template( create_template(
@@ -200,7 +201,8 @@ def sample_service(
def _sample_service_full_permissions(notify_db_session): def _sample_service_full_permissions(notify_db_session):
service = create_service( service = create_service(
service_name="sample service full permissions", 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) create_inbound_number('12345', service_id=service.id)
return service return service
@@ -233,7 +235,7 @@ def sample_template(
if service is None: if service is None:
service = Service.query.filter_by(name='Sample service').first() service = Service.query.filter_by(name='Sample service').first()
if not service: 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: if created_by is None:
created_by = create_user() created_by = create_user()
@@ -295,7 +297,7 @@ def sample_email_template(
if user is None: if user is None:
user = create_user() user = create_user()
if service is None: 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 = { data = {
'name': template_name, 'name': template_name,
'template_type': template_type, 'template_type': template_type,
@@ -350,7 +352,7 @@ def sample_api_key(notify_db,
key_type=KEY_TYPE_NORMAL, key_type=KEY_TYPE_NORMAL,
name=None): name=None):
if service is 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} data = {'service': service, 'name': name or uuid.uuid4(), 'created_by': service.created_by, 'key_type': key_type}
api_key = ApiKey(**data) api_key = ApiKey(**data)
save_model_api_key(api_key) save_model_api_key(api_key)
@@ -382,7 +384,7 @@ def sample_job(
archived=False archived=False
): ):
if service is None: if service is None:
service = create_service() service = create_service(check_if_service_exists=True)
if template is None: if template is None:
template = create_template(service=service) template = create_template(service=service)
data = { data = {
@@ -441,7 +443,7 @@ def sample_email_job(notify_db,
service=None, service=None,
template=None): template=None):
if service is None: if service is None:
service = create_service() service = create_service(check_if_service_exists=True)
if template is None: if template is None:
template = sample_email_template( template = sample_email_template(
notify_db, notify_db,
@@ -549,7 +551,7 @@ def sample_notification(
if created_at is None: if created_at is None:
created_at = datetime.utcnow() created_at = datetime.utcnow()
if service is None: if service is None:
service = create_service() service = create_service(check_if_service_exists=True)
if template is None: if template is None:
template = create_template(service=service) template = create_template(service=service)
@@ -638,7 +640,7 @@ def sample_notification_with_api_key(notify_db, notify_db_session):
@pytest.fixture(scope='function') @pytest.fixture(scope='function')
def sample_email_notification(notify_db, notify_db_session): def sample_email_notification(notify_db, notify_db_session):
created_at = datetime.utcnow() 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) template = sample_email_template(notify_db, notify_db_session, service=service)
job = sample_job(notify_db, notify_db_session, service=service, template=template) 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): to_email_address=None):
if service is None: if service is None:
service = create_service() service = create_service(check_if_service_exists=True)
if to_email_address is None: if to_email_address is None:
to_email_address = 'invited_user@digital.gov.uk' to_email_address = 'invited_user@digital.gov.uk'
@@ -780,7 +782,7 @@ def sample_permission(notify_db,
'permission': permission 'permission': permission
} }
if service is None: if service is None:
service = create_service() service = create_service(check_if_service_exists=True)
if service: if service:
data['service'] = service data['service'] = service
p_model = Permission.query.filter_by( p_model = Permission.query.filter_by(
@@ -801,7 +803,7 @@ def sample_user_service_permission(
if user is None: if user is None:
user = create_user() user = create_user()
if service is None: if service is None:
service = create_service(user=user) service = create_service(user=user, check_if_service_exists=True)
data = { data = {
'user': user, 'user': user,
'service': service, 'service': service,
@@ -1035,7 +1037,7 @@ def notify_service(notify_db, notify_db_session):
@pytest.fixture(scope='function') @pytest.fixture(scope='function')
def sample_service_whitelist(notify_db, notify_db_session, service=None, email_address=None, mobile_number=None): def sample_service_whitelist(notify_db, notify_db_session, service=None, email_address=None, mobile_number=None):
if service is None: if service is None:
service = create_service() service = create_service(check_if_service_exists=True)
if email_address: if email_address:
whitelisted_user = ServiceWhitelist.from_string(service.id, EMAIL_TYPE, 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 @pytest.fixture
def sample_inbound_numbers(notify_db, notify_db_session, sample_service): 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 = list()
inbound_numbers.append(create_inbound_number(number='1', provider='mmg')) 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)) inbound_numbers.append(create_inbound_number(number='2', provider='mmg', active=False, service_id=service.id))

View File

@@ -81,10 +81,12 @@ def create_service(
prefix_sms=True, prefix_sms=True,
message_limit=1000, message_limit=1000,
organisation_type='central', organisation_type='central',
postage='second' postage='second',
check_if_service_exists=False
): ):
if check_if_service_exists:
service = Service.query.filter_by(name=service_name).first() service = Service.query.filter_by(name=service_name).first()
if not service: if (not check_if_service_exists) or (check_if_service_exists and not service):
service = Service( service = Service(
name=service_name, name=service_name,
message_limit=message_limit, message_limit=message_limit,