35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
from django.db.utils import IntegrityError
|
|
from django.test import TestCase
|
|
from django.utils import timezone
|
|
|
|
from ...models.calcul import Calcul, SousVivier
|
|
from ...models.calcul import StatutCalculChoices as StatutCalcul
|
|
|
|
|
|
class CalculTestCase(TestCase):
|
|
|
|
@classmethod
|
|
def setUpTestData(cls):
|
|
for i in range(1, 15):
|
|
SousVivier.objects.create(pk=str(i))
|
|
|
|
def test_constraint_statut(self):
|
|
valides = StatutCalcul.values
|
|
invalide = 'autre'
|
|
|
|
def given():
|
|
self.assertTrue(valides, 'il devrait exister des choix valides')
|
|
self.assertNotIn(invalide, valides, 'le test nécessite une valeur invalide')
|
|
given()
|
|
|
|
i = 1
|
|
|
|
# valide : création OK
|
|
for valide in valides:
|
|
Calcul.objects.create(pk=str(i), ca_date_debut=timezone.now(), ca_statut=valide, ca_statut_pourcentage=0)
|
|
i = i + 1
|
|
|
|
# invalide : création KO
|
|
with self.assertRaises(IntegrityError):
|
|
Calcul.objects.create(pk=str(i), ca_date_debut=timezone.now(), ca_statut=invalide, ca_statut_pourcentage=0)
|