From a8e2536bd2add21abcd5f24169c87af31ede6a72 Mon Sep 17 00:00:00 2001 From: Jon Date: Thu, 5 Jun 2025 17:00:31 +0930 Subject: [PATCH] chore(base): remove tests no longer used ref: #788 #757 --- app/access/tests/abstract/tenancy_object.py | 32 - .../tests/abstract/model_permissions.py | 487 -------------- app/centurion/tests/abstract/models.py | 62 -- app/centurion/tests/abstract/views.py | 626 ------------------ 4 files changed, 1207 deletions(-) delete mode 100644 app/access/tests/abstract/tenancy_object.py delete mode 100644 app/centurion/tests/abstract/model_permissions.py delete mode 100644 app/centurion/tests/abstract/models.py delete mode 100644 app/centurion/tests/abstract/views.py diff --git a/app/access/tests/abstract/tenancy_object.py b/app/access/tests/abstract/tenancy_object.py deleted file mode 100644 index 82c47b9c..00000000 --- a/app/access/tests/abstract/tenancy_object.py +++ /dev/null @@ -1,32 +0,0 @@ - - - -class TenancyObject: - """ Tests for checking TenancyObject """ - - model = None - """ Model to be tested """ - - should_model_history_be_saved: bool = True - """ Should model history be saved. - - By default this should always be 'True', however in special - circumstances, this may not be desired. - """ - - - # def test_history_save(self): - # """Confirm the desired intent for saving model history.""" - - # assert self.model.save_model_history == self.should_model_history_be_saved - - - - # @pytest.mark.skip(reason="to be written") - # def test_edit_no_organization_fails(self): - # """ Devices must be assigned an organization - - # Must not be able to edit an item without an organization - # """ - # pass - diff --git a/app/centurion/tests/abstract/model_permissions.py b/app/centurion/tests/abstract/model_permissions.py deleted file mode 100644 index 3a98176b..00000000 --- a/app/centurion/tests/abstract/model_permissions.py +++ /dev/null @@ -1,487 +0,0 @@ -import pytest -import unittest - -from django.test import Client -from django.shortcuts import reverse - - - -class ModelPermissionsView: - """ Tests for checking model view permissions """ - - - app_namespace: str = None - - url_name_view: str - - url_view_kwargs: dict = None - - - - def test_model_view_user_anon_denied(self): - """ Check correct permission for view - - Attempt to view as anon user - """ - - client = Client() - - if self.app_namespace: - - url = reverse(self.app_namespace + ':' + self.url_name_view, kwargs=self.url_view_kwargs) - - else: - - url = reverse(self.url_name_view, kwargs=self.url_view_kwargs) - - response = client.get(url) - - assert response.status_code == 302 and response.url.startswith('/account/login') - - - def test_model_view_no_permission_denied(self): - """ Check correct permission for view - - Attempt to view with user missing permission - """ - - client = Client() - if self.app_namespace: - - url = reverse(self.app_namespace + ':' + self.url_name_view, kwargs=self.url_view_kwargs) - - else: - - url = reverse(self.url_name_view, kwargs=self.url_view_kwargs) - - - client.force_login(self.no_permissions_user) - response = client.get(url) - - assert response.status_code == 403 - - - def test_model_view_different_organizaiton_denied(self): - """ Check correct permission for view - - Attempt to view with user from different organization - """ - - client = Client() - if self.app_namespace: - - url = reverse(self.app_namespace + ':' + self.url_name_view, kwargs=self.url_view_kwargs) - - else: - - url = reverse(self.url_name_view, kwargs=self.url_view_kwargs) - - - client.force_login(self.different_organization_user) - response = client.get(url) - - assert response.status_code == 403 - - - def test_model_view_has_permission(self): - """ Check correct permission for view - - Attempt to view as user with view permission - """ - - client = Client() - if self.app_namespace: - - url = reverse(self.app_namespace + ':' + self.url_name_view, kwargs=self.url_view_kwargs) - - else: - - url = reverse(self.url_name_view, kwargs=self.url_view_kwargs) - - - client.force_login(self.view_user) - response = client.get(url) - - assert response.status_code == 200 - - - -class ModelPermissionsAdd: - """ Tests for checking model Add permissions """ - - app_namespace: str = None - - url_name_add: str - - url_add_kwargs: dict = None - - add_data: dict = None - - - @pytest.mark.skip(reason="ToDO: write test") - def test_model_requires_attribute_parent_model(self): - """ Child model requires 'django view' attribute 'parent_model' - - When a child-model is added the parent model is required so that the organization can be detrmined. - """ - - pass - - - def test_model_add_user_anon_denied(self): - """ Check correct permission for add - - Attempt to add as anon user - """ - - client = Client() - - if self.app_namespace: - - url = reverse(self.app_namespace + ':' + self.url_name_add, kwargs=self.url_add_kwargs) - - else: - - url = reverse(self.url_name_add, kwargs=self.url_add_kwargs) - - - response = client.put(url, data=self.add_data) - - assert response.status_code == 302 and response.url.startswith('/account/login') - - # @pytest.mark.skip(reason="ToDO: figure out why fails") - def test_model_add_no_permission_denied(self): - """ Check correct permission for add - - Attempt to add as user with no permissions - """ - - client = Client() - - if self.app_namespace: - - url = reverse(self.app_namespace + ':' + self.url_name_add, kwargs=self.url_add_kwargs) - - else: - - url = reverse(self.url_name_add, kwargs=self.url_add_kwargs) - - - client.force_login(self.no_permissions_user) - response = client.post(url, data=self.add_data) - - assert response.status_code == 403 - - - # @pytest.mark.skip(reason="ToDO: figure out why fails") - def test_model_add_different_organization_denied(self): - """ Check correct permission for add - - attempt to add as user from different organization - """ - - client = Client() - - if self.app_namespace: - - url = reverse(self.app_namespace + ':' + self.url_name_add, kwargs=self.url_add_kwargs) - - else: - - url = reverse(self.url_name_add, kwargs=self.url_add_kwargs) - - - client.force_login(self.different_organization_user) - response = client.post(url, data=self.add_data) - - assert response.status_code == 403 - - - def test_model_add_permission_view_denied(self): - """ Check correct permission for add - - Attempt to add a user with view permission - """ - - client = Client() - - if self.app_namespace: - - url = reverse(self.app_namespace + ':' + self.url_name_add, kwargs=self.url_add_kwargs) - - else: - - url = reverse(self.url_name_add, kwargs=self.url_add_kwargs) - - - client.force_login(self.view_user) - response = client.post(url, data=self.add_data) - - assert response.status_code == 403 - - - def test_model_add_has_permission(self): - """ Check correct permission for add - - Attempt to add as user with permission - """ - - client = Client() - - if self.app_namespace: - - url = reverse(self.app_namespace + ':' + self.url_name_add, kwargs=self.url_add_kwargs) - - else: - - url = reverse(self.url_name_add, kwargs=self.url_add_kwargs) - - - client.force_login(self.add_user) - response = client.post(url, data=self.add_data) - - assert response.status_code == 200 - - - -class ModelPermissionsChange: - """ Tests for checking model change permissions """ - - app_namespace: str = None - - url_name_change: str - - url_change_kwargs: dict = None - - change_data: dict = None - - - def test_model_change_user_anon_denied(self): - """ Check correct permission for change - - Attempt to change as anon - """ - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_name_change, kwargs=self.url_change_kwargs) - - - response = client.patch(url, data=self.change_data) - - assert response.status_code == 302 and response.url.startswith('/account/login') - - - def test_model_change_no_permission_denied(self): - """ Ensure permission view cant make change - - Attempt to make change as user without permissions - """ - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_name_change, kwargs=self.url_change_kwargs) - - - client.force_login(self.no_permissions_user) - response = client.post(url, data=self.change_data) - - assert response.status_code == 403 - - - def test_model_change_different_organization_denied(self): - """ Ensure permission view cant make change - - Attempt to make change as user from different organization - """ - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_name_change, kwargs=self.url_change_kwargs) - - - client.force_login(self.different_organization_user) - response = client.post(url, data=self.change_data) - - assert response.status_code == 403 - - - def test_model_change_permission_view_denied(self): - """ Ensure permission view cant make change - - Attempt to make change as user with view permission - """ - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_name_change, kwargs=self.url_change_kwargs) - - - client.force_login(self.view_user) - response = client.post(url, data=self.change_data) - - assert response.status_code == 403 - - - def test_model_change_permission_add_denied(self): - """ Ensure permission view cant make change - - Attempt to make change as user with add permission - """ - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_name_change, kwargs=self.url_change_kwargs) - - - client.force_login(self.add_user) - response = client.post(url, data=self.change_data) - - assert response.status_code == 403 - - - def test_model_change_has_permission(self): - """ Check correct permission for change - - Make change with user who has change permission - """ - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_name_change, kwargs=self.url_change_kwargs) - - - client.force_login(self.change_user) - response = client.post(url, data=self.change_data) - - assert response.status_code == 200 - - - -class ModelPermissionsDelete: - """ Tests for checking model delete permissions """ - - app_namespace: str = None - - url_name_delete: str - - url_delete_kwargs: dict = None - - url_delete_response: str - - delete_data: dict = None - - def test_model_delete_user_anon_denied(self): - """ Check correct permission for delete - - Attempt to delete item as anon user - """ - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_name_delete, kwargs=self.url_delete_kwargs) - - - response = client.delete(url, data=self.delete_data) - - assert response.status_code == 302 and response.url.startswith('/account/login') - - - def test_model_delete_no_permission_denied(self): - """ Check correct permission for delete - - Attempt to delete as user with no permissons - """ - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_name_delete, kwargs=self.url_delete_kwargs) - - - client.force_login(self.no_permissions_user) - response = client.delete(url, data=self.delete_data) - - assert response.status_code == 403 - - - def test_model_delete_different_organization_denied(self): - """ Check correct permission for delete - - Attempt to delete as user from different organization - """ - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_name_delete, kwargs=self.url_delete_kwargs) - - - client.force_login(self.different_organization_user) - response = client.delete(url, data=self.delete_data) - - assert response.status_code == 403 - - - def test_model_delete_permission_view_denied(self): - """ Check correct permission for delete - - Attempt to delete as user with veiw permission only - """ - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_name_delete, kwargs=self.url_delete_kwargs) - - - client.force_login(self.view_user) - response = client.delete(url, data=self.delete_data) - - assert response.status_code == 403 - - - def test_model_delete_permission_add_denied(self): - """ Check correct permission for delete - - Attempt to delete as user with add permission only - """ - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_name_delete, kwargs=self.url_delete_kwargs) - - - client.force_login(self.add_user) - response = client.delete(url, data=self.delete_data) - - assert response.status_code == 403 - - - def test_model_delete_permission_change_denied(self): - """ Check correct permission for delete - - Attempt to delete as user with change permission only - """ - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_name_delete, kwargs=self.url_delete_kwargs) - - - client.force_login(self.change_user) - response = client.delete(url, data=self.delete_data) - - assert response.status_code == 403 - - - def test_model_delete_has_permission(self): - """ Check correct permission for delete - - Delete item as user with delete permission - """ - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_name_delete, kwargs=self.url_delete_kwargs) - - - client.force_login(self.delete_user) - response = client.delete(url, data=self.delete_data) - - assert response.status_code == 302 and response.url == self.url_delete_response - - -class ModelPermissions( - ModelPermissionsView, - ModelPermissionsAdd, - ModelPermissionsChange, - ModelPermissionsDelete -): - """ Tests for checking model permissions """ - - app_namespace: str = None diff --git a/app/centurion/tests/abstract/models.py b/app/centurion/tests/abstract/models.py deleted file mode 100644 index bae0a835..00000000 --- a/app/centurion/tests/abstract/models.py +++ /dev/null @@ -1,62 +0,0 @@ -from centurion.tests.abstract.views import AddView, ChangeView, DeleteView, DisplayView, IndexView - - - -class ModelAdd( - AddView -): - """ Unit Tests for Model Add """ - - - -class ModelChange( - ChangeView -): - """ Unit Tests for Model Change """ - - - -class ModelDelete( - DeleteView -): - """ Unit Tests for Model delete """ - - - -class ModelDisplay( - DisplayView -): - """ Unit Tests for Model display """ - - - -class ModelIndex( - IndexView -): - """ Unit Tests for Model index """ - - - -class ModelCommon( - ModelAdd, - ModelChange, - ModelDelete, - ModelDisplay -): - """ Unit Tests for all models """ - - - -class PrimaryModel( - ModelCommon, - ModelIndex -): - """ Tests for Primary Models - - A Primary model is a model that is deemed a model that has the following views: - - Add - - Change - - Delete - - Display - - Index - """ diff --git a/app/centurion/tests/abstract/views.py b/app/centurion/tests/abstract/views.py deleted file mode 100644 index 88b2ef4c..00000000 --- a/app/centurion/tests/abstract/views.py +++ /dev/null @@ -1,626 +0,0 @@ -import inspect -import pytest -import unittest - - - -class AddView: - """ Testing of Display view """ - - add_module: str = None - """ Full module path to test """ - - add_view: str = None - """ View Class name to test """ - - - def test_view_add_attribute_not_exists_fields(self): - """ Attribute does not exists test - - Ensure that `fields` attribute is not defined as the expectation is that a form will be used. - """ - - module = __import__(self.add_module, fromlist=[self.add_view]) - - assert hasattr(module, self.add_view) - - viewclass = getattr(module, self.add_view) - - assert viewclass.fields is None - - - def test_view_add_attribute_exists_form_class(self): - """ Attribute exists test - - Ensure that `form_class` attribute is defined as it's required. - """ - - module = __import__(self.add_module, fromlist=[self.add_view]) - - assert hasattr(module, self.add_view) - - viewclass = getattr(module, self.add_view) - - assert hasattr(viewclass, 'form_class') - - - def test_view_add_attribute_type_form_class(self): - """ Attribute Type Test - - Ensure that `form_class` attribute is a class. - """ - - module = __import__(self.add_module, fromlist=[self.add_view]) - - assert hasattr(module, self.add_view) - - viewclass = getattr(module, self.add_view) - - assert inspect.isclass(viewclass.form_class) - - - def test_view_add_attribute_exists_model(self): - """ Attribute exists test - - Ensure that `model` attribute is defined as it's required . - """ - - module = __import__(self.add_module, fromlist=[self.add_view]) - - assert hasattr(module, self.add_view) - - viewclass = getattr(module, self.add_view) - - assert hasattr(viewclass, 'model') - - - def test_view_add_attribute_exists_permission_required(self): - """ Attribute exists test - - Ensure that `permission_required` attribute is defined as it's required. - """ - - module = __import__(self.add_module, fromlist=[self.add_view]) - - assert hasattr(module, self.add_view) - - viewclass = getattr(module, self.add_view) - - assert hasattr(viewclass, 'permission_required') - - - def test_view_add_attribute_type_permission_required(self): - """ Attribute Type Test - - Ensure that `permission_required` attribute is a list - """ - - module = __import__(self.add_module, fromlist=[self.add_view]) - - assert hasattr(module, self.add_view) - - viewclass = getattr(module, self.add_view) - - assert type(viewclass.permission_required) is list - - - def test_view_add_attribute_exists_template_name(self): - """ Attribute exists test - - Ensure that `template_name` attribute is defined as it's required. - """ - - module = __import__(self.add_module, fromlist=[self.add_view]) - - assert hasattr(module, self.add_view) - - viewclass = getattr(module, self.add_view) - - assert hasattr(viewclass, 'template_name') - - - def test_view_add_attribute_type_template_name(self): - """ Attribute Type Test - - Ensure that `template_name` attribute is a string. - """ - - module = __import__(self.add_module, fromlist=[self.add_view]) - - assert hasattr(module, self.add_view) - - viewclass = getattr(module, self.add_view) - - assert type(viewclass.template_name) is str - - - def test_view_add_function_get_initial_exists(self): - """Ensure that get_initial exists - - Field `get_initial` must be defined as the base class is used for setup. - """ - - module = __import__(self.add_module, fromlist=[self.add_view]) - - view_class = getattr(module, 'Add') - - assert hasattr(view_class, 'get_initial') - - - def test_view_add_function_get_initial_callable(self): - """Ensure that get_initial is a function - - Field `get_initial` must be callable as it's used for setup. - """ - - module = __import__(self.add_module, fromlist=[self.add_view]) - - view_class = getattr(module, 'Add') - - func = getattr(view_class, 'get_initial') - - assert callable(func) - - - -class ChangeView: - """ Testing of Display view """ - - change_module: str = None - """ Full module path to test """ - - change_view: str = None - """ Change Class name to test """ - - - def test_view_change_attribute_not_exists_fields(self): - """ Attribute does not exists test - - Ensure that `fields` attribute is not defined as the expectation is that a form will be used. - """ - - module = __import__(self.change_module, fromlist=[self.change_view]) - - assert hasattr(module, self.change_view) - - viewclass = getattr(module, self.change_view) - - assert viewclass.fields is None - - - def test_view_change_attribute_exists_form_class(self): - """ Attribute exists test - - Ensure that `form_class` attribute is defined as it's required. - """ - - module = __import__(self.change_module, fromlist=[self.change_view]) - - assert hasattr(module, self.change_view) - - viewclass = getattr(module, self.change_view) - - assert hasattr(viewclass, 'form_class') - - - def test_view_change_attribute_type_form_class(self): - """ Attribute Type Test - - Ensure that `form_class` attribute is a string. - """ - - module = __import__(self.change_module, fromlist=[self.change_view]) - - assert hasattr(module, self.change_view) - - viewclass = getattr(module, self.change_view) - - assert inspect.isclass(viewclass.form_class) - - - def test_view_change_attribute_exists_model(self): - """ Attribute exists test - - Ensure that `model` attribute is defined as it's required . - """ - - module = __import__(self.change_module, fromlist=[self.change_view]) - - assert hasattr(module, self.change_view) - - viewclass = getattr(module, self.change_view) - - assert hasattr(viewclass, 'model') - - - def test_view_change_attribute_exists_permission_required(self): - """ Attribute exists test - - Ensure that `permission_required` attribute is defined as it's required. - """ - - module = __import__(self.change_module, fromlist=[self.change_view]) - - assert hasattr(module, self.change_view) - - viewclass = getattr(module, self.change_view) - - assert hasattr(viewclass, 'permission_required') - - - def test_view_change_attribute_type_permission_required(self): - """ Attribute Type Test - - Ensure that `permission_required` attribute is a list - """ - - module = __import__(self.change_module, fromlist=[self.change_view]) - - assert hasattr(module, self.change_view) - - viewclass = getattr(module, self.change_view) - - assert type(viewclass.permission_required) is list - - - def test_view_change_attribute_exists_template_name(self): - """ Attribute exists test - - Ensure that `template_name` attribute is defined as it's required. - """ - - module = __import__(self.change_module, fromlist=[self.change_view]) - - assert hasattr(module, self.change_view) - - viewclass = getattr(module, self.change_view) - - assert hasattr(viewclass, 'template_name') - - - def test_view_change_attribute_type_template_name(self): - """ Attribute Type Test - - Ensure that `template_name` attribute is a string. - """ - - module = __import__(self.change_module, fromlist=[self.change_view]) - - assert hasattr(module, self.change_view) - - viewclass = getattr(module, self.change_view) - - assert type(viewclass.template_name) is str - - - -class DeleteView: - """ Testing of Display view """ - - delete_module: str = None - """ Full module path to test """ - - delete_view: str = None - """ Delete Class name to test """ - - - def test_view_delete_attribute_exists_model(self): - """ Attribute exists test - - Ensure that `model` attribute is defined as it's required . - """ - - module = __import__(self.delete_module, fromlist=[self.delete_view]) - - assert hasattr(module, self.delete_view) - - viewclass = getattr(module, self.delete_view) - - assert hasattr(viewclass, 'model') - - - def test_view_delete_attribute_exists_permission_required(self): - """ Attribute exists test - - Ensure that `model` attribute is defined as it's required . - """ - - module = __import__(self.delete_module, fromlist=[self.delete_view]) - - assert hasattr(module, self.delete_view) - - viewclass = getattr(module, self.delete_view) - - assert hasattr(viewclass, 'permission_required') - - - def test_view_delete_attribute_type_permission_required(self): - """ Attribute Type Test - - Ensure that `permission_required` attribute is a list - """ - - module = __import__(self.delete_module, fromlist=[self.delete_view]) - - assert hasattr(module, self.delete_view) - - viewclass = getattr(module, self.delete_view) - - assert type(viewclass.permission_required) is list - - - def test_view_delete_attribute_exists_template_name(self): - """ Attribute exists test - - Ensure that `template_name` attribute is defined as it's required. - """ - - module = __import__(self.delete_module, fromlist=[self.delete_view]) - - assert hasattr(module, self.delete_view) - - viewclass = getattr(module, self.delete_view) - - assert hasattr(viewclass, 'template_name') - - - def test_view_delete_attribute_type_template_name(self): - """ Attribute Type Test - - Ensure that `template_name` attribute is a string. - """ - - module = __import__(self.delete_module, fromlist=[self.delete_view]) - - assert hasattr(module, self.delete_view) - - viewclass = getattr(module, self.delete_view) - - assert type(viewclass.template_name) is str - - - -class DisplayView: - """ Testing of Display view """ - - display_module: str = None - """ Full module path to test """ - - display_view: str = None - """ Change Class name to test """ - - - def test_view_display_attribute_exists_model(self): - """ Attribute exists test - - Ensure that `model` attribute is defined as it's required . - """ - - module = __import__(self.display_module, fromlist=[self.display_view]) - - assert hasattr(module, self.display_view) - - viewclass = getattr(module, self.display_view) - - assert hasattr(viewclass, 'model') - - - def test_view_display_attribute_exists_permission_required(self): - """ Attribute exists test - - Ensure that `permission_required` attribute is defined as it's required. - """ - - module = __import__(self.display_module, fromlist=[self.display_view]) - - assert hasattr(module, self.display_view) - - viewclass = getattr(module, self.display_view) - - assert hasattr(viewclass, 'permission_required') - - - def test_view_display_attribute_type_permission_required(self): - """ Attribute Type Test - - Ensure that `permission_required` attribute is a list - """ - - module = __import__(self.display_module, fromlist=[self.display_view]) - - assert hasattr(module, self.display_view) - - viewclass = getattr(module, self.display_view) - - assert type(viewclass.permission_required) is list - - - def test_view_display_attribute_exists_template_name(self): - """ Attribute exists test - - Ensure that `template_name` attribute is defined as it's required. - """ - - module = __import__(self.display_module, fromlist=[self.display_view]) - - assert hasattr(module, self.display_view) - - viewclass = getattr(module, self.display_view) - - assert hasattr(viewclass, 'template_name') - - - def test_view_display_attribute_type_template_name(self): - """ Attribute Type Test - - Ensure that `template_name` attribute is a string. - """ - - module = __import__(self.display_module, fromlist=[self.display_view]) - - assert hasattr(module, self.display_view) - - viewclass = getattr(module, self.display_view) - - assert type(viewclass.template_name) is str - - - -class IndexView: - """ Testing of Display view """ - - index_module: str = None - """ Full module path to test """ - - index_view: str = None - """ Index Class name to test """ - - - def test_view_index_attribute_exists_model(self): - """ Attribute exists test - - Ensure that `model` attribute is defined as it's required . - """ - - module = __import__(self.index_module, fromlist=[self.index_view]) - - assert hasattr(module, self.index_view) - - viewclass = getattr(module, self.index_view) - - assert hasattr(viewclass, 'model') - - - def test_view_index_attribute_exists_permission_required(self): - """ Attribute exists test - - Ensure that `model` attribute is defined as it's required . - """ - - module = __import__(self.index_module, fromlist=[self.index_view]) - - assert hasattr(module, self.index_view) - - viewclass = getattr(module, self.index_view) - - assert hasattr(viewclass, 'permission_required') - - - def test_view_index_attribute_type_permission_required(self): - """ Attribute Type Test - - Ensure that `permission_required` attribute is a list - """ - - module = __import__(self.index_module, fromlist=[self.index_view]) - - assert hasattr(module, self.index_view) - - viewclass = getattr(module, self.index_view) - - assert type(viewclass.permission_required) is list - - - def test_view_index_attribute_exists_template_name(self): - """ Attribute exists test - - Ensure that `template_name` attribute is defined as it's required. - """ - - module = __import__(self.index_module, fromlist=[self.index_view]) - - assert hasattr(module, self.index_view) - - viewclass = getattr(module, self.index_view) - - assert hasattr(viewclass, 'template_name') - - - def test_view_index_attribute_type_template_name(self): - """ Attribute Type Test - - Ensure that `template_name` attribute is a string. - """ - - module = __import__(self.index_module, fromlist=[self.index_view]) - - assert hasattr(module, self.index_view) - - viewclass = getattr(module, self.index_view) - - assert type(viewclass.template_name) is str - - - - - - -class AllViews( - AddView, - ChangeView, - DeleteView, - DisplayView, - IndexView -): - """ Abstract test class containing ALL view tests """ - - add_module: str = None - """ Full module path to test """ - - add_view: str = None - """ View Class name to test """ - - change_module: str = None - """ Full module path to test """ - - change_view: str = None - """ Change Class name to test """ - - delete_module: str = None - """ Full module path to test """ - - delete_view: str = None - """ Delete Class name to test """ - - display_module: str = None - """ Full module path to test """ - - display_view: str = None - """ Change Class name to test """ - - index_module: str = None - """ Full module path to test """ - - index_view: str = None - """ Index Class name to test """ - - - @pytest.mark.skip(reason='write test') - def test_view_index_attribute_missing_permission_required(self): - """ Attribute missing Test - - Ensure that `permission_required` attribute is not defined within the view. - - this can be done by mocking the inherited class with the `permission_required` attribute - set to a value that if it changed would be considered defined in the created view. - - ## Why? - - This attribute can be dynamically added based of of the view name along with attributes - `model._meta.model_name` and `str(__class__.__name__).lower()`. - - Additional test: - - ensure that the attribute does get automagically created. - - ensure that the classes name is one of add, change, delete, display or index. - """ - - - @pytest.mark.skip(reason='write test') - def test_view_index_attribute_missing_template_name(self): - """ Attribute missing Test - - Ensure that `template_name` attribute is not defined within the view if the value - is `form.html.j2` - - this valuse is already defined in the base form - """