2020-12-09 20:57:11 +01:00
|
|
|
"""
|
|
|
|
@author: p.dolata
|
|
|
|
"""
|
|
|
|
|
2020-11-30 22:42:24 +01:00
|
|
|
from django.test import TestCase
|
2020-12-09 20:57:11 +01:00
|
|
|
from django.urls import reverse
|
|
|
|
from rest_framework import status
|
|
|
|
from rest_framework.test import APITestCase, APIClient
|
|
|
|
|
|
|
|
from smartpicasso.app.user.models import User
|
|
|
|
from smartpicasso.app.user_profile.models import UserProfile
|
|
|
|
|
|
|
|
|
|
|
|
class UserProfileApiTest(APITestCase):
|
|
|
|
client = APIClient()
|
|
|
|
profile_url = reverse('profile')
|
|
|
|
authenticate_url = reverse('authenticate')
|
|
|
|
profile = {"username": 'test_user', "first_name": "first", "last_name": "last"}
|
|
|
|
|
|
|
|
def test_get_profile_without_auth(self):
|
|
|
|
response = self.client.get(self.profile_url, format='json')
|
|
|
|
self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED)
|
|
|
|
|
|
|
|
def test_get_profile_with_invalid_token(self):
|
|
|
|
self.client.force_authenticate(user=None)
|
|
|
|
response = self.client.get(self.profile_url, format='json')
|
|
|
|
self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED)
|
|
|
|
|
|
|
|
def test_get_profile_when_user_without_profile(self):
|
|
|
|
user = User.objects.create_user(email='test@test.com', password='test')
|
|
|
|
self.client.force_authenticate(user=user)
|
|
|
|
response = self.client.get(self.profile_url, format='json')
|
2020-12-09 21:49:10 +01:00
|
|
|
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
|
2020-12-09 20:57:11 +01:00
|
|
|
self.assertEqual(response.data['success'], 'False')
|
|
|
|
|
|
|
|
def test_get_profile(self):
|
|
|
|
user = User.objects.create_user(email='test@test.com', password='test')
|
|
|
|
UserProfile.objects.create(
|
|
|
|
user=user,
|
|
|
|
username=self.profile['username'],
|
|
|
|
first_name=self.profile['first_name'],
|
|
|
|
last_name=self.profile['last_name']
|
|
|
|
)
|
|
|
|
self.client.force_authenticate(user=user)
|
|
|
|
response = self.client.get(self.profile_url, format='json')
|
|
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
|
|
self.assertEqual(response.data['success'], 'True')
|
|
|
|
profile = response.data['profile']
|
|
|
|
self.assertEqual(profile['username'], self.profile['username'])
|
|
|
|
self.assertEqual(profile['first_name'], self.profile['first_name'])
|
|
|
|
self.assertEqual(profile['last_name'], self.profile['last_name'])
|
|
|
|
|
|
|
|
|
|
|
|
class UserProfileTest(TestCase):
|
|
|
|
profile = {"username": 'test_user', "first_name": "first", "last_name": "last"}
|
2020-11-30 22:42:24 +01:00
|
|
|
|
2020-12-09 20:57:11 +01:00
|
|
|
def test_user_profile_str(self):
|
|
|
|
user = User.objects.create_user(email='test@test.com', password='test')
|
|
|
|
user_profile = UserProfile.objects.create(
|
|
|
|
user=user,
|
|
|
|
username=self.profile['username'],
|
|
|
|
first_name=self.profile['first_name'],
|
|
|
|
last_name=self.profile['last_name']
|
|
|
|
)
|
|
|
|
self.assertEqual(str(user_profile), 'test_user - first last')
|