aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--models.py3
-rw-r--r--tests.py26
2 files changed, 28 insertions, 1 deletions
diff --git a/models.py b/models.py
index 4c3f3c3..14270cf 100644
--- a/models.py
+++ b/models.py
@@ -116,7 +116,8 @@ class Group(models.Model):
self.subgroup.startswith(subgroup)
return self.timetable.id == timetable_id and \
- self.mention.startswith(mention) and \
+ (self.mention.startswith(mention) or \
+ mention.startswith(self.mention)) and \
subgroup_corresponds
@property
diff --git a/tests.py b/tests.py
index 798574d..a509f38 100644
--- a/tests.py
+++ b/tests.py
@@ -69,6 +69,8 @@ class GroupTestCase(TestCase):
Group.objects.create(celcat_name="L1 info s2 TDB2", timetable=self.timetable)
Group.objects.create(celcat_name="L1 info s2 TPB21", timetable=self.timetable)
+ Group.objects.create(celcat_name="L1 info (toutes sections et semestres confondus)", 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)
@@ -78,6 +80,8 @@ class GroupTestCase(TestCase):
tdb2 = Group.objects.get(celcat_name="L1 info s2 TDB2", timetable=self.timetable)
tpb21 = Group.objects.get(celcat_name="L1 info s2 TPB21", timetable=self.timetable)
+ general = Group.objects.get(celcat_name="L1 info (toutes sections et semestres confondus)", timetable=self.timetable)
+
self.assertTrue(cma.corresponds_to(*tda2.group_info)) # CMA corresponds to TDA2
self.assertTrue(cma.corresponds_to(*tpa21.group_info)) # CMA corresponds to TPA21
self.assertTrue(tda2.corresponds_to(*tpa21.group_info)) # TDA2 corresponds to TPA21
@@ -102,6 +106,20 @@ class GroupTestCase(TestCase):
self.assertFalse(tpa21.corresponds_to(*cmb.group_info)) # TPA21 does not corresponds to CMB
self.assertFalse(tpa21.corresponds_to(*tdb2.group_info)) # TPA21 does not corresponds to TDB2
+ self.assertTrue(general.corresponds_to(*cma.group_info))
+ self.assertTrue(general.corresponds_to(*cmb.group_info))
+ self.assertTrue(general.corresponds_to(*tda2.group_info))
+ self.assertTrue(general.corresponds_to(*tdb2.group_info))
+ self.assertTrue(general.corresponds_to(*tpa21.group_info))
+ self.assertTrue(general.corresponds_to(*tpb21.group_info))
+
+ self.assertTrue(cma.corresponds_to(*general.group_info))
+ self.assertTrue(cmb.corresponds_to(*general.group_info))
+ self.assertTrue(tda2.corresponds_to(*general.group_info))
+ self.assertTrue(tdb2.corresponds_to(*general.group_info))
+ self.assertTrue(tpa21.corresponds_to(*general.group_info))
+ self.assertTrue(tpb21.corresponds_to(*general.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)
@@ -111,6 +129,8 @@ class GroupTestCase(TestCase):
tdb2 = Group.objects.get(name="L1 info s2 TDB2", timetable=self.timetable)
tpb21 = Group.objects.get(name="L1 info s2 TPB21", timetable=self.timetable)
+ general = Group.objects.get(celcat_name="L1 info (toutes sections et semestres confondus)", timetable=self.timetable)
+
self.assertEqual(cma.celcat_name, "L1 info s2 CMA")
self.assertEqual(tda2.celcat_name, "L1 info s2 TDA2")
self.assertEqual(tpa21.celcat_name, "L1 info s2 TPA21")
@@ -119,6 +139,8 @@ class GroupTestCase(TestCase):
self.assertEqual(tdb2.celcat_name, "L1 info s2 TDB2")
self.assertEqual(tpb21.celcat_name, "L1 info s2 TPB21")
+ self.assertEqual(general.celcat_name, "L1 info (toutes sections et semestres confondus)")
+
def test_parse(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)
@@ -128,6 +150,8 @@ class GroupTestCase(TestCase):
tdb2 = Group.objects.get(celcat_name="L1 info s2 TDB2", timetable=self.timetable)
tpb21 = Group.objects.get(celcat_name="L1 info s2 TPB21", timetable=self.timetable)
+ general = Group.objects.get(celcat_name="L1 info (toutes sections et semestres confondus)", timetable=self.timetable)
+
self.assertEqual(cma.group_info, (self.timetable.id, "L1 info s2 ", "A"))
self.assertEqual(tda2.group_info, (self.timetable.id, "L1 info s2 ", "A2"))
self.assertEqual(tpa21.group_info, (self.timetable.id, "L1 info s2 ", "A21"))
@@ -135,3 +159,5 @@ class GroupTestCase(TestCase):
self.assertEqual(cmb.group_info, (self.timetable.id, "L1 info s2 ", "B"))
self.assertEqual(tdb2.group_info, (self.timetable.id, "L1 info s2 ", "B2"))
self.assertEqual(tpb21.group_info, (self.timetable.id, "L1 info s2 ", "B21"))
+
+ self.assertEqual(general.group_info, (self.timetable.id, "L1 info ", ""))