""" Test Cases """ from rest_framework.test import APITestCase from rest_framework import status from rest_framework.reverse import reverse from .models import User from .serializers import UserSerializer class UserViewTest(APITestCase): """ Test case for Transactions Views """ user_data_ok = { "name": 'Test 2', "email": 'test2@test2.com', "age": 18 } user_data_no_age = { "name": 'Test 2', "email": 'test2@test2.com' } user_data_duplicate_email = { "name": 'Test 2', "email": 'test@test.com', "age": 18 } def setUp(self): User.objects.create(id=1, name='test', email='test@test.com', age=18) def test_pass_create(self): """ Create user test """ response = self.client.post(reverse('users_path:users-list'), self.user_data_ok, format='json') self.assertEqual(response.data, self.user_data_ok) self.assertEqual(User.objects.filter(email='test2@test2.com').count(), 1) self.assertEqual(response.status_code, status.HTTP_201_CREATED) def test_wrong_create_age_serializer(self): """ Bad age value """ serializer = UserSerializer(data=self.user_data_no_age) self.assertEqual(serializer.is_valid(), False) self.assertEqual(set(serializer.errors.keys()), set(['age'])) def test_wrong_create_duplicated_email_serializer(self): """ Bad age email """ serializer = UserSerializer(data=self.user_data_duplicate_email) self.assertEqual(serializer.is_valid(), False) self.assertEqual(set(serializer.errors.keys()), set(['email']))