85 lines
3.1 KiB
Python
85 lines
3.1 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],
|
|
],
|
|
)
|