diff --git a/backend/metagenedb/api/catalog/views/test_bulk_viewset.py b/backend/metagenedb/api/catalog/views/test_bulk_viewset.py index 8dc6fc136747fb8d2e25b1037ba276dd06474076..3e5445c629894dc62ada51f2b0b5fd7df40f2fc6 100644 --- a/backend/metagenedb/api/catalog/views/test_bulk_viewset.py +++ b/backend/metagenedb/api/catalog/views/test_bulk_viewset.py @@ -1,10 +1,9 @@ -from django.contrib.auth.models import User from requests.exceptions import HTTPError from rest_framework.test import APITestCase -from rest_framework_jwt.settings import api_settings from metagenedb.apps.catalog.factory import FunctionFactory from metagenedb.common.utils.mocks.metagenedb import MetageneDBCatalogFunctionAPIMock +from metagenedb.common.utils.tests.apitestbase import AdminUserBasedTest class TestOperationsBulkViewSetNoCredentials(APITestCase): @@ -32,7 +31,7 @@ class TestOperationsBulkViewSetNoCredentials(APITestCase): self.function_api.put(data, function.function_id) -class TestOperationsBulkViewSet(APITestCase): +class TestOperationsBulkViewSet(AdminUserBasedTest): """ We are testing the different functions through the API directly through the mock redirecting requests to the test database. @@ -41,15 +40,8 @@ class TestOperationsBulkViewSet(APITestCase): """ def setUp(self): - jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER - jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER - user = User.objects.create_user(username='user_admin', email='user@admin.com', password='pass') - user.is_active = True - user.is_staff = True - user.save() - payload = jwt_payload_handler(user) - jwt_token = jwt_encode_handler(payload) - self.function_api = MetageneDBCatalogFunctionAPIMock(self.client, jwt_token=jwt_token) + super().setUp() + self.function_api = MetageneDBCatalogFunctionAPIMock(self.client, jwt_token=self.jwt_token) def test_create_function(self): data = { diff --git a/backend/metagenedb/api/catalog/views/test_gene.py b/backend/metagenedb/api/catalog/views/test_gene.py index e2e442150d04da56e6b6a21d856929ed539cbc6b..32c1a6bc3c6532dabb09293d46d471faa4cae810 100644 --- a/backend/metagenedb/api/catalog/views/test_gene.py +++ b/backend/metagenedb/api/catalog/views/test_gene.py @@ -20,24 +20,6 @@ class TestGenes(TestCase): resp = self.client.get(url) self.assertEqual(resp.status_code, status.HTTP_200_OK) - def test_get_genes_auth(self): - """ - Authenticated users should be able to access genes - """ - - jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER - jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER - - user = User.objects.create_user(username='user', email='user@foo.com', password='pass') - user.is_active = True - user.save() - payload = jwt_payload_handler(user) - token = jwt_encode_handler(payload) - - url = reverse('api:catalog:v1:genes-list') - resp = self.client.get(url, format='json', HTTP_AUTHORIZATION=f"JWT {token}") - self.assertEqual(resp.status_code, status.HTTP_200_OK) - class TestCountWindowsAPI(APITestCase): diff --git a/backend/metagenedb/common/utils/tests/__init__.py b/backend/metagenedb/common/utils/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/backend/metagenedb/common/utils/tests/apitestbase.py b/backend/metagenedb/common/utils/tests/apitestbase.py new file mode 100644 index 0000000000000000000000000000000000000000..b695a9324ffba72b1f106e2049048f91ea303eb3 --- /dev/null +++ b/backend/metagenedb/common/utils/tests/apitestbase.py @@ -0,0 +1,22 @@ +from django.contrib.auth.models import User +from rest_framework.test import APITestCase +from rest_framework_jwt.settings import api_settings + + +class AdminUserBasedTest(APITestCase): + """ + We are testing the different functions through the API directly through the mock redirecting + requests to the test database. + + The extent is a bit more than a unittest since it is not just involving concerned methods. + """ + + def setUp(self): + jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER + jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER + user = User.objects.create_user(username='user_admin', email='user@admin.com', password='pass') + user.is_active = True + user.is_staff = True + user.save() + payload = jwt_payload_handler(user) + self.jwt_token = jwt_encode_handler(payload)