From 40765cbcdd94ab00deafc204b2d2ac99a4a914c4 Mon Sep 17 00:00:00 2001 From: Kenzo-Hugo Hillion <kenzo-hugo.hillion1@pasteur.fr> Date: Wed, 19 Jun 2019 15:31:07 +0200 Subject: [PATCH] add more tests try desesperate move for CI --- .gitlab-ci.yml | 2 +- .../apps/accounts/{test_auth.py => tests.py} | 20 +++++++++++ .../apps/catalog/models/test_views.py | 36 +++++++++++++++++++ backend/metagenedb/apps/catalog/urls.py | 2 +- 4 files changed, 58 insertions(+), 2 deletions(-) rename backend/metagenedb/apps/accounts/{test_auth.py => tests.py} (58%) create mode 100644 backend/metagenedb/apps/catalog/models/test_views.py diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e831c7b..e3df1a0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,7 +21,7 @@ cache: before_script: - cd backend - pip install -r requirements_dev.txt - - pip install . + - pip install -e . test-backend: stage: lint_test_coverage_backend diff --git a/backend/metagenedb/apps/accounts/test_auth.py b/backend/metagenedb/apps/accounts/tests.py similarity index 58% rename from backend/metagenedb/apps/accounts/test_auth.py rename to backend/metagenedb/apps/accounts/tests.py index fc240e3..39171ec 100644 --- a/backend/metagenedb/apps/accounts/test_auth.py +++ b/backend/metagenedb/apps/accounts/tests.py @@ -4,6 +4,7 @@ from rest_framework import status from django.contrib.auth.models import User +from rest_framework_jwt.settings import api_settings class TestAccounts(APITestCase): @@ -26,3 +27,22 @@ class TestAccounts(APITestCase): resp = self.client.post(url, {'username': 'user', 'password': 'pass'}, format='json') self.assertEqual(resp.status_code, status.HTTP_200_OK) self.assertTrue('token' in resp.data) + + def test_verify_jwt(self): + + 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) + + verify_url = reverse('api-jwt-verify') + credentials = { + 'token': token + } + + resp = self.client.post(verify_url, credentials, format='json') + self.assertEqual(resp.status_code, status.HTTP_200_OK) diff --git a/backend/metagenedb/apps/catalog/models/test_views.py b/backend/metagenedb/apps/catalog/models/test_views.py new file mode 100644 index 0000000..56394e9 --- /dev/null +++ b/backend/metagenedb/apps/catalog/models/test_views.py @@ -0,0 +1,36 @@ +from django.contrib.auth.models import User +from django.test import TestCase +from django.urls import reverse + +from rest_framework import status +from rest_framework_jwt.settings import api_settings + + +class TestGenes(TestCase): + """Post Tests""" + + def test_get_genes_no_auth(self): + """ + Unauthenticated users should not be able to access genes via APIListView + """ + url = reverse('genes') + resp = self.client.get(url) + self.assertEqual(resp.status_code, status.HTTP_401_UNAUTHORIZED) + + def test_get_genes_auth(self): + """ + Authenticated users should be able to access genes via APIListView + """ + + 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('genes') + resp = self.client.get(url, format='json', HTTP_AUTHORIZATION=f"JWT {token}") + self.assertEqual(resp.status_code, status.HTTP_200_OK) diff --git a/backend/metagenedb/apps/catalog/urls.py b/backend/metagenedb/apps/catalog/urls.py index 5ffcf0a..a25b56c 100644 --- a/backend/metagenedb/apps/catalog/urls.py +++ b/backend/metagenedb/apps/catalog/urls.py @@ -4,6 +4,6 @@ from . import views urlpatterns = [ path('', views.index, name='index'), - re_path(r'^api/genes/$', views.gene_list), + re_path(r'^api/genes$', views.gene_list, name='genes'), re_path(r'^api/genes/(?P<gene_id>.*)$', views.gene_detail), ] -- GitLab