Merge pull request #897 from nofusscomputing/access-test-refactor
This commit is contained in:
@ -1,43 +0,0 @@
|
||||
import pytest
|
||||
|
||||
from access.tests.functional.entity.test_functional_entity_permission import (
|
||||
EntityPermissionsAPIInheritedCases
|
||||
)
|
||||
|
||||
|
||||
|
||||
class CompanyPermissionsAPITestCases(
|
||||
EntityPermissionsAPIInheritedCases,
|
||||
):
|
||||
|
||||
add_data: dict = {
|
||||
'name': 'Ian1',
|
||||
}
|
||||
|
||||
kwargs_create_item: dict = {
|
||||
'name': 'Ian2',
|
||||
}
|
||||
|
||||
kwargs_create_item_diff_org: dict = {
|
||||
'name': 'Ian3',
|
||||
}
|
||||
|
||||
|
||||
|
||||
class CompanyPermissionsAPIInheritedCases(
|
||||
CompanyPermissionsAPITestCases,
|
||||
):
|
||||
|
||||
add_data: dict = None
|
||||
|
||||
kwargs_create_item: dict = None
|
||||
|
||||
kwargs_create_item_diff_org: dict = None
|
||||
|
||||
|
||||
|
||||
class CompanyPermissionsAPIPyTest(
|
||||
CompanyPermissionsAPITestCases,
|
||||
):
|
||||
|
||||
pass
|
@ -1,46 +0,0 @@
|
||||
import pytest
|
||||
|
||||
from rest_framework.exceptions import ValidationError
|
||||
|
||||
from access.tests.functional.entity.test_functional_entity_serializer import (
|
||||
MockView,
|
||||
EntitySerializerInheritedCases
|
||||
)
|
||||
|
||||
|
||||
|
||||
class CompanySerializerTestCases(
|
||||
EntitySerializerInheritedCases
|
||||
):
|
||||
|
||||
|
||||
parameterized_test_data: dict = {
|
||||
"name": {
|
||||
'will_create': False,
|
||||
'exception_key': 'required'
|
||||
},
|
||||
}
|
||||
|
||||
valid_data: dict = {
|
||||
'name': 'Ian',
|
||||
}
|
||||
"""Valid data used by serializer to create object"""
|
||||
|
||||
|
||||
|
||||
class CompanySerializerInheritedCases(
|
||||
CompanySerializerTestCases,
|
||||
):
|
||||
|
||||
parameterized_test_data: dict = None
|
||||
|
||||
valid_data: dict = None
|
||||
"""Valid data used by serializer to create object"""
|
||||
|
||||
|
||||
|
||||
class CompanySerializerPyTest(
|
||||
CompanySerializerTestCases,
|
||||
):
|
||||
|
||||
parameterized_test_data: dict = None
|
@ -1,58 +0,0 @@
|
||||
from django.test import TestCase
|
||||
|
||||
from access.models.company_base import Company
|
||||
from access.tests.functional.entity.test_functional_entity_viewset import (
|
||||
EntityViewSetInheritedCases
|
||||
)
|
||||
|
||||
|
||||
|
||||
class ViewSetTestCases(
|
||||
EntityViewSetInheritedCases,
|
||||
):
|
||||
|
||||
add_data: dict = {
|
||||
'name': 'Ian',
|
||||
}
|
||||
|
||||
kwargs_create_item: dict = {
|
||||
'name': 'Ian2',
|
||||
}
|
||||
|
||||
kwargs_create_item_diff_org: dict = {
|
||||
'name': 'Ian3',
|
||||
}
|
||||
|
||||
model = Company
|
||||
|
||||
|
||||
|
||||
class CompanyViewSetInheritedCases(
|
||||
ViewSetTestCases,
|
||||
):
|
||||
|
||||
model = None
|
||||
|
||||
|
||||
@classmethod
|
||||
def setUpTestData(self):
|
||||
|
||||
self.kwargs_create_item = {
|
||||
**super().kwargs_create_item,
|
||||
**self.kwargs_create_item
|
||||
}
|
||||
|
||||
self.kwargs_create_item_diff_org = {
|
||||
**super().kwargs_create_item_diff_org,
|
||||
**self.kwargs_create_item_diff_org
|
||||
}
|
||||
|
||||
super().setUpTestData()
|
||||
|
||||
|
||||
|
||||
class CompanyViewSetTest(
|
||||
ViewSetTestCases,
|
||||
TestCase,
|
||||
):
|
||||
pass
|
@ -1,70 +0,0 @@
|
||||
import pytest
|
||||
|
||||
from access.tests.functional.person.test_functional_person_permission import (
|
||||
PersonPermissionsAPIInheritedCases
|
||||
)
|
||||
|
||||
|
||||
|
||||
class ContactPermissionsAPITestCases(
|
||||
PersonPermissionsAPIInheritedCases,
|
||||
):
|
||||
|
||||
add_data: dict = {
|
||||
'email': 'ipfunny@unit.test',
|
||||
}
|
||||
|
||||
kwargs_create_item: dict = {
|
||||
'email': 'ipweird@unit.test',
|
||||
}
|
||||
|
||||
kwargs_create_item_diff_org: dict = {
|
||||
'email': 'ipstrange@unit.test',
|
||||
}
|
||||
|
||||
|
||||
|
||||
class ContactPermissionsAPIInheritedCases(
|
||||
ContactPermissionsAPITestCases,
|
||||
):
|
||||
|
||||
add_data: dict = None
|
||||
|
||||
kwargs_create_item: dict = None
|
||||
|
||||
kwargs_create_item_diff_org: dict = None
|
||||
|
||||
# url_name = '_api_entity_sub'
|
||||
|
||||
|
||||
# @pytest.fixture(scope='class')
|
||||
# def inherited_var_setup(self, request):
|
||||
|
||||
# request.cls.url_kwargs.update({
|
||||
# 'model_name': self.model._meta.sub_model_type
|
||||
# })
|
||||
|
||||
# request.cls.url_view_kwargs.update({
|
||||
# 'model_name': self.model._meta.sub_model_type
|
||||
# })
|
||||
|
||||
|
||||
|
||||
# @pytest.fixture(scope='class', autouse = True)
|
||||
# def class_setup(self, request, django_db_blocker,
|
||||
# model,
|
||||
# var_setup,
|
||||
# prepare,
|
||||
# inherited_var_setup,
|
||||
# diff_org_model,
|
||||
# create_model,
|
||||
# ):
|
||||
|
||||
# pass
|
||||
|
||||
|
||||
class ContactPermissionsAPIPyTest(
|
||||
ContactPermissionsAPITestCases,
|
||||
):
|
||||
|
||||
pass
|
@ -1,46 +0,0 @@
|
||||
import pytest
|
||||
|
||||
from rest_framework.exceptions import ValidationError
|
||||
|
||||
from access.tests.functional.person.test_functional_person_serializer import (
|
||||
MockView,
|
||||
PersonSerializerInheritedCases
|
||||
)
|
||||
|
||||
|
||||
|
||||
class ContactSerializerTestCases(
|
||||
PersonSerializerInheritedCases
|
||||
):
|
||||
|
||||
|
||||
parameterized_test_data: dict = {
|
||||
"email": {
|
||||
'will_create': False,
|
||||
'exception_key': 'required'
|
||||
}
|
||||
}
|
||||
|
||||
valid_data: dict = {
|
||||
'email': 'contactentityduplicatetwo@unit.test',
|
||||
}
|
||||
"""Valid data used by serializer to create object"""
|
||||
|
||||
|
||||
|
||||
class ContactSerializerInheritedCases(
|
||||
ContactSerializerTestCases,
|
||||
):
|
||||
|
||||
parameterized_test_data: dict = None
|
||||
|
||||
valid_data: dict = None
|
||||
"""Valid data used by serializer to create object"""
|
||||
|
||||
|
||||
|
||||
class ContactSerializerPyTest(
|
||||
ContactSerializerTestCases,
|
||||
):
|
||||
|
||||
parameterized_test_data: dict = None
|
@ -1,58 +0,0 @@
|
||||
from django.test import TestCase
|
||||
|
||||
from access.models.contact import Contact
|
||||
from access.tests.functional.person.test_functional_person_viewset import (
|
||||
PersonViewSetInheritedCases
|
||||
)
|
||||
|
||||
|
||||
|
||||
class ViewSetTestCases(
|
||||
PersonViewSetInheritedCases,
|
||||
):
|
||||
|
||||
add_data: dict = {
|
||||
'email': 'ipfunny@unit.test',
|
||||
}
|
||||
|
||||
kwargs_create_item: dict = {
|
||||
'email': 'ipweird@unit.test',
|
||||
}
|
||||
|
||||
kwargs_create_item_diff_org: dict = {
|
||||
'email': 'ipstrange@unit.test',
|
||||
}
|
||||
|
||||
model = Contact
|
||||
|
||||
|
||||
|
||||
class ContactViewSetInheritedCases(
|
||||
ViewSetTestCases,
|
||||
):
|
||||
|
||||
model = None
|
||||
|
||||
|
||||
@classmethod
|
||||
def setUpTestData(self):
|
||||
|
||||
self.kwargs_create_item = {
|
||||
**super().kwargs_create_item,
|
||||
**self.kwargs_create_item
|
||||
}
|
||||
|
||||
self.kwargs_create_item_diff_org = {
|
||||
**super().kwargs_create_item_diff_org,
|
||||
**self.kwargs_create_item_diff_org
|
||||
}
|
||||
|
||||
super().setUpTestData()
|
||||
|
||||
|
||||
|
||||
class ContactViewSetTest(
|
||||
ViewSetTestCases,
|
||||
TestCase,
|
||||
):
|
||||
pass
|
@ -1,89 +0,0 @@
|
||||
import pytest
|
||||
|
||||
from api.tests.functional.test_functional_api_permissions import (
|
||||
APIPermissionsInheritedCases,
|
||||
)
|
||||
|
||||
|
||||
|
||||
class EntityPermissionsAPITestCases(
|
||||
APIPermissionsInheritedCases,
|
||||
):
|
||||
|
||||
add_data: dict = {}
|
||||
|
||||
app_namespace = 'v2'
|
||||
|
||||
change_data = {}
|
||||
|
||||
delete_data = {}
|
||||
|
||||
kwargs_create_item: dict = {}
|
||||
|
||||
kwargs_create_item_diff_org: dict = {}
|
||||
|
||||
url_kwargs: dict = {}
|
||||
|
||||
url_name = '_api_entity'
|
||||
|
||||
url_view_kwargs: dict = {}
|
||||
|
||||
|
||||
|
||||
def test_returned_data_from_user_and_global_organizations_only(self):
|
||||
"""Check items returned
|
||||
|
||||
This test case is a over-ride of a test case with the same name.
|
||||
This model is not a tenancy model making this test not-applicable.
|
||||
|
||||
Items returned from the query Must be from the users organization and
|
||||
global ONLY!
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
|
||||
class EntityPermissionsAPIInheritedCases(
|
||||
EntityPermissionsAPITestCases,
|
||||
):
|
||||
|
||||
add_data: dict = None
|
||||
|
||||
kwargs_create_item: dict = None
|
||||
|
||||
kwargs_create_item_diff_org: dict = None
|
||||
|
||||
url_name = '_api_entity_sub'
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def inherited_var_setup(self, request):
|
||||
|
||||
request.cls.url_kwargs.update({
|
||||
'model_name': self.model._meta.sub_model_type
|
||||
})
|
||||
|
||||
request.cls.url_view_kwargs.update({
|
||||
'model_name': self.model._meta.sub_model_type
|
||||
})
|
||||
|
||||
|
||||
|
||||
@pytest.fixture(scope='class', autouse = True)
|
||||
def class_setup(self, request, django_db_blocker,
|
||||
model,
|
||||
var_setup,
|
||||
prepare,
|
||||
inherited_var_setup,
|
||||
diff_org_model,
|
||||
create_model,
|
||||
):
|
||||
|
||||
pass
|
||||
|
||||
|
||||
class EntityPermissionsAPIPyTest(
|
||||
EntityPermissionsAPITestCases,
|
||||
):
|
||||
|
||||
pass
|
@ -28,7 +28,7 @@ class MockView:
|
||||
"""
|
||||
|
||||
|
||||
|
||||
@pytest.mark.skip(reason = 'see #874, tests being refactored')
|
||||
class EntitySerializerTestCases:
|
||||
|
||||
|
||||
|
@ -1,266 +0,0 @@
|
||||
import django
|
||||
from django.contrib.auth.models import Permission
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.test import TestCase
|
||||
|
||||
from access.models.entity import Entity
|
||||
from access.models.tenant import Tenant as Organization
|
||||
from access.models.team import Team
|
||||
from access.models.team_user import TeamUsers
|
||||
|
||||
from api.tests.abstract.api_serializer_viewset import SerializersTestCases
|
||||
|
||||
User = django.contrib.auth.get_user_model()
|
||||
|
||||
|
||||
|
||||
class ViewSetBase:
|
||||
|
||||
add_data: dict = {
|
||||
'model_notes': 'added model note'
|
||||
}
|
||||
|
||||
app_namespace = 'v2'
|
||||
|
||||
base_model = Entity
|
||||
"""Base model for this sub model
|
||||
don't change or override this value
|
||||
"""
|
||||
|
||||
change_data = None
|
||||
|
||||
delete_data = {}
|
||||
|
||||
kwargs_create_item: dict = {
|
||||
'model_notes': 'added model note'
|
||||
}
|
||||
|
||||
kwargs_create_item_diff_org: dict = {
|
||||
'model_notes': 'added model note'
|
||||
}
|
||||
|
||||
model = None
|
||||
|
||||
url_kwargs: dict = {}
|
||||
|
||||
url_view_kwargs: dict = {}
|
||||
|
||||
url_name = None
|
||||
|
||||
|
||||
@classmethod
|
||||
def setUpTestData(self):
|
||||
"""Setup Test
|
||||
|
||||
1. Create an organization for user and item
|
||||
. create an organization that is different to item
|
||||
2. Create a team
|
||||
3. create teams with each permission: view, add, change, delete
|
||||
4. create a user per team
|
||||
"""
|
||||
|
||||
organization = Organization.objects.create(name='test_org')
|
||||
|
||||
self.organization = organization
|
||||
|
||||
self.different_organization = Organization.objects.create(name='test_different_organization')
|
||||
|
||||
self.view_user = User.objects.create_user(username="test_user_view", password="password")
|
||||
|
||||
self.item = self.model.objects.create(
|
||||
organization = organization,
|
||||
**self.kwargs_create_item
|
||||
)
|
||||
|
||||
self.other_org_item = self.model.objects.create(
|
||||
organization = self.different_organization,
|
||||
**self.kwargs_create_item_diff_org
|
||||
)
|
||||
|
||||
|
||||
self.url_view_kwargs.update({ 'pk': self.item.id })
|
||||
|
||||
if self.add_data is not None:
|
||||
|
||||
self.add_data.update({
|
||||
'organization': self.organization.id,
|
||||
})
|
||||
|
||||
|
||||
view_permissions = Permission.objects.get(
|
||||
codename = 'view_' + self.model._meta.model_name,
|
||||
content_type = ContentType.objects.get(
|
||||
app_label = self.model._meta.app_label,
|
||||
model = self.model._meta.model_name,
|
||||
)
|
||||
)
|
||||
|
||||
view_team = Team.objects.create(
|
||||
team_name = 'view_team',
|
||||
organization = organization,
|
||||
)
|
||||
|
||||
view_team.permissions.set([view_permissions])
|
||||
|
||||
|
||||
|
||||
add_permissions = Permission.objects.get(
|
||||
codename = 'add_' + self.model._meta.model_name,
|
||||
content_type = ContentType.objects.get(
|
||||
app_label = self.model._meta.app_label,
|
||||
model = self.model._meta.model_name,
|
||||
)
|
||||
)
|
||||
|
||||
add_team = Team.objects.create(
|
||||
team_name = 'add_team',
|
||||
organization = organization,
|
||||
)
|
||||
|
||||
add_team.permissions.set([add_permissions])
|
||||
|
||||
|
||||
|
||||
change_permissions = Permission.objects.get(
|
||||
codename = 'change_' + self.model._meta.model_name,
|
||||
content_type = ContentType.objects.get(
|
||||
app_label = self.model._meta.app_label,
|
||||
model = self.model._meta.model_name,
|
||||
)
|
||||
)
|
||||
|
||||
change_team = Team.objects.create(
|
||||
team_name = 'change_team',
|
||||
organization = organization,
|
||||
)
|
||||
|
||||
change_team.permissions.set([change_permissions])
|
||||
|
||||
|
||||
|
||||
delete_permissions = Permission.objects.get(
|
||||
codename = 'delete_' + self.model._meta.model_name,
|
||||
content_type = ContentType.objects.get(
|
||||
app_label = self.model._meta.app_label,
|
||||
model = self.model._meta.model_name,
|
||||
)
|
||||
)
|
||||
|
||||
delete_team = Team.objects.create(
|
||||
team_name = 'delete_team',
|
||||
organization = organization,
|
||||
)
|
||||
|
||||
delete_team.permissions.set([delete_permissions])
|
||||
|
||||
|
||||
self.no_permissions_user = User.objects.create_user(username="test_no_permissions", password="password")
|
||||
|
||||
|
||||
TeamUsers.objects.create(
|
||||
team = view_team,
|
||||
user = self.view_user
|
||||
)
|
||||
|
||||
self.add_user = User.objects.create_user(username="test_user_add", password="password")
|
||||
TeamUsers.objects.create(
|
||||
team = add_team,
|
||||
user = self.add_user
|
||||
)
|
||||
|
||||
self.change_user = User.objects.create_user(username="test_user_change", password="password")
|
||||
TeamUsers.objects.create(
|
||||
team = change_team,
|
||||
user = self.change_user
|
||||
)
|
||||
|
||||
self.delete_user = User.objects.create_user(username="test_user_delete", password="password")
|
||||
TeamUsers.objects.create(
|
||||
team = delete_team,
|
||||
user = self.delete_user
|
||||
)
|
||||
|
||||
|
||||
self.different_organization_user = User.objects.create_user(username="test_different_organization_user", password="password")
|
||||
|
||||
|
||||
different_organization_team = Team.objects.create(
|
||||
team_name = 'different_organization_team',
|
||||
organization = self.different_organization,
|
||||
)
|
||||
|
||||
different_organization_team.permissions.set([
|
||||
view_permissions,
|
||||
add_permissions,
|
||||
change_permissions,
|
||||
delete_permissions,
|
||||
])
|
||||
|
||||
TeamUsers.objects.create(
|
||||
team = different_organization_team,
|
||||
user = self.different_organization_user
|
||||
)
|
||||
|
||||
|
||||
def test_sanity_is_asset_sub_model(self):
|
||||
"""Sanity Test
|
||||
|
||||
This test ensures that the model being tested `self.model` is a
|
||||
sub-model of `self.base_model`.
|
||||
This test is required as the same viewset is used for all sub-models
|
||||
of `Entity`
|
||||
"""
|
||||
|
||||
assert issubclass(self.model, self.base_model)
|
||||
|
||||
|
||||
|
||||
class ViewSetTestCases(
|
||||
ViewSetBase,
|
||||
SerializersTestCases,
|
||||
):
|
||||
|
||||
model = Entity
|
||||
|
||||
|
||||
|
||||
class EntityViewSetInheritedCases(
|
||||
ViewSetTestCases,
|
||||
):
|
||||
|
||||
model = None
|
||||
|
||||
url_name = '_api_entity_sub'
|
||||
|
||||
|
||||
@classmethod
|
||||
def setUpTestData(self):
|
||||
|
||||
self.kwargs_create_item = {
|
||||
**super().kwargs_create_item,
|
||||
**self.kwargs_create_item
|
||||
}
|
||||
|
||||
self.kwargs_create_item_diff_org = {
|
||||
**super().kwargs_create_item_diff_org,
|
||||
**self.kwargs_create_item_diff_org
|
||||
}
|
||||
|
||||
self.url_kwargs = {
|
||||
'model_name': self.model._meta.sub_model_type
|
||||
}
|
||||
|
||||
self.url_view_kwargs = {
|
||||
'model_name': self.model._meta.sub_model_type
|
||||
}
|
||||
|
||||
super().setUpTestData()
|
||||
|
||||
|
||||
|
||||
class EntityViewSetTest(
|
||||
ViewSetTestCases,
|
||||
TestCase,
|
||||
):
|
||||
|
||||
url_name = '_api_entity'
|
@ -1,91 +0,0 @@
|
||||
import pytest
|
||||
|
||||
from access.tests.functional.entity.test_functional_entity_permission import (
|
||||
EntityPermissionsAPIInheritedCases
|
||||
)
|
||||
|
||||
|
||||
|
||||
class PersonPermissionsAPITestCases(
|
||||
EntityPermissionsAPIInheritedCases,
|
||||
):
|
||||
|
||||
add_data: dict = {
|
||||
'f_name': 'Ian',
|
||||
'm_name': 'Peter',
|
||||
'l_name': 'Strange',
|
||||
'dob': '2025-04-08',
|
||||
}
|
||||
|
||||
# app_namespace = 'v2'
|
||||
|
||||
# change_data = {}
|
||||
|
||||
# delete_data = {}
|
||||
|
||||
kwargs_create_item: dict = {
|
||||
'f_name': 'Ian',
|
||||
'm_name': 'Peter',
|
||||
'l_name': 'Weird',
|
||||
'dob': '2025-04-08',
|
||||
}
|
||||
|
||||
kwargs_create_item_diff_org: dict = {
|
||||
'f_name': 'Ian',
|
||||
'm_name': 'Peter',
|
||||
'l_name': 'Funny',
|
||||
'dob': '2025-04-08',
|
||||
}
|
||||
|
||||
# url_kwargs: dict = {}
|
||||
|
||||
# url_name = '_api_entity'
|
||||
|
||||
# url_view_kwargs: dict = {}
|
||||
|
||||
|
||||
|
||||
class PersonPermissionsAPIInheritedCases(
|
||||
PersonPermissionsAPITestCases,
|
||||
):
|
||||
|
||||
add_data: dict = None
|
||||
|
||||
kwargs_create_item: dict = None
|
||||
|
||||
kwargs_create_item_diff_org: dict = None
|
||||
|
||||
# url_name = '_api_entity_sub'
|
||||
|
||||
|
||||
# @pytest.fixture(scope='class')
|
||||
# def inherited_var_setup(self, request):
|
||||
|
||||
# request.cls.url_kwargs.update({
|
||||
# 'model_name': self.model._meta.sub_model_type
|
||||
# })
|
||||
|
||||
# request.cls.url_view_kwargs.update({
|
||||
# 'model_name': self.model._meta.sub_model_type
|
||||
# })
|
||||
|
||||
|
||||
|
||||
# @pytest.fixture(scope='class', autouse = True)
|
||||
# def class_setup(self, request, django_db_blocker,
|
||||
# model,
|
||||
# var_setup,
|
||||
# prepare,
|
||||
# inherited_var_setup,
|
||||
# diff_org_model,
|
||||
# create_model,
|
||||
# ):
|
||||
|
||||
# pass
|
||||
|
||||
|
||||
class PersonPermissionsAPIPyTest(
|
||||
PersonPermissionsAPITestCases,
|
||||
):
|
||||
|
||||
pass
|
@ -1,67 +0,0 @@
|
||||
from django.test import TestCase
|
||||
|
||||
from access.models.person import Person
|
||||
from access.tests.functional.entity.test_functional_entity_viewset import (
|
||||
EntityViewSetInheritedCases
|
||||
)
|
||||
|
||||
|
||||
|
||||
class ViewSetTestCases(
|
||||
EntityViewSetInheritedCases,
|
||||
):
|
||||
|
||||
add_data: dict = {
|
||||
'f_name': 'Ian',
|
||||
'm_name': 'Peter',
|
||||
'l_name': 'Strange',
|
||||
'dob': '2025-04-08',
|
||||
}
|
||||
|
||||
kwargs_create_item: dict = {
|
||||
'f_name': 'Ian',
|
||||
'm_name': 'Peter',
|
||||
'l_name': 'Weird',
|
||||
'dob': '2025-04-08',
|
||||
}
|
||||
|
||||
kwargs_create_item_diff_org: dict = {
|
||||
'f_name': 'Ian',
|
||||
'm_name': 'Peter',
|
||||
'l_name': 'Funny',
|
||||
'dob': '2025-04-08',
|
||||
}
|
||||
|
||||
model = Person
|
||||
|
||||
|
||||
|
||||
class PersonViewSetInheritedCases(
|
||||
ViewSetTestCases,
|
||||
):
|
||||
|
||||
model = None
|
||||
|
||||
|
||||
@classmethod
|
||||
def setUpTestData(self):
|
||||
|
||||
self.kwargs_create_item = {
|
||||
**super().kwargs_create_item,
|
||||
**self.kwargs_create_item
|
||||
}
|
||||
|
||||
self.kwargs_create_item_diff_org = {
|
||||
**super().kwargs_create_item_diff_org,
|
||||
**self.kwargs_create_item_diff_org
|
||||
}
|
||||
|
||||
super().setUpTestData()
|
||||
|
||||
|
||||
|
||||
class PersonViewSetTest(
|
||||
ViewSetTestCases,
|
||||
TestCase,
|
||||
):
|
||||
pass
|
@ -1,7 +1,5 @@
|
||||
import pytest
|
||||
|
||||
from django.test import TestCase
|
||||
|
||||
from access.models.company_base import Company
|
||||
from access.tests.unit.entity.test_unit_entity_viewset import (
|
||||
EntityViewsetInheritedCases
|
||||
@ -14,7 +12,14 @@ class ViewsetTestCases(
|
||||
EntityViewsetInheritedCases,
|
||||
):
|
||||
|
||||
model: str = Company
|
||||
|
||||
@property
|
||||
def parameterized_class_attributes(self):
|
||||
return {
|
||||
'model': {
|
||||
'value': Company
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -26,15 +31,13 @@ class CompanyViewsetInheritedCases(
|
||||
Test Cases for Entity models that inherit from model Company
|
||||
"""
|
||||
|
||||
model: str = None
|
||||
"""name of the model to test"""
|
||||
pass
|
||||
|
||||
|
||||
|
||||
@pytest.mark.module_access
|
||||
class CompanyViewsetTest(
|
||||
class CompanyViewsetPyTest(
|
||||
ViewsetTestCases,
|
||||
TestCase,
|
||||
):
|
||||
|
||||
pass
|
||||
|
@ -1,7 +1,5 @@
|
||||
import pytest
|
||||
|
||||
from django.test import TestCase
|
||||
|
||||
from access.models.contact import Contact
|
||||
from access.tests.unit.person.test_unit_person_viewset import (
|
||||
PersonViewsetInheritedCases
|
||||
@ -14,7 +12,14 @@ class ViewsetTestCases(
|
||||
PersonViewsetInheritedCases,
|
||||
):
|
||||
|
||||
model: str = Contact
|
||||
|
||||
@property
|
||||
def parameterized_class_attributes(self):
|
||||
return {
|
||||
'model': {
|
||||
'value': Contact
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -26,15 +31,13 @@ class ContactViewsetInheritedCases(
|
||||
Test Cases for Entity models that inherit from model Contact
|
||||
"""
|
||||
|
||||
model: str = None
|
||||
"""name of the model to test"""
|
||||
pass
|
||||
|
||||
|
||||
|
||||
@pytest.mark.module_access
|
||||
class ContactViewsetTest(
|
||||
class ContactViewsetPyTest(
|
||||
ViewsetTestCases,
|
||||
TestCase,
|
||||
):
|
||||
|
||||
pass
|
||||
|
@ -7,13 +7,13 @@ from access.viewsets.entity import (
|
||||
ViewSet,
|
||||
)
|
||||
|
||||
from api.tests.unit.test_unit_common_viewset import ModelViewSetInheritedCases
|
||||
from api.tests.unit.test_unit_common_viewset import SubModelViewSetInheritedCases
|
||||
|
||||
|
||||
|
||||
@pytest.mark.model_entity
|
||||
class ViewsetTestCases(
|
||||
ModelViewSetInheritedCases,
|
||||
SubModelViewSetInheritedCases,
|
||||
):
|
||||
|
||||
|
||||
@ -25,26 +25,21 @@ class ViewsetTestCases(
|
||||
@property
|
||||
def parameterized_class_attributes(self):
|
||||
return {
|
||||
'_log': {
|
||||
'type': logging.Logger,
|
||||
'value': None
|
||||
},
|
||||
# '_log': {
|
||||
# 'type': logging.Logger,
|
||||
# 'value': None
|
||||
# },
|
||||
'_model_documentation': {
|
||||
'type': type(None),
|
||||
'value': None
|
||||
},
|
||||
# 'allowed_methods': {
|
||||
# 'type': list,
|
||||
# 'value': [
|
||||
# 'GET',
|
||||
# 'HEAD',
|
||||
# 'OPTIONS',
|
||||
# ]
|
||||
# },
|
||||
'back_url': {
|
||||
'type': type(None),
|
||||
'value': None
|
||||
},
|
||||
'base_model': {
|
||||
'value': Entity
|
||||
},
|
||||
'documentation': {
|
||||
'type': type(None),
|
||||
'value': None
|
||||
@ -61,6 +56,12 @@ class ViewsetTestCases(
|
||||
'type': type(None),
|
||||
'value': None
|
||||
},
|
||||
'model_kwarg': {
|
||||
'value': 'model_name'
|
||||
},
|
||||
'model_suffix': {
|
||||
'type': type(None)
|
||||
},
|
||||
'queryset': {
|
||||
'type': type(None),
|
||||
'value': None
|
||||
@ -89,7 +90,6 @@ class ViewsetTestCases(
|
||||
|
||||
|
||||
|
||||
@pytest.mark.skip(reason = 'see #895, tests being refactored')
|
||||
class EntityViewsetInheritedCases(
|
||||
ViewsetTestCases,
|
||||
):
|
||||
|
@ -1,7 +1,5 @@
|
||||
import pytest
|
||||
|
||||
from django.test import TestCase
|
||||
|
||||
from access.models.person import Person
|
||||
from access.tests.unit.entity.test_unit_entity_viewset import (
|
||||
EntityViewsetInheritedCases
|
||||
@ -14,7 +12,15 @@ class ViewsetTestCases(
|
||||
EntityViewsetInheritedCases,
|
||||
):
|
||||
|
||||
model: str = Person
|
||||
|
||||
@property
|
||||
def parameterized_class_attributes(self):
|
||||
return {
|
||||
'model': {
|
||||
'value': Person
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -26,15 +32,13 @@ class PersonViewsetInheritedCases(
|
||||
Test Cases for Entity models that inherit from model Person
|
||||
"""
|
||||
|
||||
model: str = None
|
||||
"""name of the model to test"""
|
||||
pass
|
||||
|
||||
|
||||
|
||||
@pytest.mark.module_access
|
||||
class PersonViewsetTest(
|
||||
class PersonViewsetPyTest(
|
||||
ViewsetTestCases,
|
||||
TestCase,
|
||||
):
|
||||
|
||||
pass
|
||||
|
@ -1,43 +0,0 @@
|
||||
import pytest
|
||||
|
||||
from django.test import Client, TestCase
|
||||
|
||||
from rest_framework.reverse import reverse
|
||||
|
||||
from access.viewsets.organization import ViewSet
|
||||
|
||||
from api.tests.unit.test_unit_common_viewset import ModelViewSetInheritedCases
|
||||
|
||||
|
||||
|
||||
@pytest.mark.skip(reason = 'see #895, tests being refactored')
|
||||
class OrganizationViewsetList(
|
||||
ModelViewSetInheritedCases,
|
||||
TestCase,
|
||||
):
|
||||
|
||||
viewset = ViewSet
|
||||
|
||||
route_name = 'API:_api_tenant'
|
||||
|
||||
|
||||
@classmethod
|
||||
def setUpTestData(self):
|
||||
"""Setup Test
|
||||
|
||||
1. make list request
|
||||
"""
|
||||
|
||||
|
||||
super().setUpTestData()
|
||||
|
||||
|
||||
client = Client()
|
||||
|
||||
url = reverse(
|
||||
self.route_name + '-list'
|
||||
)
|
||||
|
||||
client.force_login(self.view_user)
|
||||
|
||||
self.http_options_response_list = client.options(url)
|
85
app/access/tests/unit/tenant/test_unit_tenant_viewset.py
Normal file
85
app/access/tests/unit/tenant/test_unit_tenant_viewset.py
Normal file
@ -0,0 +1,85 @@
|
||||
import pytest
|
||||
|
||||
from access.viewsets.organization import (
|
||||
Tenant,
|
||||
ViewSet,
|
||||
)
|
||||
|
||||
from api.tests.unit.test_unit_common_viewset import (
|
||||
ModelViewSetInheritedCases
|
||||
)
|
||||
|
||||
|
||||
|
||||
@pytest.mark.model_tenant
|
||||
class ViewsetTestCases(
|
||||
ModelViewSetInheritedCases,
|
||||
):
|
||||
|
||||
|
||||
@pytest.fixture( scope = 'function' )
|
||||
def viewset(self):
|
||||
return ViewSet
|
||||
|
||||
|
||||
@property
|
||||
def parameterized_class_attributes(self):
|
||||
return {
|
||||
'_model_documentation': {
|
||||
'type': type(None),
|
||||
'value': None
|
||||
},
|
||||
'back_url': {
|
||||
'type': type(None),
|
||||
},
|
||||
'documentation': {
|
||||
'type': type(None),
|
||||
},
|
||||
'filterset_fields': {
|
||||
'value': [
|
||||
'name',
|
||||
'manager',
|
||||
]
|
||||
},
|
||||
'model': {
|
||||
'value': Tenant
|
||||
},
|
||||
'model_documentation': {
|
||||
'type': type(None),
|
||||
},
|
||||
'queryset': {
|
||||
'type': type(None),
|
||||
},
|
||||
'serializer_class': {
|
||||
'type': type(None),
|
||||
},
|
||||
'search_fields': {
|
||||
'value': [
|
||||
'name'
|
||||
]
|
||||
},
|
||||
'view_description': {
|
||||
'value': 'Centurion Tenants'
|
||||
},
|
||||
'view_name': {
|
||||
'type': type(None),
|
||||
},
|
||||
'view_serializer_name': {
|
||||
'type': type(None),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
class TenantViewsetInheritedCases(
|
||||
ViewsetTestCases,
|
||||
):
|
||||
pass
|
||||
|
||||
|
||||
|
||||
@pytest.mark.module_access
|
||||
class TenantViewsetPyTest(
|
||||
ViewsetTestCases,
|
||||
):
|
||||
pass
|
@ -32,6 +32,7 @@ from api.viewsets.common import (
|
||||
CommonViewSet,
|
||||
ModelViewSet,
|
||||
SubModelViewSet,
|
||||
SubModelViewSet_ReWrite,
|
||||
|
||||
ModelCreateViewSet,
|
||||
ModelListRetrieveDeleteViewSet,
|
||||
@ -404,12 +405,6 @@ class CommonViewSetTestCases(
|
||||
'type': str,
|
||||
'value': None
|
||||
},
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'OPTIONS',
|
||||
]
|
||||
},
|
||||
'back_url': {
|
||||
'type': str,
|
||||
'value': None
|
||||
@ -907,23 +902,6 @@ class ModelViewSetTestCases(
|
||||
Dont use inherit from this class use `ModelViewSetInheritedTest`
|
||||
"""
|
||||
|
||||
@property
|
||||
def parameterized_class_attributes(self):
|
||||
return {
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'DELETE',
|
||||
'GET',
|
||||
'HEAD',
|
||||
'OPTIONS',
|
||||
'PATCH',
|
||||
'POST',
|
||||
'PUT',
|
||||
]
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
def test_class_inherits_modelviewsetbase(self, viewset):
|
||||
"""Class Inheritence check
|
||||
@ -1011,12 +989,6 @@ class ModelViewSetPyTest(
|
||||
'type': type(None),
|
||||
'value': None
|
||||
},
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'OPTIONS',
|
||||
]
|
||||
},
|
||||
'back_url': {
|
||||
'type': type(None),
|
||||
'value': None
|
||||
@ -1091,18 +1063,6 @@ class SubModelViewSetTestCases(
|
||||
@property
|
||||
def parameterized_class_attributes(self):
|
||||
return {
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'DELETE',
|
||||
'GET',
|
||||
'HEAD',
|
||||
'OPTIONS',
|
||||
'PATCH',
|
||||
'POST',
|
||||
'PUT',
|
||||
]
|
||||
},
|
||||
'base_model': {
|
||||
'type': type,
|
||||
'value': None
|
||||
@ -1110,6 +1070,10 @@ class SubModelViewSetTestCases(
|
||||
'model_kwarg': {
|
||||
'type': str,
|
||||
'value': None
|
||||
},
|
||||
'model_suffix': {
|
||||
'type': str,
|
||||
'value': None
|
||||
}
|
||||
}
|
||||
|
||||
@ -1167,6 +1131,9 @@ class SubModelViewSetTestCases(
|
||||
pass
|
||||
|
||||
|
||||
# ToDo: Test returned serializer for all CRUD. Add, Change, Delete, Replace and View
|
||||
|
||||
|
||||
|
||||
@pytest.mark.api
|
||||
@pytest.mark.viewset
|
||||
@ -1177,7 +1144,7 @@ class SubModelViewSetPyTest(
|
||||
|
||||
@pytest.fixture( scope = 'function' )
|
||||
def viewset(self):
|
||||
return SubModelViewSet
|
||||
return SubModelViewSet_ReWrite
|
||||
|
||||
|
||||
@property
|
||||
@ -1191,12 +1158,6 @@ class SubModelViewSetPyTest(
|
||||
'type': type(None),
|
||||
'value': None
|
||||
},
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'OPTIONS',
|
||||
]
|
||||
},
|
||||
'back_url': {
|
||||
'type': type(None),
|
||||
'value': None
|
||||
@ -1210,8 +1171,11 @@ class SubModelViewSetPyTest(
|
||||
'value': None
|
||||
},
|
||||
'model': {
|
||||
'type': django.db.models.NOT_PROVIDED,
|
||||
'value': django.db.models.NOT_PROVIDED
|
||||
},
|
||||
'model_suffix': {
|
||||
'type': type(None),
|
||||
'value': None
|
||||
},
|
||||
'model_documentation': {
|
||||
'type': type(None),
|
||||
@ -1244,20 +1208,6 @@ class SubModelViewSetPyTest(
|
||||
}
|
||||
|
||||
|
||||
def test_view_attr_model_not_empty(self, viewset):
|
||||
"""Attribute Test
|
||||
|
||||
This test case overrides a test case of the same name. As this test is
|
||||
checking the base classes, it's return is different to a class that
|
||||
has inherited from this or parent classes.
|
||||
|
||||
Attribute `model` must return a value that is not None
|
||||
"""
|
||||
|
||||
assert viewset().model is None
|
||||
|
||||
|
||||
|
||||
def test_view_attr_type_base_model(self):
|
||||
"""Attribute Test
|
||||
|
||||
@ -1331,20 +1281,6 @@ class ModelCreateViewSetTestCases(
|
||||
):
|
||||
"""Test Suite for class ModelCreateViewSet"""
|
||||
|
||||
@property
|
||||
def parameterized_class_attributes(self):
|
||||
return {
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'GET',
|
||||
'HEAD',
|
||||
'OPTIONS',
|
||||
'POST',
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
def test_class_inherits_viewsets_genericviewset(self, viewset):
|
||||
"""Class Inheritence check
|
||||
|
||||
@ -1378,12 +1314,6 @@ class ModelCreateViewSetPyTest(
|
||||
'type': type(None),
|
||||
'value': None
|
||||
},
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'OPTIONS',
|
||||
]
|
||||
},
|
||||
'back_url': {
|
||||
'type': type(None),
|
||||
'value': None
|
||||
@ -1459,21 +1389,6 @@ class ModelListRetrieveDeleteViewSetTestCases(
|
||||
"""Test Suite for class ModelListRetrieveDeleteViewSet"""
|
||||
|
||||
|
||||
@property
|
||||
def parameterized_class_attributes(self):
|
||||
return {
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'DELETE',
|
||||
'GET',
|
||||
'HEAD',
|
||||
'OPTIONS',
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
def test_class_inherits_viewsets_genericviewset(self, viewset):
|
||||
"""Class Inheritence check
|
||||
|
||||
@ -1507,12 +1422,6 @@ class ModelListRetrieveDeleteViewSetPyTest(
|
||||
'type': type(None),
|
||||
'value': None
|
||||
},
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'OPTIONS',
|
||||
]
|
||||
},
|
||||
'back_url': {
|
||||
'type': type(None),
|
||||
'value': None
|
||||
@ -1586,21 +1495,6 @@ class ModelRetrieveUpdateViewSetTestCases(
|
||||
):
|
||||
"""Test Suite for class ModelRetrieveUpdateViewSet"""
|
||||
|
||||
@property
|
||||
def parameterized_class_attributes(self):
|
||||
return {
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'GET',
|
||||
'HEAD',
|
||||
'OPTIONS',
|
||||
'PATCH',
|
||||
'PUT'
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
def test_class_inherits_viewsets_genericviewset(self, viewset):
|
||||
"""Class Inheritence check
|
||||
|
||||
@ -1634,12 +1528,6 @@ class ModelRetrieveUpdateViewSetPyTest(
|
||||
'type': type(None),
|
||||
'value': None
|
||||
},
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'OPTIONS',
|
||||
]
|
||||
},
|
||||
'back_url': {
|
||||
'type': type(None),
|
||||
'value': None
|
||||
@ -1713,19 +1601,6 @@ class ReadOnlyModelViewSetTestCases(
|
||||
):
|
||||
"""Test Suite for class ReadOnlyModelViewSet"""
|
||||
|
||||
@property
|
||||
def parameterized_class_attributes(self):
|
||||
return {
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'GET',
|
||||
'HEAD',
|
||||
'OPTIONS',
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
def test_class_inherits_viewsets_genericviewset(self, viewset):
|
||||
"""Class Inheritence check
|
||||
@ -1760,12 +1635,6 @@ class ReadOnlyModelViewSetPyTest(
|
||||
'type': type(None),
|
||||
'value': None
|
||||
},
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'OPTIONS',
|
||||
]
|
||||
},
|
||||
'back_url': {
|
||||
'type': type(None),
|
||||
'value': None
|
||||
@ -1838,19 +1707,6 @@ class ReadOnlyListModelViewSetTestCases(
|
||||
):
|
||||
"""Test Suite for class ReadOnlyListModelViewSet"""
|
||||
|
||||
@property
|
||||
def parameterized_class_attributes(self):
|
||||
return {
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'GET',
|
||||
'HEAD',
|
||||
'OPTIONS',
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
def test_class_inherits_viewsets_genericviewset(self, viewset):
|
||||
"""Class Inheritence check
|
||||
@ -1885,12 +1741,6 @@ class ReadOnlyListModelViewSetPyTest(
|
||||
'type': type(None),
|
||||
'value': None
|
||||
},
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'OPTIONS',
|
||||
]
|
||||
},
|
||||
'back_url': {
|
||||
'type': type(None),
|
||||
'value': None
|
||||
@ -1967,14 +1817,6 @@ class AuthUserReadOnlyModelViewSetTestCases(
|
||||
@property
|
||||
def parameterized_class_attributes(self):
|
||||
return {
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'GET',
|
||||
'HEAD',
|
||||
'OPTIONS',
|
||||
]
|
||||
},
|
||||
'permission_classes': {
|
||||
'type': list,
|
||||
'value': [
|
||||
@ -2008,12 +1850,6 @@ class AuthUserReadOnlyModelViewSetPyTest(
|
||||
'type': type(None),
|
||||
'value': None
|
||||
},
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'OPTIONS',
|
||||
]
|
||||
},
|
||||
'back_url': {
|
||||
'type': type(None),
|
||||
'value': None
|
||||
@ -2089,14 +1925,6 @@ class IndexViewsetCases(
|
||||
@property
|
||||
def parameterized_class_attributes(self):
|
||||
return {
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'GET',
|
||||
'HEAD',
|
||||
'OPTIONS',
|
||||
]
|
||||
},
|
||||
'permission_classes': {
|
||||
'type': list,
|
||||
'value': [
|
||||
@ -2130,12 +1958,6 @@ class IndexViewsetPyTest(
|
||||
'type': type(None),
|
||||
'value': None
|
||||
},
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'OPTIONS',
|
||||
]
|
||||
},
|
||||
'back_url': {
|
||||
'type': type(None),
|
||||
'value': None
|
||||
@ -2211,14 +2033,6 @@ class PublicReadOnlyViewSetTestCases(
|
||||
@property
|
||||
def parameterized_class_attributes(self):
|
||||
return {
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'GET',
|
||||
'HEAD',
|
||||
'OPTIONS',
|
||||
]
|
||||
},
|
||||
'pagination_class': {
|
||||
'type': type,
|
||||
'value': StaticPageNumbering
|
||||
@ -2260,12 +2074,6 @@ class PublicReadOnlyViewSetPyTest(
|
||||
'type': type(None),
|
||||
'value': None
|
||||
},
|
||||
'allowed_methods': {
|
||||
'type': list,
|
||||
'value': [
|
||||
'OPTIONS',
|
||||
]
|
||||
},
|
||||
'back_url': {
|
||||
'type': type(None),
|
||||
'value': None
|
||||
@ -2411,7 +2219,19 @@ class ModelViewSetInheritedCases(
|
||||
Use this Test Suite for ViewSet classes that inherit from ModelViewSet
|
||||
"""
|
||||
|
||||
pass
|
||||
|
||||
@property
|
||||
def parameterized_class_attributes(self):
|
||||
return {
|
||||
# '_log': {
|
||||
# 'type': logging.Logger,
|
||||
# 'value': None
|
||||
# },
|
||||
'_log': {
|
||||
'type': type(None),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -2424,18 +2244,6 @@ class SubModelViewSetInheritedCases(
|
||||
Use this Test Suite for ViewSet classes that inherit from SubModelViewSet
|
||||
"""
|
||||
|
||||
http_options_response_list = None
|
||||
"""Inherited class must make and store here a HTTP/Options request"""
|
||||
|
||||
route_name = None
|
||||
"""Inherited class must define the url rout name with namespace"""
|
||||
|
||||
base_model = None
|
||||
"""The Sub Model that is returned from the model property"""
|
||||
|
||||
# viewset = None
|
||||
|
||||
|
||||
# @classmethod
|
||||
# def setUpTestData(self):
|
||||
# """Setup Test
|
||||
@ -2450,13 +2258,70 @@ class SubModelViewSetInheritedCases(
|
||||
# super().setUpTestData()
|
||||
|
||||
|
||||
def test_view_attr_model_value(self, viewset):
|
||||
"""Attribute Test
|
||||
@pytest.fixture( scope = 'function' )
|
||||
def viewset_mock_request(self, django_db_blocker, viewset,
|
||||
model_user, kwargs_user, organization_one, model
|
||||
):
|
||||
|
||||
Attribute `model` must return the correct sub-model
|
||||
"""
|
||||
with django_db_blocker.unblock():
|
||||
|
||||
assert viewset().model == self.model
|
||||
user = model_user.objects.create( **kwargs_user )
|
||||
|
||||
view_set = viewset()
|
||||
|
||||
request = MockRequest(
|
||||
user = user,
|
||||
model = model,
|
||||
viewset = viewset,
|
||||
organization = organization_one,
|
||||
)
|
||||
|
||||
view_set.request = request
|
||||
view_set.kwargs = {
|
||||
'model_name': model._meta.model_name
|
||||
}
|
||||
|
||||
yield view_set
|
||||
|
||||
del view_set.request
|
||||
|
||||
with django_db_blocker.unblock():
|
||||
|
||||
user.delete()
|
||||
|
||||
|
||||
@property
|
||||
def parameterized_class_attributes(self):
|
||||
return {
|
||||
# '_log': {
|
||||
# 'type': logging.Logger,
|
||||
# 'value': None
|
||||
# },
|
||||
'_log': {
|
||||
'type': type(None),
|
||||
},
|
||||
'model_suffix': {
|
||||
'type': str,
|
||||
'value': None
|
||||
},
|
||||
'base_model': {
|
||||
'type': django.db.models.base.ModelBase,
|
||||
'value': None
|
||||
},
|
||||
'model_kwarg': {
|
||||
'type': str,
|
||||
'value': None
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# ToDo: model
|
||||
|
||||
# ToDo: related_objects
|
||||
|
||||
# ToDo: get_serializer_class
|
||||
|
||||
# ToDo: related_objects
|
||||
|
||||
|
||||
|
||||
|
@ -1,40 +0,0 @@
|
||||
from access.tests.functional.contact.test_functional_contact_permission import (
|
||||
ContactPermissionsAPIInheritedCases
|
||||
)
|
||||
|
||||
|
||||
|
||||
class EmployeePermissionsAPITestCases(
|
||||
ContactPermissionsAPIInheritedCases,
|
||||
):
|
||||
|
||||
add_data: dict = {
|
||||
'employee_number': 123456,
|
||||
}
|
||||
|
||||
kwargs_create_item: dict = {
|
||||
'employee_number': 1234568,
|
||||
}
|
||||
|
||||
kwargs_create_item_diff_org: dict = {
|
||||
'employee_number': 1234567,
|
||||
}
|
||||
|
||||
|
||||
|
||||
class EmployeePermissionsAPIInheritedCases(
|
||||
EmployeePermissionsAPITestCases,
|
||||
):
|
||||
|
||||
add_data: dict = None
|
||||
|
||||
kwargs_create_item: dict = None
|
||||
|
||||
kwargs_create_item_diff_org: dict = None
|
||||
|
||||
|
||||
class EmployeePermissionsAPIPyTest(
|
||||
EmployeePermissionsAPITestCases,
|
||||
):
|
||||
|
||||
pass
|
@ -1,45 +0,0 @@
|
||||
import pytest
|
||||
|
||||
from rest_framework.exceptions import ValidationError
|
||||
|
||||
from access.tests.functional.contact.test_functional_contact_serializer import (
|
||||
ContactSerializerInheritedCases
|
||||
)
|
||||
|
||||
|
||||
|
||||
class EmployeeSerializerTestCases(
|
||||
ContactSerializerInheritedCases
|
||||
):
|
||||
|
||||
|
||||
parameterized_test_data: dict = {
|
||||
"employee_number": {
|
||||
'will_create': False,
|
||||
'exception_key': 'required'
|
||||
}
|
||||
}
|
||||
|
||||
valid_data: dict = {
|
||||
'employee_number': 123456,
|
||||
}
|
||||
"""Valid data used by serializer to create object"""
|
||||
|
||||
|
||||
|
||||
class EmployeeSerializerInheritedCases(
|
||||
EmployeeSerializerTestCases,
|
||||
):
|
||||
|
||||
parameterized_test_data: dict = None
|
||||
|
||||
valid_data: dict = None
|
||||
"""Valid data used by serializer to create object"""
|
||||
|
||||
|
||||
|
||||
class EmployeeSerializerPyTest(
|
||||
EmployeeSerializerTestCases,
|
||||
):
|
||||
|
||||
parameterized_test_data: dict = None
|
@ -1,60 +0,0 @@
|
||||
from django.test import TestCase
|
||||
|
||||
|
||||
from access.tests.functional.contact.test_functional_contact_viewset import (
|
||||
ContactViewSetInheritedCases
|
||||
)
|
||||
|
||||
from human_resources.models.employee import Employee
|
||||
|
||||
|
||||
|
||||
class ViewSetTestCases(
|
||||
ContactViewSetInheritedCases,
|
||||
):
|
||||
|
||||
add_data: dict = {
|
||||
'employee_number': 123,
|
||||
}
|
||||
|
||||
kwargs_create_item: dict = {
|
||||
'employee_number': 456,
|
||||
}
|
||||
|
||||
kwargs_create_item_diff_org: dict = {
|
||||
'employee_number': 789,
|
||||
}
|
||||
|
||||
model = Employee
|
||||
|
||||
|
||||
|
||||
class EmployeeViewSetInheritedCases(
|
||||
ViewSetTestCases,
|
||||
):
|
||||
|
||||
model = None
|
||||
|
||||
|
||||
@classmethod
|
||||
def setUpTestData(self):
|
||||
|
||||
self.kwargs_create_item = {
|
||||
**super().kwargs_create_item,
|
||||
**self.kwargs_create_item
|
||||
}
|
||||
|
||||
self.kwargs_create_item_diff_org = {
|
||||
**super().kwargs_create_item_diff_org,
|
||||
**self.kwargs_create_item_diff_org
|
||||
}
|
||||
|
||||
super().setUpTestData()
|
||||
|
||||
|
||||
|
||||
class EmployeeViewSetTest(
|
||||
ViewSetTestCases,
|
||||
TestCase,
|
||||
):
|
||||
pass
|
@ -9,7 +9,7 @@ from access.tests.unit.contact.test_unit_contact_viewset import (
|
||||
from human_resources.models.employee import Employee
|
||||
|
||||
|
||||
|
||||
@pytest.mark.skip(reason = 'see #895, tests being refactored')
|
||||
@pytest.mark.model_employee
|
||||
class ViewsetTestCases(
|
||||
ContactViewsetInheritedCases,
|
||||
|
@ -1146,6 +1146,7 @@ markers = [
|
||||
"model_softwarecategory: Selects tests for model Software Category.",
|
||||
"model_softwareenablefeatureflag: Selects tests for model Software Enabled Feature Flag.",
|
||||
"model_softwareversion: Selects tests for model Software Version.",
|
||||
"model_tenant: Selects tests for model Tenant.",
|
||||
"model_ticketbase: Selects tests for model Ticket Base.",
|
||||
"model_ticketcategory: Select all ticket category tests.",
|
||||
"model_ticketcommentaction: Select test for model ticket Action Comment.",
|
||||
|
Reference in New Issue
Block a user