from django.test import TestCase from jarvis.objective.models import Educative class EducativeTestCase(TestCase): def setUp(self): """ Structure finale : 1 -> 2 1 -> 6 3 -> 4 -> 5 -> 6 -> 7 1 -> 2 -> 9 3 -> 4 -> 5 -> 6 -> 7 -> 9 """ # 1 et 3 Eductative sans pre-requis educ_1 = Educative.objects.create( long_label="1/2 vrille", difficulty=0.1, level=1, rank=1 ) educ_3 = Educative.objects.create( long_label="4 pattes", difficulty=0.1, level=1, rank=1 ) educ_2 = Educative.objects.create( long_label="tour", difficulty=0.2, level=1, rank=2 ) educ_2.prerequisites.add(educ_1) educ_4 = Educative.objects.create( long_label="Ventre", difficulty=0.1, level=1, rank=1 ) educ_4.prerequisites.add(educ_3) educ_5 = Educative.objects.create( long_label="3/4 Avant /", difficulty=0.3, level=1, rank=1 ) educ_5.prerequisites.add(educ_4) educ_6 = Educative.objects.create( long_label="Avant /", difficulty=0.6, level=1, rank=1 ) educ_6.prerequisites.add(educ_5) educ_7 = Educative.objects.create( long_label="Barani /", difficulty=0.6, level=1, rank=1 ) educ_7.prerequisites.add(educ_6) educ_7.prerequisites.add(educ_1) # educ_8 = Educative.objects.create(long_label="3/4 Avant vrille", difficulty=0.5, level=1, rank=1) # educ_8.prerequisites.add(educ_6) # educ_8.prerequisites.add(educ_2) educ_9 = Educative.objects.create( long_label="Rudy", difficulty=0.8, level=1, rank=1 ) educ_9.prerequisites.add(educ_2) educ_9.prerequisites.add(educ_7) def test_educative_breadcrumb(self): # Cas "None" d'un objet qui n'a pas de prerequis educ_1 = Educative.objects.get(long_label="1/2 vrille") self.assertEqual(educ_1.breadcrumb(), [[educ_1]]) # Cas simplise : un objet avec un seul encetre educ_2 = Educative.objects.get(long_label="tour") self.assertEqual(educ_2.breadcrumb(), [[educ_1, educ_2]]) # Cas simple : chaque skill n'a qu'un seul encetre educ_3 = Educative.objects.get(long_label="4 pattes") educ_4 = Educative.objects.get(long_label="Ventre") educ_5 = Educative.objects.get(long_label="3/4 Avant /") educ_6 = Educative.objects.get(long_label="Avant /") educ_7 = Educative.objects.get(long_label="Barani /") self.assertEqual( educ_7.breadcrumb(), [[educ_1, educ_7], [educ_3, educ_4, educ_5, educ_6, educ_7]], ) # Cas plus complexe : l'éduc 8 a deux encetres qui ont chacun une lignée d'encêtres educ_9 = Educative.objects.get(long_label="Rudy") self.assertEqual( educ_9.breadcrumb(), [ [educ_1, educ_7, educ_9], [educ_3, educ_4, educ_5, educ_6, educ_7, educ_9], [educ_1, educ_2, educ_9], ], )