43 lines
1.7 KiB
Python
43 lines
1.7 KiB
Python
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) |