36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
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") |