Files
004.erp.generic/backend/modules/crm/tests/test_serializers.py
mariomitte 5d39e048ba
Some checks failed
ERP CI Pipeline / test (push) Has been cancelled
prvi kod za live uporabu
2026-07-09 21:21:17 +02:00

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)