From 0d53e74238d5fa13e7fdbbf9ceff2d7e976d6174 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Sun, 12 May 2019 01:51:05 -0400 Subject: [PATCH] Improve smart settings tests Use a test namepsace instead of a real one. Signed-off-by: Roberto Rosario --- mayan/apps/smart_settings/tests/literals.py | 3 ++ mayan/apps/smart_settings/tests/mixins.py | 17 ++++++++ .../tests/test_view_permissions.py | 32 --------------- mayan/apps/smart_settings/tests/test_views.py | 41 +++++++++++++++++++ 4 files changed, 61 insertions(+), 32 deletions(-) create mode 100644 mayan/apps/smart_settings/tests/mixins.py delete mode 100644 mayan/apps/smart_settings/tests/test_view_permissions.py create mode 100644 mayan/apps/smart_settings/tests/test_views.py diff --git a/mayan/apps/smart_settings/tests/literals.py b/mayan/apps/smart_settings/tests/literals.py index 381ddaaef2..8db28403af 100644 --- a/mayan/apps/smart_settings/tests/literals.py +++ b/mayan/apps/smart_settings/tests/literals.py @@ -2,3 +2,6 @@ from __future__ import unicode_literals ENVIRONMENT_TEST_NAME = 'PAGINATE_BY' ENVIRONMENT_TEST_VALUE = '999999' + +TEST_NAMESPACE_LABEL = 'test namespace label' +TEST_NAMESPACE_NAME = 'test_namespace_name' diff --git a/mayan/apps/smart_settings/tests/mixins.py b/mayan/apps/smart_settings/tests/mixins.py new file mode 100644 index 0000000000..83cadcb4c3 --- /dev/null +++ b/mayan/apps/smart_settings/tests/mixins.py @@ -0,0 +1,17 @@ +from __future__ import absolute_import, unicode_literals + +from ..classes import Namespace + +from .literals import TEST_NAMESPACE_LABEL, TEST_NAMESPACE_NAME + + +class SmartSettingTestMixin(object): + def _create_test_settings_namespace(self): + try: + self.test_settings_namespace = Namespace.get( + name=TEST_NAMESPACE_NAME + ) + except KeyError: + self.test_settings_namespace = Namespace( + label=TEST_NAMESPACE_LABEL, name=TEST_NAMESPACE_NAME + ) diff --git a/mayan/apps/smart_settings/tests/test_view_permissions.py b/mayan/apps/smart_settings/tests/test_view_permissions.py deleted file mode 100644 index 4ef5e91e2b..0000000000 --- a/mayan/apps/smart_settings/tests/test_view_permissions.py +++ /dev/null @@ -1,32 +0,0 @@ -from __future__ import absolute_import, unicode_literals - -from mayan.apps.common.tests import GenericViewTestCase - -from ..permissions import permission_settings_view - - -class SmartSettingViewPermissionsTestCase(GenericViewTestCase): - def setUp(self): - super(SmartSettingViewPermissionsTestCase, self).setUp() - self.login_user() - - def test_view_access_denied(self): - response = self.get('settings:namespace_list') - - self.assertEqual(response.status_code, 403) - - response = self.get( - 'settings:namespace_detail', args=('common',) - ) - self.assertEqual(response.status_code, 403) - - def test_view_access_permitted(self): - self.grant_permission(permission=permission_settings_view) - - response = self.get('settings:namespace_list') - self.assertEqual(response.status_code, 200) - - response = self.get( - 'settings:namespace_detail', args=('common',) - ) - self.assertEqual(response.status_code, 200) diff --git a/mayan/apps/smart_settings/tests/test_views.py b/mayan/apps/smart_settings/tests/test_views.py new file mode 100644 index 0000000000..50748d5f6d --- /dev/null +++ b/mayan/apps/smart_settings/tests/test_views.py @@ -0,0 +1,41 @@ +from __future__ import absolute_import, unicode_literals + +from mayan.apps.common.tests import GenericViewTestCase + +from ..permissions import permission_settings_view + +from .mixins import SmartSettingTestMixin + + +class SmartSettingViewTestCase(SmartSettingTestMixin, GenericViewTestCase): + def setUp(self): + super(SmartSettingViewTestCase, self).setUp() + self._create_test_settings_namespace() + + def _request_namespace_list_view(self): + return self.get(viewname='settings:namespace_list') + + def _request_namespace_detail_view(self): + return self.get( + viewname='settings:namespace_detail', kwargs={ + 'namespace_name': self.test_settings_namespace.name + } + ) + + def test_namespace_list_view_no_permission(self): + response = self._request_namespace_list_view() + self.assertEqual(response.status_code, 403) + + def test_namespace_detail_view_no_permission(self): + response = self._request_namespace_detail_view() + self.assertEqual(response.status_code, 403) + + def test_namespace_list_view_with_permission(self): + self.grant_permission(permission=permission_settings_view) + response = self._request_namespace_list_view() + self.assertEqual(response.status_code, 200) + + def test_namespace_detail_view_with_permission(self): + self.grant_permission(permission=permission_settings_view) + response = self._request_namespace_detail_view() + self.assertEqual(response.status_code, 200)