SmartPicasso/rest-app/smartpicasso/app/user/tests.py

49 lines
1.8 KiB
Python

from django.test import TestCase
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.serializers import UserLoginSerializer
from rest_framework import serializers
class UserApiTest(APITestCase):
client = APIClient()
def test_login_when_user_non_exist(self):
url = reverse('authenticate')
response = self.client.post(url, {'email': 'non-exist', 'password': '123'}, format='json')
assert response.status_code == 400
def test_login_when_user_exist(self):
User.objects.create_user(email='test@test.com', password='test')
url = reverse('authenticate')
response = self.client.post(url, {'email': 'test@test.com', 'password': 'test'}, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(response.data['success'], 'True')
self.assertIn('token', response.data)
class UserTest(TestCase):
def test_user_str(self):
email = 'test@test.com'
user = User.objects.create_user(email=email, password='test')
self.assertEqual(str(user), email)
class UserLoginSerializerTest(TestCase):
serializer = UserLoginSerializer()
def test_validate_wrong_credentials(self):
data = {'email': 'test@test.com', 'password': '123'}
self.assertRaises(serializers.ValidationError, self.serializer.validate, data)
def test_validate_success(self):
User.objects.create_user(email='test@test.com', password='test')
data = {'email': 'test@test.com', 'password': 'test'}
result = self.serializer.validate(data)
self.assertEqual(result['email'], 'test@test.com')
self.assertIn('token', result)