This commit is contained in:
43
backend/modules/crm/tests/test_serializers.py
Normal file
43
backend/modules/crm/tests/test_serializers.py
Normal file
@@ -0,0 +1,43 @@
|
||||
import uuid
|
||||
from django.test import TestCase, RequestFactory
|
||||
from unittest.mock import patch
|
||||
from modules.crm.serializers import ClientSerializer
|
||||
from modules.crm.models import Client
|
||||
|
||||
|
||||
class ClientSerializerTests(TestCase):
|
||||
def setUp(self):
|
||||
self.factory = RequestFactory()
|
||||
self.base_data = {
|
||||
"name": "Ser Client",
|
||||
"client_type": "legal",
|
||||
"tax_id": str(uuid.uuid4()),
|
||||
"email": f"client+{uuid.uuid4()}@example.test",
|
||||
"address": "Street 1",
|
||||
"city": "City",
|
||||
"postal_code": "00000",
|
||||
}
|
||||
|
||||
@patch("modules.crm.serializers.ClientService.create_client")
|
||||
def test_create_calls_service(self, mock_create):
|
||||
# Prepare mock return value
|
||||
mock_instance = Client(**self.base_data)
|
||||
mock_instance.pk = 1
|
||||
mock_create.return_value = mock_instance
|
||||
|
||||
serializer = ClientSerializer(data=self.base_data, context={"request": self.factory.post("/")})
|
||||
self.assertTrue(serializer.is_valid(), serializer.errors)
|
||||
result = serializer.save()
|
||||
mock_create.assert_called_once()
|
||||
self.assertEqual(result.pk, 1)
|
||||
|
||||
@patch("modules.crm.serializers.ClientService.update_client")
|
||||
def test_update_calls_service(self, mock_update):
|
||||
client = Client.objects.create(**self.base_data)
|
||||
mock_update.return_value = client
|
||||
|
||||
serializer = ClientSerializer(instance=client, data={"city": "UpdatedCity"}, partial=True, context={"request": self.factory.put("/")})
|
||||
self.assertTrue(serializer.is_valid(), serializer.errors)
|
||||
result = serializer.save()
|
||||
mock_update.assert_called_once()
|
||||
self.assertEqual(result, client)
|
||||
Reference in New Issue
Block a user