import uuid from django.test import TestCase from rest_framework.exceptions import ValidationError from modules.crm.services import ClientService from modules.crm.models import Client class ClientServiceTests(TestCase): def setUp(self): self.base_data = { "name": "Service Client", "client_type": "legal", "tax_id": str(uuid.uuid4()), "email": f"client+{uuid.uuid4()}@example.test", "address": "Street 1", "city": "City", "postal_code": "00000", } def test_create_client_success(self): client = ClientService.create_client(self.base_data) self.assertIsNotNone(client.pk) self.assertEqual(client.name, "Service Client") def test_create_client_duplicate_tax_id_raises(self): # create first Client.objects.create(**self.base_data) dup = dict(self.base_data) dup["email"] = f"client+{uuid.uuid4()}@example.test" with self.assertRaises(ValidationError): ClientService.create_client(dup) def test_update_client_success(self): client = Client.objects.create(**self.base_data) updated = ClientService.update_client(client, {"city": "NewCity"}) self.assertEqual(updated.city, "NewCity")