diff --git a/app/access/tests/functional/organization/test_organization_serializer.py b/app/access/tests/functional/organization/test_organization_serializer.py deleted file mode 100644 index 88855252..00000000 --- a/app/access/tests/functional/organization/test_organization_serializer.py +++ /dev/null @@ -1,94 +0,0 @@ -import django -import pytest - -from django.test import TestCase - -from rest_framework.exceptions import ValidationError - -from access.serializers.organization import ( - Tenant, - TenantModelSerializer -) - -User = django.contrib.auth.get_user_model() - - - -class OrganizationValidationAPI( - TestCase, -): - - model = Tenant - - @classmethod - def setUpTestData(self): - """Setup Test - - 1. Create an org - 2. Create an item - """ - - self.user = User.objects.create(username = 'org_user', password='random password') - - self.valid_data = { - 'name': 'valid_org_data', - 'manager': self.user.id - } - - self.item = self.model.objects.create( - name = 'random title', - ) - - - - def test_serializer_valid_data(self): - """Serializer Validation Check - - Ensure that if creating and no name is provided a validation error occurs - """ - - serializer = TenantModelSerializer( - data = self.valid_data - ) - - assert serializer.is_valid(raise_exception = True) - - - - def test_serializer_validation_no_name(self): - """Serializer Validation Check - - Ensure that if creating and no name is provided a validation error occurs - """ - - data = self.valid_data.copy() - - del data['name'] - - with pytest.raises(ValidationError) as err: - - serializer = TenantModelSerializer( - data = data - ) - - serializer.is_valid(raise_exception = True) - - assert err.value.get_codes()['name'][0] == 'required' - - - - def test_serializer_validation_manager_optional(self): - """Serializer Validation Check - - Ensure that if creating and no name is provided a validation error occurs - """ - - data = self.valid_data.copy() - - del data['manager'] - - serializer = TenantModelSerializer( - data = data - ) - - assert serializer.is_valid(raise_exception = True) diff --git a/app/access/tests/unit/tenant/test_unit_tenant_serializer.py b/app/access/tests/unit/tenant/test_unit_tenant_serializer.py index 5c56b1be..a3c2b6cb 100644 --- a/app/access/tests/unit/tenant/test_unit_tenant_serializer.py +++ b/app/access/tests/unit/tenant/test_unit_tenant_serializer.py @@ -1,18 +1,94 @@ import pytest +from rest_framework.exceptions import ValidationError + from api.tests.unit.test_unit_serializer import ( SerializerTestCases ) - -class TenantSerializerTestCases( - SerializerTestCases -): - pass +from centurion.tests.abstract.mock_view import MockView @pytest.mark.model_tenant +class TenantSerializerTestCases( + SerializerTestCases +): + + @pytest.fixture( scope = 'function' ) + def created_model(self, django_db_blocker, model, model_kwargs): + + with django_db_blocker.unblock(): + + item = model.objects.create( **model_kwargs ) + + yield item + + item.delete() + + + def test_serializer_validation_no_name(self, + kwargs_api_create, model, model_serializer, request_user + ): + """Serializer Validation Check + + Ensure that if creating and no name is provided a validation error occurs + """ + + mock_view = MockView( + user = request_user, + model = model, + action = 'create', + ) + + kwargs = kwargs_api_create.copy() + del kwargs['name'] + + with pytest.raises(ValidationError) as err: + + serializer = model_serializer['model']( + context = { + 'request': mock_view.request, + 'view': mock_view, + }, + data = kwargs + ) + + serializer.is_valid(raise_exception = True) + + assert err.value.get_codes()['name'][0] == 'required' + + + + def test_serializer_validation_manager_optional(self, + kwargs_api_create, model, model_serializer, request_user + ): + """Serializer Validation Check + + Ensure that if creating and no name is provided a validation error occurs + """ + + mock_view = MockView( + user = request_user, + model = model, + action = 'create', + ) + + kwargs = kwargs_api_create.copy() + del kwargs['manager'] + + serializer = model_serializer['model']( + context = { + 'request': mock_view.request, + 'view': mock_view, + }, + data = kwargs + ) + + assert serializer.is_valid(raise_exception = True) + + + @pytest.mark.module_access class TenantSerializerPyTest( TenantSerializerTestCases