From 3a5e355f92881597c22a434ea300175a624586ea Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Thu, 18 Jan 2018 13:26:37 +0100 Subject: Adaptation des tests à la nouvelle structure de la base de données --- tests.py | 86 ++++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 46 insertions(+), 40 deletions(-) (limited to 'tests.py') diff --git a/tests.py b/tests.py index 1425a84..ac6bdaf 100644 --- a/tests.py +++ b/tests.py @@ -14,7 +14,7 @@ # along with celcatsanitizer. If not, see . from django.test import TestCase -from .models import Course, Group, Timetable, Year +from .models import Course, Group, Source, Timetable, Year from .utils import tz_now @@ -25,24 +25,27 @@ class CourseTestCase(TestCase): self.year = Year(name="L2", slug="l2") self.year.save() - self.timetable = Timetable(year=self.year, name="Test timetable 2", url="http://example.org/", slug="test-timetable2") + source = Source(url="http://example.org/") + source.save() + + self.timetable = Timetable(year=self.year, name="Test timetable 2", source=source, slug="test-timetable2") self.timetable.save() - cma = Group.objects.create(celcat_name="L1 info s2 CMA", timetable=self.timetable) - tda2 = Group.objects.create(celcat_name="L1 info s2 TDA2", timetable=self.timetable) - self.tpa21 = Group.objects.create(celcat_name="L1 info s2 TPA21", timetable=self.timetable) + cma = Group.objects.create(celcat_name="L1 info s2 CMA", source=source) + tda2 = Group.objects.create(celcat_name="L1 info s2 TDA2", source=source) + self.tpa21 = Group.objects.create(celcat_name="L1 info s2 TPA21", source=source) - cmb = Group.objects.create(celcat_name="L1 info s2 CMB", timetable=self.timetable) - tdb2 = Group.objects.create(celcat_name="L1 info s2 TDB2", timetable=self.timetable) - self.tpb21 = Group.objects.create(celcat_name="L1 info s2 TPB21", timetable=self.timetable) + cmb = Group.objects.create(celcat_name="L1 info s2 CMB", source=source) + tdb2 = Group.objects.create(celcat_name="L1 info s2 TDB2", source=source) + self.tpb21 = Group.objects.create(celcat_name="L1 info s2 TPB21", source=source) for group in (cma, tda2, self.tpa21, cmb, tdb2, self.tpb21,): - course = Course.objects.create(name="{0} course".format(group.name), type="cours", timetable=self.timetable, begin=dt, end=dt) + course = Course.objects.create(name="{0} course".format(group.name), type="cours", source=source, begin=dt, end=dt) course.groups.add(group) def test_get_courses_for_group(self): - tpa21_courses = Course.objects.get_courses_for_group(self.tpa21) - tpb21_courses = Course.objects.get_courses_for_group(self.tpb21) + tpa21_courses = Course.objects.get_courses(self.tpa21) + tpb21_courses = Course.objects.get_courses(self.tpb21) tpa21_course_names = ["L1 info s2 CMA course", "L1 info s2 TDA2 course", "L1 info s2 TPA21 course"] tpb21_course_names = ["L1 info s2 CMB course", "L1 info s2 TDB2 course", "L1 info s2 TPB21 course"] @@ -58,29 +61,32 @@ class GroupTestCase(TestCase): self.year = Year(name="L1", slug="l1") self.year.save() - self.timetable = Timetable(year=self.year, name="Test timetable", url="http://example.com/", slug="test-timetable") + self.source = Source(url="http://example.org/") + self.source.save() + + self.timetable = Timetable(year=self.year, name="Test timetable", source=self.source, slug="test-timetable") self.timetable.save() - Group.objects.create(celcat_name="L1 info s2 CMA", timetable=self.timetable) - Group.objects.create(celcat_name="L1 info s2 TDA2", timetable=self.timetable) - Group.objects.create(celcat_name="L1 info s2 TPA21", timetable=self.timetable) + Group.objects.create(celcat_name="L1 info s2 CMA", source=self.source) + Group.objects.create(celcat_name="L1 info s2 TDA2", source=self.source) + Group.objects.create(celcat_name="L1 info s2 TPA21", source=self.source) - Group.objects.create(celcat_name="L1 info s2 CMB", timetable=self.timetable) - 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 s2 CMB", source=self.source) + Group.objects.create(celcat_name="L1 info s2 TDB2", source=self.source) + Group.objects.create(celcat_name="L1 info s2 TPB21", source=self.source) - Group.objects.create(celcat_name="L1 info (toutes sections et semestres confondus)", timetable=self.timetable) + Group.objects.create(celcat_name="L1 info (toutes sections et semestres confondus)", source=self.source) 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) - tpa21 = Group.objects.get(celcat_name="L1 info s2 TPA21", timetable=self.timetable) + cma = Group.objects.get(celcat_name="L1 info s2 CMA", source=self.source) + tda2 = Group.objects.get(celcat_name="L1 info s2 TDA2", source=self.source) + tpa21 = Group.objects.get(celcat_name="L1 info s2 TPA21", source=self.source) - cmb = Group.objects.get(celcat_name="L1 info s2 CMB", timetable=self.timetable) - 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) + cmb = Group.objects.get(celcat_name="L1 info s2 CMB", source=self.source) + tdb2 = Group.objects.get(celcat_name="L1 info s2 TDB2", source=self.source) + tpb21 = Group.objects.get(celcat_name="L1 info s2 TPB21", source=self.source) - general = Group.objects.get(celcat_name="L1 info (toutes sections et semestres confondus)", timetable=self.timetable) + general = Group.objects.get(celcat_name="L1 info (toutes sections et semestres confondus)", source=self.source) self.assertFalse(cma.corresponds_to(*tda2.group_info)) self.assertFalse(cma.corresponds_to(*tpa21.group_info)) @@ -121,15 +127,15 @@ class GroupTestCase(TestCase): 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) - tpa21 = Group.objects.get(name="L1 info s2 TPA21", timetable=self.timetable) + cma = Group.objects.get(name="L1 info s2 CMA", source=self.source) + tda2 = Group.objects.get(name="L1 info s2 TDA2", source=self.source) + tpa21 = Group.objects.get(name="L1 info s2 TPA21", source=self.source) - cmb = Group.objects.get(name="L1 info s2 CMB", timetable=self.timetable) - tdb2 = Group.objects.get(name="L1 info s2 TDB2", timetable=self.timetable) - tpb21 = Group.objects.get(name="L1 info s2 TPB21", timetable=self.timetable) + cmb = Group.objects.get(name="L1 info s2 CMB", source=self.source) + tdb2 = Group.objects.get(name="L1 info s2 TDB2", source=self.source) + tpb21 = Group.objects.get(name="L1 info s2 TPB21", source=self.source) - general = Group.objects.get(celcat_name="L1 info (toutes sections et semestres confondus)", timetable=self.timetable) + general = Group.objects.get(celcat_name="L1 info (toutes sections et semestres confondus)", source=self.source) self.assertEqual(cma.celcat_name, "L1 info s2 CMA") self.assertEqual(tda2.celcat_name, "L1 info s2 TDA2") @@ -142,15 +148,15 @@ class GroupTestCase(TestCase): 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) - tpa21 = Group.objects.get(celcat_name="L1 info s2 TPA21", timetable=self.timetable) + cma = Group.objects.get(celcat_name="L1 info s2 CMA", source=self.source) + tda2 = Group.objects.get(celcat_name="L1 info s2 TDA2", source=self.source) + tpa21 = Group.objects.get(celcat_name="L1 info s2 TPA21", source=self.source) - cmb = Group.objects.get(celcat_name="L1 info s2 CMB", timetable=self.timetable) - 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) + cmb = Group.objects.get(celcat_name="L1 info s2 CMB", source=self.source) + tdb2 = Group.objects.get(celcat_name="L1 info s2 TDB2", source=self.source) + tpb21 = Group.objects.get(celcat_name="L1 info s2 TPB21", source=self.source) - general = Group.objects.get(celcat_name="L1 info (toutes sections et semestres confondus)", timetable=self.timetable) + general = Group.objects.get(celcat_name="L1 info (toutes sections et semestres confondus)", source=self.source) self.assertEqual(cma.group_info, ("L1 info", 2, "A")) self.assertEqual(tda2.group_info, ("L1 info", 2, "A2")) -- cgit v1.2.1 From 76fef8f3e0b3ad77f632a9e4d2c048607a1cf21b Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Thu, 18 Jan 2018 13:42:49 +0100 Subject: Mise à jour des copyrights --- tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests.py') diff --git a/tests.py b/tests.py index ac6bdaf..8a21a3f 100644 --- a/tests.py +++ b/tests.py @@ -1,4 +1,4 @@ -# Copyright (C) 2017 Alban Gruin +# Copyright (C) 2017-2018 Alban Gruin # # celcatsanitizer is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published -- cgit v1.2.1 From c9388e29b2f9ee18a9e190683a8a33fb710684c5 Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Sat, 27 Jan 2018 17:56:45 +0100 Subject: PEP8 --- tests.py | 99 ++++++++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 66 insertions(+), 33 deletions(-) (limited to 'tests.py') diff --git a/tests.py b/tests.py index 8a21a3f..e671973 100644 --- a/tests.py +++ b/tests.py @@ -28,29 +28,42 @@ class CourseTestCase(TestCase): source = Source(url="http://example.org/") source.save() - self.timetable = Timetable(year=self.year, name="Test timetable 2", source=source, slug="test-timetable2") + self.timetable = Timetable(year=self.year, name="Test timetable 2", + source=source, slug="test-timetable2") self.timetable.save() cma = Group.objects.create(celcat_name="L1 info s2 CMA", source=source) - tda2 = Group.objects.create(celcat_name="L1 info s2 TDA2", source=source) - self.tpa21 = Group.objects.create(celcat_name="L1 info s2 TPA21", source=source) + tda2 = Group.objects.create(celcat_name="L1 info s2 TDA2", + source=source) + self.tpa21 = Group.objects.create(celcat_name="L1 info s2 TPA21", + source=source) cmb = Group.objects.create(celcat_name="L1 info s2 CMB", source=source) - tdb2 = Group.objects.create(celcat_name="L1 info s2 TDB2", source=source) - self.tpb21 = Group.objects.create(celcat_name="L1 info s2 TPB21", source=source) + tdb2 = Group.objects.create(celcat_name="L1 info s2 TDB2", + source=source) + self.tpb21 = Group.objects.create(celcat_name="L1 info s2 TPB21", + source=source) for group in (cma, tda2, self.tpa21, cmb, tdb2, self.tpb21,): - course = Course.objects.create(name="{0} course".format(group.name), type="cours", source=source, begin=dt, end=dt) + course = Course.objects.create(name="{0} course" + .format(group.name), + type="cours", source=source, + begin=dt, end=dt) course.groups.add(group) def test_get_courses_for_group(self): tpa21_courses = Course.objects.get_courses(self.tpa21) tpb21_courses = Course.objects.get_courses(self.tpb21) - tpa21_course_names = ["L1 info s2 CMA course", "L1 info s2 TDA2 course", "L1 info s2 TPA21 course"] - tpb21_course_names = ["L1 info s2 CMB course", "L1 info s2 TDB2 course", "L1 info s2 TPB21 course"] + tpa21_course_names = ["L1 info s2 CMA course", + "L1 info s2 TDA2 course", + "L1 info s2 TPA21 course"] + tpb21_course_names = ["L1 info s2 CMB course", + "L1 info s2 TDB2 course", + "L1 info s2 TPB21 course"] - for courses, names in ((tpa21_courses, tpa21_course_names,), (tpb21_courses, tpb21_course_names,),): + for courses, names in ((tpa21_courses, tpa21_course_names,), + (tpb21_courses, tpb21_course_names,),): for course in courses: self.assertIn(course.name, names) names.remove(course.name) @@ -64,29 +77,40 @@ class GroupTestCase(TestCase): self.source = Source(url="http://example.org/") self.source.save() - self.timetable = Timetable(year=self.year, name="Test timetable", source=self.source, slug="test-timetable") + self.timetable = Timetable(year=self.year, name="Test timetable", + source=self.source, slug="test-timetable") self.timetable.save() Group.objects.create(celcat_name="L1 info s2 CMA", source=self.source) Group.objects.create(celcat_name="L1 info s2 TDA2", source=self.source) - Group.objects.create(celcat_name="L1 info s2 TPA21", source=self.source) + Group.objects.create(celcat_name="L1 info s2 TPA21", + source=self.source) Group.objects.create(celcat_name="L1 info s2 CMB", source=self.source) Group.objects.create(celcat_name="L1 info s2 TDB2", source=self.source) - Group.objects.create(celcat_name="L1 info s2 TPB21", source=self.source) + Group.objects.create(celcat_name="L1 info s2 TPB21", + source=self.source) - Group.objects.create(celcat_name="L1 info (toutes sections et semestres confondus)", source=self.source) + Group.objects.create(celcat_name="L1 info (toutes sections et " + "semestres confondus)", source=self.source) def test_corresponds(self): - cma = Group.objects.get(celcat_name="L1 info s2 CMA", source=self.source) - tda2 = Group.objects.get(celcat_name="L1 info s2 TDA2", source=self.source) - tpa21 = Group.objects.get(celcat_name="L1 info s2 TPA21", source=self.source) - - cmb = Group.objects.get(celcat_name="L1 info s2 CMB", source=self.source) - tdb2 = Group.objects.get(celcat_name="L1 info s2 TDB2", source=self.source) - tpb21 = Group.objects.get(celcat_name="L1 info s2 TPB21", source=self.source) - - general = Group.objects.get(celcat_name="L1 info (toutes sections et semestres confondus)", source=self.source) + cma = Group.objects.get(celcat_name="L1 info s2 CMA", + source=self.source) + tda2 = Group.objects.get(celcat_name="L1 info s2 TDA2", + source=self.source) + tpa21 = Group.objects.get(celcat_name="L1 info s2 TPA21", + source=self.source) + + cmb = Group.objects.get(celcat_name="L1 info s2 CMB", + source=self.source) + tdb2 = Group.objects.get(celcat_name="L1 info s2 TDB2", + source=self.source) + tpb21 = Group.objects.get(celcat_name="L1 info s2 TPB21", + source=self.source) + + general = Group.objects.get(celcat_name="L1 info (toutes sections et " + "semestres confondus)", source=self.source) self.assertFalse(cma.corresponds_to(*tda2.group_info)) self.assertFalse(cma.corresponds_to(*tpa21.group_info)) @@ -135,7 +159,8 @@ class GroupTestCase(TestCase): tdb2 = Group.objects.get(name="L1 info s2 TDB2", source=self.source) tpb21 = Group.objects.get(name="L1 info s2 TPB21", source=self.source) - general = Group.objects.get(celcat_name="L1 info (toutes sections et semestres confondus)", source=self.source) + general = Group.objects.get(celcat_name="L1 info (toutes sections et " + "semestres confondus)", source=self.source) self.assertEqual(cma.celcat_name, "L1 info s2 CMA") self.assertEqual(tda2.celcat_name, "L1 info s2 TDA2") @@ -145,18 +170,26 @@ 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)") + 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", source=self.source) - tda2 = Group.objects.get(celcat_name="L1 info s2 TDA2", source=self.source) - tpa21 = Group.objects.get(celcat_name="L1 info s2 TPA21", source=self.source) - - cmb = Group.objects.get(celcat_name="L1 info s2 CMB", source=self.source) - tdb2 = Group.objects.get(celcat_name="L1 info s2 TDB2", source=self.source) - tpb21 = Group.objects.get(celcat_name="L1 info s2 TPB21", source=self.source) - - general = Group.objects.get(celcat_name="L1 info (toutes sections et semestres confondus)", source=self.source) + cma = Group.objects.get(celcat_name="L1 info s2 CMA", + source=self.source) + tda2 = Group.objects.get(celcat_name="L1 info s2 TDA2", + source=self.source) + tpa21 = Group.objects.get(celcat_name="L1 info s2 TPA21", + source=self.source) + + cmb = Group.objects.get(celcat_name="L1 info s2 CMB", + source=self.source) + tdb2 = Group.objects.get(celcat_name="L1 info s2 TDB2", + source=self.source) + tpb21 = Group.objects.get(celcat_name="L1 info s2 TPB21", + source=self.source) + + general = Group.objects.get(celcat_name="L1 info (toutes sections et " + "semestres confondus)", source=self.source) self.assertEqual(cma.group_info, ("L1 info", 2, "A")) self.assertEqual(tda2.group_info, ("L1 info", 2, "A2")) -- cgit v1.2.1 From 661fbb63d8f6e3607e7449b25f45613a08a1c6bb Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Sat, 27 Jan 2018 19:28:37 +0100 Subject: Création des tests de la requête de QSJPS On y créée sept salles, avec différents agencements de cours : 0. Le cours se finit dans l’intervalle sélectionné 1. Le cours se commence dans l’intervalle 2. Combinaison de 0. et de 1. 3. Le cours commence avant et fini après l’intervalle 4. Le cours commence et fini pendant l’intervalle 5. Un cours se finit avant et un autre commence après 6. Aucun cours liste des salles. Normalement, seules les salles des cas cinq et six doivent se retrouver dans la liste des salles. --- tests.py | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) (limited to 'tests.py') diff --git a/tests.py b/tests.py index e671973..d19203e 100644 --- a/tests.py +++ b/tests.py @@ -14,9 +14,13 @@ # along with celcatsanitizer. If not, see . from django.test import TestCase -from .models import Course, Group, Source, Timetable, Year +from django.utils import timezone + +from .models import Course, Group, Room, Source, Timetable, Year from .utils import tz_now +import datetime + class CourseTestCase(TestCase): def setUp(self): @@ -200,3 +204,62 @@ class GroupTestCase(TestCase): self.assertEqual(tpb21.group_info, ("L1 info", 2, "B21")) self.assertEqual(general.group_info, ("L1 info", None, "")) + + +class RoomTestCase(TestCase): + def setUp(self): + self.day = datetime.datetime(year=2018, month=1, day=27) + + self.year = Year.objects.create(name="L1") + self.source = Source.objects.create(url="http://example.org/") + + # Pas besoin de créer plus de groupes que ça, ni de le rendre + # global + group = Group.objects.create(celcat_name="L1 info s2 CMA", + source=self.source) + + self.rooms = [Room.objects.create(name="0"), + Room.objects.create(name="1"), + Room.objects.create(name="2"), + Room.objects.create(name="3"), + Room.objects.create(name="4"), + Room.objects.create(name="5"), + Room.objects.create(name="6")] + + hours = [({"begin": datetime.time(hour=14, minute=0)},), + ({"begin": datetime.time(hour=16, minute=0)},), + ({"begin": datetime.time(hour=13, minute=30)}, + {"begin": datetime.time(hour=16, minute=0)}), + ({"begin": datetime.time(hour=14, minute=0), "duration": 4},), + ({"begin": datetime.time(hour=15, minute=30), + "duration": 1},), + ({"begin": datetime.time(hour=13, minute=0)}, + {"begin": datetime.time(hour=17, minute=0)}), + ()] + + for i, room in enumerate(self.rooms): + for rn in hours[i]: + begin = timezone.make_aware( + datetime.datetime.combine(self.day, rn["begin"])) + end = begin + datetime.timedelta(hours=rn.get("duration", 2)) + + course = Course.objects.create(source=self.source, + begin=begin, end=end) + course.groups.add(group) + course.rooms.add(room) + + def test_qsjps(self): + begin = timezone.make_aware(datetime.datetime.combine( + self.day, datetime.time(hour=15, minute=0))) + end = begin + datetime.timedelta(hours=2) + + rooms = Room.objects.qsjps(begin, end) + self.assertEqual(rooms.count(), 2) + + self.assertNotIn(self.rooms[0], rooms) + self.assertNotIn(self.rooms[1], rooms) + self.assertNotIn(self.rooms[2], rooms) + self.assertNotIn(self.rooms[3], rooms) + self.assertNotIn(self.rooms[4], rooms) + self.assertIn(self.rooms[5], rooms) + self.assertIn(self.rooms[6], rooms) -- cgit v1.2.1 From 77a4b75431cfab7348db73b563dd005ce64be14a Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Sun, 28 Jan 2018 11:14:34 +0100 Subject: Changements dans le formatage du code pour le rendre plus lisible --- tests.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'tests.py') diff --git a/tests.py b/tests.py index d19203e..13c8725 100644 --- a/tests.py +++ b/tests.py @@ -49,10 +49,9 @@ class CourseTestCase(TestCase): source=source) for group in (cma, tda2, self.tpa21, cmb, tdb2, self.tpb21,): - course = Course.objects.create(name="{0} course" - .format(group.name), - type="cours", source=source, - begin=dt, end=dt) + course = Course.objects.create( + name="{0} course".format(group.name), type="cours", + source=source, begin=dt, end=dt) course.groups.add(group) def test_get_courses_for_group(self): -- cgit v1.2.1 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(+) (limited to 'tests.py') 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 From 3f88825de1e13ec44822a00589cf9a5913d0a1cd Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Sat, 10 Feb 2018 19:44:01 +0100 Subject: Ajout de cas de tests de groupes avec des parenthèses dans le nom --- tests.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'tests.py') diff --git a/tests.py b/tests.py index bd289cc..c3d34fd 100644 --- a/tests.py +++ b/tests.py @@ -107,6 +107,12 @@ class GroupTestCase(TestCase): # Doit appartenir au groupe au-dessus. Group.objects.create(celcat_name="M1 GC s2 GA111", source=self.source) + # Cas spécial avec les parenthèses + Group.objects.create(celcat_name="M1 CHI-TCCM (EM) (toutes sections et" + " semestres confondus)", source=self.source) + Group.objects.create(celcat_name="M1 CHI-TCCM (EM) s2 TPA12", + source=self.source) + def test_corresponds(self): cma = Group.objects.get(celcat_name="L1 info s2 CMA", source=self.source) @@ -172,6 +178,14 @@ class GroupTestCase(TestCase): self.assertTrue(ga111.corresponds_to(*general.group_info)) self.assertFalse(general.corresponds_to(*ga111.group_info)) + def test_correspond_parenthesis(self): + general = Group.objects.get(celcat_name="M1 CHI-TCCM (EM) (toutes" + " sections et semestres confondus)") + a12 = Group.objects.get(celcat_name="M1 CHI-TCCM (EM) s2 TPA12") + + self.assertTrue(a12.corresponds_to(*general.group_info)) + self.assertFalse(general.corresponds_to(*a12.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) @@ -232,6 +246,14 @@ class GroupTestCase(TestCase): self.assertEqual(general.group_info, ("M1 GC", None, "")) self.assertEqual(ga111.group_info, ("M1 GC", 2, "A111")) + def test_parse_parenthesis(self): + general = Group.objects.get(celcat_name="M1 CHI-TCCM (EM) (toutes" + " sections et semestres confondus)") + a12 = Group.objects.get(celcat_name="M1 CHI-TCCM (EM) s2 TPA12") + + self.assertEqual(general.group_info, ("M1 CHI-TCCM (EM)", None, "")) + self.assertEqual(a12.group_info, ("M1 CHI-TCCM (EM)", 2, "A12")) + class RoomTestCase(TestCase): def setUp(self): -- cgit v1.2.1