Coverage for authentication\test\test_Clientregistration.py: 100%
31 statements
« prev ^ index » next coverage.py v7.10.7, created at 2025-10-13 15:18 +0200
« prev ^ index » next coverage.py v7.10.7, created at 2025-10-13 15:18 +0200
1from django.urls import reverse
2from rest_framework import status
3from rest_framework.test import APITestCase
4from users.models.base_user import User
5from rest_framework.response import Response
6from typing import cast
8class ClientRegistrationTests(APITestCase):
9 def setUp(self):
10 self.url = reverse('register-client')
11 self.valid_data = {
12 'email': 'client@example.com',
13 'password': 'Strongpassword123#',
14 'nom': 'Dupont',
15 'prenom': 'Jean',
16 'telephone': '0601020304'
17 }
19 def test_register_client_success(self):
20 response = cast(Response, self.client.post(self.url, self.valid_data, format='json'))
21 self.assertEqual(response.status_code, status.HTTP_201_CREATED)
22 self.assertTrue(User.objects.filter(email=self.valid_data['email']).exists())
24 def test_register_client_missing_fields(self):
25 incomplete_data = self.valid_data.copy()
26 incomplete_data.pop('nom') # Suppression d’un champ obligatoire
27 response = cast(Response, self.client.post(self.url, incomplete_data, format='json'))
28 self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
29 self.assertIn('nom', response.data)
31 def test_register_client_missing_email(self):
32 incomplete_data = self.valid_data.copy()
33 incomplete_data.pop('email')
34 response = cast(Response, self.client.post(self.url, incomplete_data, format='json'))
35 self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
36 self.assertIn('email', response.data)
38 def test_register_client_duplicate_email(self):
39 User.objects.create_user(email=self.valid_data['email'], password='dummy', role='client')
40 response = cast(Response, self.client.post(self.url, self.valid_data, format='json'))
41 self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
42 self.assertIn('email', response.data)