mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-24 16:23:44 -04:00
update default permissions
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user