update default permissions

This commit is contained in:
stvnrlly
2023-02-17 13:00:43 -05:00
parent 91ece7576d
commit 7d29342c5d
6 changed files with 22 additions and 87 deletions

View File

@@ -46,14 +46,12 @@ from app.dao.services_dao import (
from app.dao.users_dao import create_user_code, save_model_user
from app.models import (
EMAIL_TYPE,
INTERNATIONAL_LETTERS,
INTERNATIONAL_SMS_TYPE,
KEY_TYPE_NORMAL,
KEY_TYPE_TEAM,
KEY_TYPE_TEST,
LETTER_TYPE,
SMS_TYPE,
UPLOAD_LETTERS,
ApiKey,
InvitedUser,
Job,
@@ -468,16 +466,16 @@ def test_create_service_returns_service_with_default_permissions(notify_db_sessi
service = dao_fetch_service_by_id(service.id)
_assert_service_permissions(service.permissions, (
SMS_TYPE, EMAIL_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, UPLOAD_LETTERS, INTERNATIONAL_LETTERS
SMS_TYPE, EMAIL_TYPE, INTERNATIONAL_SMS_TYPE,
))
@pytest.mark.parametrize("permission_to_remove, permissions_remaining", [
(SMS_TYPE, (
EMAIL_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, UPLOAD_LETTERS, INTERNATIONAL_LETTERS
EMAIL_TYPE, INTERNATIONAL_SMS_TYPE,
)),
(EMAIL_TYPE, (
SMS_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, UPLOAD_LETTERS, INTERNATIONAL_LETTERS
SMS_TYPE, INTERNATIONAL_SMS_TYPE,
)),
])
def test_remove_permission_from_service_by_id_returns_service_with_correct_permissions(
@@ -496,8 +494,6 @@ def test_removing_all_permission_returns_service_with_no_permissions(notify_db_s
dao_remove_service_permission(service_id=service.id, permission=EMAIL_TYPE)
dao_remove_service_permission(service_id=service.id, permission=LETTER_TYPE)
dao_remove_service_permission(service_id=service.id, permission=INTERNATIONAL_SMS_TYPE)
dao_remove_service_permission(service_id=service.id, permission=UPLOAD_LETTERS)
dao_remove_service_permission(service_id=service.id, permission=INTERNATIONAL_LETTERS)
service = dao_fetch_service_by_id(service.id)
assert len(service.permissions) == 0
@@ -511,14 +507,14 @@ def test_create_service_by_id_adding_and_removing_letter_returns_service_without
service = dao_fetch_service_by_id(service.id)
_assert_service_permissions(service.permissions, (
SMS_TYPE, EMAIL_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, UPLOAD_LETTERS, INTERNATIONAL_LETTERS
SMS_TYPE, EMAIL_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE,
))
dao_remove_service_permission(service_id=service.id, permission=LETTER_TYPE)
service = dao_fetch_service_by_id(service.id)
_assert_service_permissions(service.permissions, (
SMS_TYPE, EMAIL_TYPE, INTERNATIONAL_SMS_TYPE, UPLOAD_LETTERS, INTERNATIONAL_LETTERS
SMS_TYPE, EMAIL_TYPE, INTERNATIONAL_SMS_TYPE,
))
@@ -655,7 +651,7 @@ def test_delete_service_and_associated_objects(notify_db_session):
user.organisations = [organisation]
assert ServicePermission.query.count() == len((
SMS_TYPE, EMAIL_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, UPLOAD_LETTERS, INTERNATIONAL_LETTERS
SMS_TYPE, EMAIL_TYPE, INTERNATIONAL_SMS_TYPE,
))
delete_service_and_all_associated_db_objects(service)

View File

@@ -21,14 +21,12 @@ from app.models import (
EMAIL_AUTH_TYPE,
EMAIL_TYPE,
INBOUND_SMS_TYPE,
INTERNATIONAL_LETTERS,
INTERNATIONAL_SMS_TYPE,
KEY_TYPE_NORMAL,
KEY_TYPE_TEAM,
KEY_TYPE_TEST,
LETTER_TYPE,
SMS_TYPE,
UPLOAD_LETTERS,
AnnualBilling,
EmailBranding,
InboundNumber,
@@ -293,7 +291,7 @@ def test_get_service_list_has_default_permissions(admin_request, service_factory
set(
json['permissions']
) == {
EMAIL_TYPE, SMS_TYPE, INTERNATIONAL_SMS_TYPE, LETTER_TYPE, UPLOAD_LETTERS, INTERNATIONAL_LETTERS
EMAIL_TYPE, SMS_TYPE, INTERNATIONAL_SMS_TYPE,
}
for json in json_resp['data']
)
@@ -305,7 +303,7 @@ def test_get_service_by_id_has_default_service_permissions(admin_request, sample
assert set(
json_resp['data']['permissions']
) == {
EMAIL_TYPE, SMS_TYPE, INTERNATIONAL_SMS_TYPE, LETTER_TYPE, UPLOAD_LETTERS, INTERNATIONAL_LETTERS
EMAIL_TYPE, SMS_TYPE, INTERNATIONAL_SMS_TYPE,
}
@@ -752,7 +750,7 @@ def test_update_service_flags(client, sample_service):
data = {
'research_mode': True,
'permissions': [LETTER_TYPE, INTERNATIONAL_SMS_TYPE]
'permissions': [INTERNATIONAL_SMS_TYPE]
}
auth_header = create_admin_authorization_header()
@@ -765,7 +763,7 @@ def test_update_service_flags(client, sample_service):
result = resp.json
assert resp.status_code == 200
assert result['data']['research_mode'] is True
assert set(result['data']['permissions']) == set([LETTER_TYPE, INTERNATIONAL_SMS_TYPE])
assert set(result['data']['permissions']) == set([INTERNATIONAL_SMS_TYPE])
@pytest.mark.parametrize('field', (
@@ -829,7 +827,7 @@ def service_with_no_permissions(notify_db_session):
def test_update_service_flags_with_service_without_default_service_permissions(client, service_with_no_permissions):
auth_header = create_admin_authorization_header()
data = {
'permissions': [LETTER_TYPE, INTERNATIONAL_SMS_TYPE],
'permissions': [INTERNATIONAL_SMS_TYPE],
}
resp = client.post(
@@ -840,7 +838,7 @@ def test_update_service_flags_with_service_without_default_service_permissions(c
result = resp.json
assert resp.status_code == 200
assert set(result['data']['permissions']) == set([LETTER_TYPE, INTERNATIONAL_SMS_TYPE])
assert set(result['data']['permissions']) == set([INTERNATIONAL_SMS_TYPE])
def test_update_service_flags_will_remove_service_permissions(client, notify_db_session):
@@ -872,7 +870,7 @@ def test_update_permissions_will_override_permission_flags(client, service_with_
auth_header = create_admin_authorization_header()
data = {
'permissions': [LETTER_TYPE, INTERNATIONAL_SMS_TYPE]
'permissions': [INTERNATIONAL_SMS_TYPE]
}
resp = client.post(
@@ -883,14 +881,14 @@ def test_update_permissions_will_override_permission_flags(client, service_with_
result = resp.json
assert resp.status_code == 200
assert set(result['data']['permissions']) == set([LETTER_TYPE, INTERNATIONAL_SMS_TYPE])
assert set(result['data']['permissions']) == set([INTERNATIONAL_SMS_TYPE])
def test_update_service_permissions_will_add_service_permissions(client, sample_service):
auth_header = create_admin_authorization_header()
data = {
'permissions': [EMAIL_TYPE, SMS_TYPE, LETTER_TYPE]
'permissions': [EMAIL_TYPE, SMS_TYPE]
}
resp = client.post(
@@ -901,7 +899,7 @@ def test_update_service_permissions_will_add_service_permissions(client, sample_
result = resp.json
assert resp.status_code == 200
assert set(result['data']['permissions']) == set([SMS_TYPE, EMAIL_TYPE, LETTER_TYPE])
assert set(result['data']['permissions']) == set([SMS_TYPE, EMAIL_TYPE])
@pytest.mark.parametrize(
@@ -910,7 +908,6 @@ def test_update_service_permissions_will_add_service_permissions(client, sample_
(EMAIL_TYPE),
(SMS_TYPE),
(INTERNATIONAL_SMS_TYPE),
(LETTER_TYPE),
(INBOUND_SMS_TYPE),
(EMAIL_AUTH_TYPE),
]
@@ -958,7 +955,7 @@ def test_update_permissions_with_duplicate_permissions_will_raise_error(client,
auth_header = create_admin_authorization_header()
data = {
'permissions': [EMAIL_TYPE, SMS_TYPE, LETTER_TYPE, LETTER_TYPE]
'permissions': [EMAIL_TYPE, SMS_TYPE, SMS_TYPE]
}
resp = client.post(
@@ -970,7 +967,7 @@ def test_update_permissions_with_duplicate_permissions_will_raise_error(client,
assert resp.status_code == 400
assert result['result'] == 'error'
assert "Duplicate Service Permission: ['{}']".format(LETTER_TYPE) in result['message']['permissions']
assert "Duplicate Service Permission: ['{}']".format(SMS_TYPE) in result['message']['permissions']
def test_update_service_research_mode_throws_validation_error(notify_api, sample_service):

View File

@@ -865,25 +865,6 @@ def test_get_template_reply_to(client, sample_service, template_default, service
assert json_resp['data']['reply_to_text'] == template_default
def test_update_template_reply_to(client, sample_letter_template):
auth_header = create_admin_authorization_header()
letter_contact = create_letter_contact(sample_letter_template.service, "Edinburgh, ED1 1AA")
data = {
'reply_to': str(letter_contact.id),
}
resp = client.post('/service/{}/template/{}'.format(sample_letter_template.service_id, sample_letter_template.id),
data=json.dumps(data),
headers=[('Content-Type', 'application/json'), auth_header])
assert resp.status_code == 200, resp.get_data(as_text=True)
template = dao_get_template_by_id(sample_letter_template.id)
assert template.service_letter_contact_id == letter_contact.id
th = TemplateHistory.query.filter_by(id=sample_letter_template.id, version=2).one()
assert th.service_letter_contact_id == letter_contact.id
def test_update_template_reply_to_set_to_blank(client, notify_db_session):
auth_header = create_admin_authorization_header()
service = create_service(service_permissions=['letter'])
@@ -906,29 +887,6 @@ def test_update_template_reply_to_set_to_blank(client, notify_db_session):
assert th.service_letter_contact_id is None
def test_update_template_with_foreign_service_reply_to(client, sample_letter_template):
auth_header = create_admin_authorization_header()
service2 = create_service(service_name='test service', email_from='test@example.com',
service_permissions=['letter'])
letter_contact = create_letter_contact(service2, "Edinburgh, ED1 1AA")
data = {
'reply_to': str(letter_contact.id),
}
resp = client.post('/service/{}/template/{}'.format(sample_letter_template.service_id, sample_letter_template.id),
data=json.dumps(data),
headers=[('Content-Type', 'application/json'), auth_header])
assert resp.status_code == 400, resp.get_data(as_text=True)
json_resp = json.loads(resp.get_data(as_text=True))
assert json_resp['message'] == "letter_contact_id {} does not exist in database for service id {}".format(
str(letter_contact.id), str(sample_letter_template.service_id)
)
def test_update_redact_template(admin_request, sample_template):
assert sample_template.redact_personalisation is False