2017-05-17 14:09:18 +01:00
|
|
|
import pytest
|
|
|
|
|
|
2021-03-10 13:55:06 +00:00
|
|
|
from app.dao.service_permissions_dao import (
|
|
|
|
|
dao_fetch_service_permissions,
|
|
|
|
|
dao_remove_service_permission,
|
|
|
|
|
)
|
2024-01-18 10:26:40 -05:00
|
|
|
from app.models import ServicePermissionType
|
2021-03-10 13:55:06 +00:00
|
|
|
from tests.app.db import create_service, create_service_permission
|
2017-05-17 14:09:18 +01:00
|
|
|
|
|
|
|
|
|
2023-08-23 10:35:43 -07:00
|
|
|
@pytest.fixture(scope="function")
|
2022-05-03 17:00:51 +01:00
|
|
|
def service_without_permissions(notify_db_session):
|
2017-05-17 14:09:18 +01:00
|
|
|
return create_service(service_permissions=[])
|
2017-05-11 15:22:58 +01:00
|
|
|
|
|
|
|
|
|
2017-05-17 14:09:18 +01:00
|
|
|
def test_create_service_permission(service_without_permissions):
|
|
|
|
|
service_permissions = create_service_permission(
|
2024-01-18 10:26:40 -05:00
|
|
|
service_id=service_without_permissions.id, permission=ServicePermissionType.SMS
|
2023-08-23 10:35:43 -07:00
|
|
|
)
|
2017-05-11 15:22:58 +01:00
|
|
|
|
2017-05-16 12:53:46 +01:00
|
|
|
assert len(service_permissions) == 1
|
2017-05-17 14:09:18 +01:00
|
|
|
assert service_permissions[0].service_id == service_without_permissions.id
|
2024-01-18 10:26:40 -05:00
|
|
|
assert service_permissions[0].permission == ServicePermissionType.SMS
|
2017-05-11 15:22:58 +01:00
|
|
|
|
|
|
|
|
|
2023-08-23 10:35:43 -07:00
|
|
|
def test_fetch_service_permissions_gets_service_permissions(
|
|
|
|
|
service_without_permissions,
|
|
|
|
|
):
|
|
|
|
|
create_service_permission(
|
2024-01-18 10:26:40 -05:00
|
|
|
service_id=service_without_permissions.id,
|
|
|
|
|
permission=ServicePermissionType.INTERNATIONAL_SMS,
|
2023-08-23 10:35:43 -07:00
|
|
|
)
|
|
|
|
|
create_service_permission(
|
2024-01-18 10:26:40 -05:00
|
|
|
service_id=service_without_permissions.id, permission=ServicePermissionType.SMS
|
2023-08-23 10:35:43 -07:00
|
|
|
)
|
2017-05-16 12:33:27 +01:00
|
|
|
|
2017-05-17 14:09:18 +01:00
|
|
|
service_permissions = dao_fetch_service_permissions(service_without_permissions.id)
|
2017-05-11 15:22:58 +01:00
|
|
|
|
2023-03-02 20:20:31 -05:00
|
|
|
assert len(service_permissions) == 2
|
2023-08-23 10:35:43 -07:00
|
|
|
assert all(
|
|
|
|
|
sp.service_id == service_without_permissions.id for sp in service_permissions
|
|
|
|
|
)
|
|
|
|
|
assert all(
|
2024-01-18 10:27:31 -05:00
|
|
|
sp.permission
|
|
|
|
|
in {
|
2024-01-18 10:26:40 -05:00
|
|
|
ServicePermissionType.INTERNATIONAL_SMS,
|
|
|
|
|
ServicePermissionType.SMS,
|
|
|
|
|
}
|
2023-08-23 10:35:43 -07:00
|
|
|
for sp in service_permissions
|
|
|
|
|
)
|
2017-05-11 15:22:58 +01:00
|
|
|
|
|
|
|
|
|
2017-05-17 14:09:18 +01:00
|
|
|
def test_remove_service_permission(service_without_permissions):
|
2023-08-23 10:35:43 -07:00
|
|
|
create_service_permission(
|
2024-01-18 10:26:40 -05:00
|
|
|
service_id=service_without_permissions.id,
|
|
|
|
|
permission=ServicePermissionType.EMAIL,
|
2023-08-23 10:35:43 -07:00
|
|
|
)
|
|
|
|
|
create_service_permission(
|
2024-01-18 10:26:40 -05:00
|
|
|
service_id=service_without_permissions.id,
|
|
|
|
|
permission=ServicePermissionType.INBOUND_SMS,
|
2023-08-23 10:35:43 -07:00
|
|
|
)
|
2017-05-11 15:22:58 +01:00
|
|
|
|
2024-01-18 10:26:40 -05:00
|
|
|
dao_remove_service_permission(
|
|
|
|
|
service_without_permissions.id,
|
|
|
|
|
ServicePermissionType.EMAIL,
|
|
|
|
|
)
|
2017-05-11 15:22:58 +01:00
|
|
|
|
2017-05-17 14:09:18 +01:00
|
|
|
permissions = dao_fetch_service_permissions(service_without_permissions.id)
|
2017-05-11 15:22:58 +01:00
|
|
|
assert len(permissions) == 1
|
2024-01-18 10:26:40 -05:00
|
|
|
assert permissions[0].permission == ServicePermissionType.INBOUND_SMS
|
2017-05-17 14:09:18 +01:00
|
|
|
assert permissions[0].service_id == service_without_permissions.id
|