tests.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. from django.test import TestCase
  2. from rest_framework.test import APITestCase
  3. from rest_framework import status
  4. from rest_framework.reverse import reverse
  5. from .models import User
  6. from .serializers import UserSerializer
  7. class UserViewTest(APITestCase):
  8. """ Test case for Transactions Views """
  9. user_data_ok = {
  10. "name": 'Test 2',
  11. "email": 'test2@test2.com',
  12. "age": 18
  13. }
  14. user_data_no_age = {
  15. "name": 'Test 2',
  16. "email": 'test2@test2.com'
  17. }
  18. user_data_duplicate_email = {
  19. "name": 'Test 2',
  20. "email": 'test@test.com',
  21. "age": 18
  22. }
  23. def setUp(self):
  24. user = User.objects.create(id=1, name='test', email='test@test.com', age=18)
  25. def test_pass_create(self):
  26. """
  27. Create user test
  28. """
  29. response = self.client.post(reverse('users_path:users-list'), self.user_data_ok, format='json')
  30. self.assertEqual(response.data, self.user_data_ok)
  31. self.assertEqual(User.objects.filter(email='test2@test2.com').count(), 1)
  32. self.assertEqual(response.status_code, status.HTTP_201_CREATED)
  33. def test_wrong_create_age_serializer(self):
  34. """
  35. Bad age value
  36. """
  37. serializer = UserSerializer(data=self.user_data_no_age)
  38. self.assertEqual(serializer.is_valid(), False)
  39. self.assertEqual(set(serializer.errors.keys()), set(['age']))
  40. def test_wrong_create_duplicated_email_serializer(self):
  41. """
  42. Bad age email
  43. """
  44. serializer = UserSerializer(data=self.user_data_duplicate_email)
  45. self.assertEqual(serializer.is_valid(), False)
  46. self.assertEqual(set(serializer.errors.keys()), set(['email']))