Jarvis/jarvis/objective/tests.py

90 lines
3.2 KiB
Python

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],
],
)