From 4c34ca333cafafec8cc63eb925de7fe712c26670 Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Sat, 10 Feb 2018 00:18:48 +0100 Subject: 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 --- tests.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) 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")) + -- cgit v1.2.1