From fc923a36e7e203689458d156107ef94c0479449f 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 | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests.py b/tests.py index 13c8725..bd289cc 100644 --- a/tests.py +++ b/tests.py @@ -97,6 +97,16 @@ class GroupTestCase(TestCase): Group.objects.create(celcat_name="L1 info (toutes sections et " "semestres confondus)", source=self.source) + # 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)", source=self.source) + + # Doit appartenir au groupe au-dessus. + Group.objects.create(celcat_name="M1 GC s2 GA111", source=self.source) + def test_corresponds(self): cma = Group.objects.get(celcat_name="L1 info s2 CMA", source=self.source) @@ -153,6 +163,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)", source=self.source) + ga111 = Group.objects.get(celcat_name="M1 GC s2 GA111", + source=self.source) + + 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", source=self.source) tda2 = Group.objects.get(name="L1 info s2 TDA2", source=self.source) @@ -204,6 +223,15 @@ class GroupTestCase(TestCase): 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)", source=self.source) + ga111 = Group.objects.get(celcat_name="M1 GC s2 GA111", + source=self.source) + + self.assertEqual(general.group_info, ("M1 GC", None, "")) + self.assertEqual(ga111.group_info, ("M1 GC", 2, "A111")) + class RoomTestCase(TestCase): def setUp(self): -- cgit v1.2.1