46 lines
1.7 KiB
Python
46 lines
1.7 KiB
Python
from django.test import TestCase
|
|
from django.core.exceptions import ValidationError
|
|
from .models import Directie, Serviciu, Compartiment, Employee
|
|
|
|
|
|
class UsersModelTests(TestCase):
|
|
def setUp(self):
|
|
self.directie = Directie.objects.create(name="Direcția Economică")
|
|
self.serviciu = Serviciu.objects.create(
|
|
name="Serviciul Contabilitate", directie=self.directie
|
|
)
|
|
|
|
def test_compartiment_validation_valid(self):
|
|
# A Compartiment assigned to a Serviciu should pass validation
|
|
comp = Compartiment(name="Compartiment Salarizare", serviciu=self.serviciu)
|
|
comp.full_clean() # Validates the model without saving to DB
|
|
self.assertEqual(comp.serviciu, self.serviciu)
|
|
|
|
def test_compartiment_validation_missing_parent(self):
|
|
# A Compartiment with no parent should raise a ValidationError
|
|
comp = Compartiment(name="Compartiment Orfan")
|
|
with self.assertRaises(ValidationError):
|
|
comp.full_clean()
|
|
|
|
def test_compartiment_validation_multiple_parents(self):
|
|
# A Compartiment assigned to BOTH a Serviciu and a Directie should fail
|
|
comp = Compartiment(
|
|
name="Compartiment Dublu Subordonat",
|
|
directie=self.directie,
|
|
serviciu=self.serviciu,
|
|
)
|
|
with self.assertRaises(ValidationError):
|
|
comp.full_clean()
|
|
|
|
def test_employee_creation(self):
|
|
emp = Employee.objects.create(
|
|
name="Test User",
|
|
username="testuser",
|
|
role="Inspector",
|
|
office_number="12",
|
|
email="test@primariaroman.ro",
|
|
directie=self.directie,
|
|
)
|
|
self.assertEqual(emp.name, "Test User")
|
|
self.assertEqual(str(emp), "Test User (testuser)")
|