Merge pull request #969 from alphagov/ken-refactor-service_permissions-data_model

Refactored service permissisons data model
This commit is contained in:
kentsanggds
2017-05-22 14:08:15 +01:00
committed by GitHub
4 changed files with 64 additions and 19 deletions

View File

@@ -1,7 +1,7 @@
import pytest
from app.dao.service_permissions_dao import dao_fetch_service_permissions, dao_remove_service_permission
from app.models import EMAIL_TYPE, SMS_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, INCOMING_SMS_TYPE
from app.models import EMAIL_TYPE, SMS_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, INBOUND_SMS_TYPE
from tests.app.db import create_service_permission, create_service
@@ -34,11 +34,11 @@ def test_fetch_service_permissions_gets_service_permissions(service_without_perm
def test_remove_service_permission(service_without_permissions):
create_service_permission(service_id=service_without_permissions.id, permission=EMAIL_TYPE)
create_service_permission(service_id=service_without_permissions.id, permission=INCOMING_SMS_TYPE)
create_service_permission(service_id=service_without_permissions.id, permission=INBOUND_SMS_TYPE)
dao_remove_service_permission(service_without_permissions.id, EMAIL_TYPE)
permissions = dao_fetch_service_permissions(service_without_permissions.id)
assert len(permissions) == 1
assert permissions[0].permission == INCOMING_SMS_TYPE
assert permissions[0].permission == INBOUND_SMS_TYPE
assert permissions[0].service_id == service_without_permissions.id

View File

@@ -44,6 +44,8 @@ from app.models import (
User,
InvitedUser,
Service,
ServicePermission,
ServicePermissionTypes,
BRANDING_GOVUK,
DVLA_ORG_HM_GOVERNMENT,
KEY_TYPE_NORMAL,
@@ -52,7 +54,8 @@ from app.models import (
EMAIL_TYPE,
SMS_TYPE,
LETTER_TYPE,
INTERNATIONAL_SMS_TYPE
INTERNATIONAL_SMS_TYPE,
SERVICE_PERMISSION_TYPES
)
from tests.app.db import create_user, create_service
@@ -286,6 +289,14 @@ def test_remove_permission_from_service_by_id_returns_service_with_correct_permi
assert service.permissions[0].permission == EMAIL_TYPE
def test_remove_service_does_not_remove_service_permission_types(sample_service):
delete_service_and_all_associated_db_objects(sample_service)
services = dao_fetch_all_services()
assert len(services) == 0
assert set([p.name for p in ServicePermissionTypes.query.all()]) == set(SERVICE_PERMISSION_TYPES)
def test_create_service_by_id_adding_and_removing_letter_returns_service_without_letter(service_factory):
service = service_factory.get('testing', email_from='testing')
@@ -392,6 +403,9 @@ def test_delete_service_and_associated_objects(notify_db,
sample_invited_user,
sample_permission,
sample_provider_statistics):
# Default service permissions of Email and SMS
assert ServicePermission.query.count() == 2
delete_service_and_all_associated_db_objects(sample_service)
assert NotificationStatistics.query.count() == 0
assert TemplateStatistics.query.count() == 0
@@ -408,6 +422,7 @@ def test_delete_service_and_associated_objects(notify_db,
assert InvitedUser.query.count() == 0
assert Service.query.count() == 0
assert Service.get_history_model().query.count() == 0
assert ServicePermission.query.count() == 0
def test_add_existing_user_to_another_service_doesnot_change_old_permissions(sample_user):