aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlban Gruin2018-02-10 00:18:48 +0100
committerAlban Gruin2018-04-03 00:26:18 +0200
commit4c34ca333cafafec8cc63eb925de7fe712c26670 (patch)
tree3f7f71c04dafdaa474a5049de784b828cc18fc42
parent605eaafddc2e626dfbce13b6d1c99757562ee971 (diff)
Ajout de groupes aux tests de correspondance et de parsage créant des
erreurs de parsage. Ces erreurs sont liées au fait qu’elles ne possèdent pas de semestre. Exemple avec le groupe M1 GC (toutes sections et semestres confondus) : Attendu : * mention : M1 GC * semestre : * sous-groupe : Obtenu avec la regex actuelle : * mention : M1 * semestre : * sous-groupe : C
-rw-r--r--tests.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests.py b/tests.py
index 1425a84..38c0ed8 100644
--- a/tests.py
+++ b/tests.py
@@ -71,6 +71,16 @@ class GroupTestCase(TestCase):
Group.objects.create(celcat_name="L1 info (toutes sections et semestres confondus)", timetable=self.timetable)
+ # Cas spéciaux de groupes sans semestre. Normalement un groupe
+ # sans semestre ne possède pas de sous-groupe non plus, mais
+ # certains cas font foirer la regex. Voici un exemple trouvé
+ # dans la base de données de production.
+ Group.objects.create(celcat_name="M1 GC (toutes sections et semestres "
+ "confondus)", timetable=self.timetable)
+
+ # Doit appartenir au groupe au-dessus.
+ Group.objects.create(celcat_name="M1 GC s2 GA111", timetable=self.timetable)
+
def test_corresponds(self):
cma = Group.objects.get(celcat_name="L1 info s2 CMA", timetable=self.timetable)
tda2 = Group.objects.get(celcat_name="L1 info s2 TDA2", timetable=self.timetable)
@@ -120,6 +130,15 @@ class GroupTestCase(TestCase):
self.assertTrue(tpa21.corresponds_to(*general.group_info))
self.assertTrue(tpb21.corresponds_to(*general.group_info))
+ def test_corresponds_no_semester(self):
+ general = Group.objects.get(celcat_name="M1 GC (toutes sections et "
+ "semestres confondus)", timetable=self.timetable)
+ ga111 = Group.objects.get(celcat_name="M1 GC s2 GA111",
+ timetable=self.timetable)
+
+ self.assertTrue(ga111.corresponds_to(*general.group_info))
+ self.assertFalse(general.corresponds_to(*ga111.group_info))
+
def test_get(self):
cma = Group.objects.get(name="L1 info s2 CMA", timetable=self.timetable)
tda2 = Group.objects.get(name="L1 info s2 TDA2", timetable=self.timetable)
@@ -161,3 +180,13 @@ class GroupTestCase(TestCase):
self.assertEqual(tpb21.group_info, ("L1 info", 2, "B21"))
self.assertEqual(general.group_info, ("L1 info", None, ""))
+
+ def test_parse_no_semester(self):
+ general = Group.objects.get(celcat_name="M1 GC (toutes sections et "
+ "semestres confondus)", timetable=self.timetable)
+ ga111 = Group.objects.get(celcat_name="M1 GC s2 GA111",
+ timetable=self.timetable)
+
+ self.assertEqual(general.group_info, ("M1 GC", None, ""))
+ self.assertEqual(ga111.group_info, ("M1 GC", 2, "A111"))
+