diff --git a/apps/account/tests.py b/apps/account/tests.py deleted file mode 100644 index 7ce503c2..00000000 --- a/apps/account/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/apps/account/tests/__init__.py b/apps/account/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/apps/account/tests/tests_common.py b/apps/account/tests/tests_common.py new file mode 100644 index 00000000..0992b930 --- /dev/null +++ b/apps/account/tests/tests_common.py @@ -0,0 +1,82 @@ +from rest_framework.test import APITestCase +from rest_framework import status +from authorization.tests.tests import get_tokens_for_user +from http.cookies import SimpleCookie +from account.models import User +from django.urls import reverse + + +class AccountUserTests(APITestCase): + + url = reverse('web:account:user-retrieve-update') + + def setUp(self): + self.data = get_tokens_for_user() + + def test_user_url(self): + response = self.client.get(self.url) + self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) + + self.client.cookies = SimpleCookie( + {'access_token': self.data['tokens'].get('access_token'), + 'refresh_token': self.data['tokens'].get('access_token')}) + + response = self.client.get(self.url) + self.assertEqual(response.status_code, status.HTTP_200_OK) + + data = { + "username": self.data["username"], + "first_name": "Test first name", + "last_name": "Test last name", + "cropped_image_url": "http://localhost/image/cropped.png", + "image_url": "http://localhost/image/avatar.png", + "email": "sedragurdatest@desoz.com", + "newsletter": self.data["newsletter"] + } + response = self.client.patch(self.url, data=data, format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + data["email"] = "sedragurdatest2@desoz.com" + + response = self.client.put(self.url, data=data, format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + +class AccountChangePasswordTests(APITestCase): + + url = reverse('web:account:change-password') + + def setUp(self): + self.data = get_tokens_for_user() + + def test_change_password(self): + data = { + "old_password": self.data["password"], + "password": "new password" + } + + response = self.client.patch(self.url, data=data, format='json') + self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) + + self.client.cookies = SimpleCookie( + {'access_token': self.data['tokens'].get('access_token'), + 'refresh_token': self.data['tokens'].get('access_token')}) + + response = self.client.patch(self.url, data=data, format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + +class AccountChangePasswordTests(APITestCase): + def setUp(self): + self.data = get_tokens_for_user() + + def test_confirm_email(self): + user = User.objects.get(email=self.data["email"]) + token = user.confirm_email_token + uidb64 = user.get_user_uidb64 + url = reverse('web:account:confirm-email', kwargs={ + 'uidb64': uidb64, + 'token': token + }) + response = self.client.get(url) + self.assertEqual(response.status_code, status.HTTP_200_OK) diff --git a/apps/authorization/tests/tests.py b/apps/authorization/tests/tests.py index 839af828..d9fd7b71 100644 --- a/apps/authorization/tests/tests.py +++ b/apps/authorization/tests/tests.py @@ -3,15 +3,28 @@ from account.models import User # Create your tests here. +def get_tokens_for_user( + username='sedragurda', password='sedragurdaredips19', email='sedragurda@desoz.com'): + + user = User.objects.create_user(username=username, email=email, password=password) + tokens = User.create_jwt_tokens(user) + + return { + "username": username, + "password": password, + "email": email, + "newsletter": True, + "user": user, + "tokens": tokens + } + + class AuthorizationTests(APITestCase): def setUp(self): - self.username = 'sedragurda' - self.password = 'sedragurdaredips19' - self.email = 'sedragurda@desoz.com' - self.newsletter = True - self.user = User.objects.create_user(username=self.username, email=self.email, password=self.password) - self.tokkens = User.create_jwt_tokens(self.user) + data = get_tokens_for_user() + self.username = data["username"] + self.password = data["password"] def LoginTests(self): data ={ @@ -20,6 +33,6 @@ class AuthorizationTests(APITestCase): 'remember': True } response = self.client.post('/api/auth/login/', data=data) - self.assertEqual(response.data['access_token'], self.tokkens.get('access_token')) - self.assertEqual(response.data['refresh_token'], self.tokkens.get('refresh_token')) + self.assertEqual(response.data['access_token'], self.tokens.get('access_token')) + self.assertEqual(response.data['refresh_token'], self.tokens.get('refresh_token'))