mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-23 17:01:35 -05:00
Refactor "create_user" to actually create a user
This switches a number of fixtures to use "sample_user", which is equivalent to calling the previous "create_user" function when it used to default the email to "notify@...".
This commit is contained in:
@@ -71,11 +71,11 @@ def rmock():
|
|||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='function')
|
@pytest.fixture(scope='function')
|
||||||
def service_factory(notify_db, notify_db_session):
|
def service_factory(notify_db, notify_db_session, sample_user):
|
||||||
class ServiceFactory(object):
|
class ServiceFactory(object):
|
||||||
def get(self, service_name, user=None, template_type=None, email_from=None):
|
def get(self, service_name, user=None, template_type=None, email_from=None):
|
||||||
if not user:
|
if not user:
|
||||||
user = create_user()
|
user = sample_user
|
||||||
if not email_from:
|
if not email_from:
|
||||||
email_from = service_name
|
email_from = service_name
|
||||||
|
|
||||||
@@ -106,7 +106,9 @@ def service_factory(notify_db, notify_db_session):
|
|||||||
|
|
||||||
@pytest.fixture(scope='function')
|
@pytest.fixture(scope='function')
|
||||||
def sample_user(notify_db_session):
|
def sample_user(notify_db_session):
|
||||||
return create_user()
|
return create_user(
|
||||||
|
email='notify@digital.cabinet-office.gov.uk'
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='function')
|
@pytest.fixture(scope='function')
|
||||||
@@ -131,8 +133,7 @@ def sample_sms_code(notify_db_session):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='function')
|
@pytest.fixture(scope='function')
|
||||||
def sample_service(notify_db_session):
|
def sample_service(notify_db_session, sample_user):
|
||||||
user = create_user()
|
|
||||||
service_name = 'Sample service'
|
service_name = 'Sample service'
|
||||||
email_from = service_name.lower().replace(' ', '.')
|
email_from = service_name.lower().replace(' ', '.')
|
||||||
|
|
||||||
@@ -141,23 +142,22 @@ def sample_service(notify_db_session):
|
|||||||
'message_limit': 1000,
|
'message_limit': 1000,
|
||||||
'restricted': False,
|
'restricted': False,
|
||||||
'email_from': email_from,
|
'email_from': email_from,
|
||||||
'created_by': user,
|
'created_by': sample_user,
|
||||||
'crown': True
|
'crown': True
|
||||||
}
|
}
|
||||||
service = Service.query.filter_by(name=service_name).first()
|
service = Service.query.filter_by(name=service_name).first()
|
||||||
if not service:
|
if not service:
|
||||||
service = Service(**data)
|
service = Service(**data)
|
||||||
dao_create_service(service, user, service_permissions=None)
|
dao_create_service(service, sample_user, service_permissions=None)
|
||||||
else:
|
else:
|
||||||
if user not in service.users:
|
if sample_user not in service.users:
|
||||||
dao_add_user_to_service(service, user)
|
dao_add_user_to_service(service, sample_user)
|
||||||
|
|
||||||
return service
|
return service
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='function')
|
@pytest.fixture(scope='function')
|
||||||
def sample_broadcast_service(notify_db_session, broadcast_organisation):
|
def sample_broadcast_service(notify_db_session, broadcast_organisation, sample_user):
|
||||||
user = create_user()
|
|
||||||
service_name = 'Sample broadcast service'
|
service_name = 'Sample broadcast service'
|
||||||
email_from = service_name.lower().replace(' ', '.')
|
email_from = service_name.lower().replace(' ', '.')
|
||||||
|
|
||||||
@@ -166,19 +166,19 @@ def sample_broadcast_service(notify_db_session, broadcast_organisation):
|
|||||||
'message_limit': 1000,
|
'message_limit': 1000,
|
||||||
'restricted': False,
|
'restricted': False,
|
||||||
'email_from': email_from,
|
'email_from': email_from,
|
||||||
'created_by': user,
|
'created_by': sample_user,
|
||||||
'crown': True,
|
'crown': True,
|
||||||
'count_as_live': False,
|
'count_as_live': False,
|
||||||
}
|
}
|
||||||
service = Service.query.filter_by(name=service_name).first()
|
service = Service.query.filter_by(name=service_name).first()
|
||||||
if not service:
|
if not service:
|
||||||
service = Service(**data)
|
service = Service(**data)
|
||||||
dao_create_service(service, user, service_permissions=[BROADCAST_TYPE])
|
dao_create_service(service, sample_user, service_permissions=[BROADCAST_TYPE])
|
||||||
insert_or_update_service_broadcast_settings(service, channel="severe")
|
insert_or_update_service_broadcast_settings(service, channel="severe")
|
||||||
dao_add_service_to_organisation(service, current_app.config['BROADCAST_ORGANISATION_ID'])
|
dao_add_service_to_organisation(service, current_app.config['BROADCAST_ORGANISATION_ID'])
|
||||||
else:
|
else:
|
||||||
if user not in service.users:
|
if sample_user not in service.users:
|
||||||
dao_add_user_to_service(service, user)
|
dao_add_user_to_service(service, sample_user)
|
||||||
|
|
||||||
return service
|
return service
|
||||||
|
|
||||||
@@ -201,8 +201,7 @@ def _sample_service_custom_letter_contact_block(sample_service):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='function')
|
@pytest.fixture(scope='function')
|
||||||
def sample_template(notify_db_session):
|
def sample_template(notify_db_session, sample_user):
|
||||||
user = create_user()
|
|
||||||
service = create_service(service_permissions=[EMAIL_TYPE, SMS_TYPE], check_if_service_exists=True)
|
service = create_service(service_permissions=[EMAIL_TYPE, SMS_TYPE], check_if_service_exists=True)
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
@@ -210,7 +209,7 @@ def sample_template(notify_db_session):
|
|||||||
'template_type': 'sms',
|
'template_type': 'sms',
|
||||||
'content': 'This is a template:\nwith a newline',
|
'content': 'This is a template:\nwith a newline',
|
||||||
'service': service,
|
'service': service,
|
||||||
'created_by': user,
|
'created_by': sample_user,
|
||||||
'archived': False,
|
'archived': False,
|
||||||
'hidden': False,
|
'hidden': False,
|
||||||
'process_type': 'normal'
|
'process_type': 'normal'
|
||||||
@@ -240,15 +239,14 @@ def sample_sms_template_with_html(sample_service):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='function')
|
@pytest.fixture(scope='function')
|
||||||
def sample_email_template(notify_db_session):
|
def sample_email_template(notify_db_session, sample_user):
|
||||||
user = create_user()
|
service = create_service(user=sample_user, service_permissions=[EMAIL_TYPE, SMS_TYPE], check_if_service_exists=True)
|
||||||
service = create_service(user=user, service_permissions=[EMAIL_TYPE, SMS_TYPE], check_if_service_exists=True)
|
|
||||||
data = {
|
data = {
|
||||||
'name': 'Email Template Name',
|
'name': 'Email Template Name',
|
||||||
'template_type': EMAIL_TYPE,
|
'template_type': EMAIL_TYPE,
|
||||||
'content': 'This is a template',
|
'content': 'This is a template',
|
||||||
'service': service,
|
'service': service,
|
||||||
'created_by': user,
|
'created_by': sample_user,
|
||||||
'subject': 'Email Subject'
|
'subject': 'Email Subject'
|
||||||
}
|
}
|
||||||
template = Template(**data)
|
template = Template(**data)
|
||||||
@@ -551,18 +549,17 @@ def sample_invited_org_user(sample_user, sample_organisation):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='function')
|
@pytest.fixture(scope='function')
|
||||||
def sample_user_service_permission(notify_db_session):
|
def sample_user_service_permission(notify_db_session, sample_user):
|
||||||
user = create_user()
|
service = create_service(user=sample_user, check_if_service_exists=True)
|
||||||
service = create_service(user=user, check_if_service_exists=True)
|
|
||||||
permission = 'manage_settings'
|
permission = 'manage_settings'
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
'user': user,
|
'user': sample_user,
|
||||||
'service': service,
|
'service': service,
|
||||||
'permission': permission
|
'permission': permission
|
||||||
}
|
}
|
||||||
p_model = Permission.query.filter_by(
|
p_model = Permission.query.filter_by(
|
||||||
user=user,
|
user=sample_user,
|
||||||
service=service,
|
service=service,
|
||||||
permission=permission).first()
|
permission=permission).first()
|
||||||
if not p_model:
|
if not p_model:
|
||||||
@@ -828,8 +825,7 @@ def letter_volumes_email_template(notify_service):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def notify_service(notify_db, notify_db_session):
|
def notify_service(notify_db, notify_db_session, sample_user):
|
||||||
user = create_user()
|
|
||||||
service = Service.query.get(current_app.config['NOTIFY_SERVICE_ID'])
|
service = Service.query.get(current_app.config['NOTIFY_SERVICE_ID'])
|
||||||
if not service:
|
if not service:
|
||||||
service = Service(
|
service = Service(
|
||||||
@@ -837,13 +833,13 @@ def notify_service(notify_db, notify_db_session):
|
|||||||
message_limit=1000,
|
message_limit=1000,
|
||||||
restricted=False,
|
restricted=False,
|
||||||
email_from='notify.service',
|
email_from='notify.service',
|
||||||
created_by=user,
|
created_by=sample_user,
|
||||||
prefix_sms=False,
|
prefix_sms=False,
|
||||||
)
|
)
|
||||||
dao_create_service(
|
dao_create_service(
|
||||||
service=service,
|
service=service,
|
||||||
service_id=current_app.config['NOTIFY_SERVICE_ID'],
|
service_id=current_app.config['NOTIFY_SERVICE_ID'],
|
||||||
user=user
|
user=sample_user
|
||||||
)
|
)
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ from app.models import (
|
|||||||
def create_user(
|
def create_user(
|
||||||
*,
|
*,
|
||||||
mobile_number="+447700900986",
|
mobile_number="+447700900986",
|
||||||
email="notify@digital.cabinet-office.gov.uk",
|
email=None,
|
||||||
state='active',
|
state='active',
|
||||||
id_=None,
|
id_=None,
|
||||||
name="Test User"
|
name="Test User"
|
||||||
@@ -89,7 +89,7 @@ def create_user(
|
|||||||
data = {
|
data = {
|
||||||
'id': id_ or uuid.uuid4(),
|
'id': id_ or uuid.uuid4(),
|
||||||
'name': name,
|
'name': name,
|
||||||
'email_address': email,
|
'email_address': email or f"{uuid.uuid4()}@digital.cabinet-office.gov.uk",
|
||||||
'password': 'password',
|
'password': 'password',
|
||||||
'mobile_number': mobile_number,
|
'mobile_number': mobile_number,
|
||||||
'state': state
|
'state': state
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
import uuid
|
|
||||||
|
|
||||||
from app.commands import local_dev_broadcast_permissions
|
from app.commands import local_dev_broadcast_permissions
|
||||||
from app.dao.services_dao import dao_add_user_to_service
|
from app.dao.services_dao import dao_add_user_to_service
|
||||||
from tests.app.db import create_user
|
from tests.app.db import create_user
|
||||||
@@ -10,8 +8,7 @@ def test_local_dev_broadcast_permissions(
|
|||||||
sample_broadcast_service,
|
sample_broadcast_service,
|
||||||
notify_api,
|
notify_api,
|
||||||
):
|
):
|
||||||
# create_user will pull existing unless email is unique
|
user = create_user()
|
||||||
user = create_user(email=f'{uuid.uuid4()}@example.com')
|
|
||||||
dao_add_user_to_service(sample_service, user)
|
dao_add_user_to_service(sample_service, user)
|
||||||
dao_add_user_to_service(sample_broadcast_service, user)
|
dao_add_user_to_service(sample_broadcast_service, user)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user