class SchoolTest(unittest.TestCase): def setUp(self): self.school = School("Haleakala Hippy School") # def test_an_empty_school(self): # self.assertEqual({}, self.school.db) # def test_add_student(self): # self.school.add("Aimee", 2) # self.assertEqual({2: {"Aimee"}}, self.school.db) # def test_add_more_students_in_same_class(self): # self.school.add("James", 2) # self.school.add("Blair", 2) # self.school.add("Paul", 2) # self.assertEqual({2: {"James", "Blair", "Paul"}}, self.school.db) # def test_add_students_to_different_grades(self): # self.school.add("Chelsea", 3) # self.school.add("Logan", 7) # self.assertEqual({3: {"Chelsea"}, 7: {"Logan"}}, self.school.db) # def test_get_students_in_a_grade(self): # self.school.add("Franklin", 5) # self.school.add("Bradley", 5) # self.school.add("Jeff", 1) # self.assertEqual({"Franklin", "Bradley"}, self.school.grade(5)) # def test_get_students_in_a_non_existant_grade(self): # self.assertEqual(set(), self.school.grade(1)) def test_sort_school(self): students = [ (3, ("Kyle",)), (4, ("Christopher", "Jennifer",)), (6, ("Kareem",)) ] for grade, students_in_grade in students: for student in students_in_grade: self.school.add(student, grade) result = self.school.sort() # Attempts to catch false positives self.assertTrue(isinstance(result, Sequence) or isinstance(result, GeneratorType) or callable(getattr(result, '__reversed__', False))) result_list = list(result.items() if hasattr(result, "items") else result) self.assertEqual(result_list, students)
class SchoolTest(unittest.TestCase): def setUp(self): self.school = School("Haleakala Hippy School") def test_an_empty_school(self): self.assertEqual({}, self.school.db) def test_add_student(self): self.school.add("Aimee", 2) self.assertEqual({2: {"Aimee"}}, self.school.db) def test_add_more_students_in_same_class(self): self.school.add("James", 2) self.school.add("Blair", 2) self.school.add("Paul", 2) self.assertEqual({2: {"James", "Blair", "Paul"}}, self.school.db) def test_add_students_to_different_grades(self): self.school.add("Chelsea", 3) self.school.add("Logan", 7) self.assertEqual({3: {"Chelsea"}, 7: {"Logan"}}, self.school.db) def test_get_students_in_a_grade(self): self.school.add("Franklin", 5) self.school.add("Bradley", 5) self.school.add("Jeff", 1) self.assertEqual({"Franklin", "Bradley"}, self.school.grade(5)) def test_get_students_in_a_non_existant_grade(self): self.assertEqual(set(), self.school.grade(1)) def test_sort_school(self): students = [ (3, ("Kyle",)), (4, ("Christopher", "Jennifer",)), (6, ("Kareem",)) ] for grade, students_in_grade in students: for student in students_in_grade: self.school.add(student, grade) result = self.school.sort() # Attempts to catch false positives self.assertTrue(isinstance(result, Sequence) or isinstance(result, GeneratorType) or callable(getattr(result, '__reversed__', False))) result_list = list(result.items() if hasattr(result, "items") else result) self.assertEqual(result_list, students)
class SchoolTest(unittest.TestCase): def setUp(self): self.school = School("Haleakala Hippy School") def test_an_empty_school(self): self.assertEqual({}, self.school.db) def test_add_student(self): self.school.add("Aimee", 2) self.assertEqual({2: {"Aimee"}}, self.school.db) def test_add_more_students_in_same_class(self): self.school.add("James", 2) self.school.add("Blair", 2) self.school.add("Paul", 2) self.assertEqual({2: {"James", "Blair", "Paul"}}, self.school.db) def test_add_students_to_different_grades(self): self.school.add("Chelsea", 3) self.school.add("Logan", 7) self.assertEqual({3: {"Chelsea"}, 7: {"Logan"}}, self.school.db) def test_get_students_in_a_grade(self): self.school.add("Franklin", 5) self.school.add("Bradley", 5) self.school.add("Jeff", 1) self.assertEqual({"Franklin", "Bradley"}, self.school.grade(5)) def test_get_students_in_a_non_existant_grade(self): self.assertEqual(set(), self.school.grade(1)) def test_sort_school(self): self.school.add("Jennifer", 4) self.school.add("Kareem", 6) self.school.add("Christopher", 4) self.school.add("Kyle", 3) sorted_students = { 3: ("Kyle",), 4: ("Christopher", "Jennifer",), 6: ("Kareem",) } self.assertEqual(sorted_students, self.school.sort())
class SchoolTest(unittest.TestCase): def setUp(self): self.school = School("Haleakala Hippy School") def test_an_empty_school(self): self.assertEqual({}, self.school.db) def test_add_student(self): self.school.add("Aimee", 2) self.assertEqual({2: {"Aimee"}}, self.school.db) def test_add_more_students_in_same_class(self): self.school.add("James", 2) self.school.add("Blair", 2) self.school.add("Paul", 2) self.assertEqual({2: {"James", "Blair", "Paul"}}, self.school.db) def test_add_students_to_different_grades(self): self.school.add("Chelsea", 3) self.school.add("Logan", 7) self.assertEqual({3: {"Chelsea"}, 7: {"Logan"}}, self.school.db) def test_get_students_in_a_grade(self): self.school.add("Franklin", 5) self.school.add("Bradley", 5) self.school.add("Jeff", 1) self.assertEqual({"Franklin", "Bradley"}, self.school.grade(5)) def test_get_students_in_a_non_existant_grade(self): self.assertEqual(None, self.school.grade(1)) def test_sort_school(self): self.school.add("Jennifer", 4) self.school.add("Kareem", 6) self.school.add("Christopher", 4) self.school.add("Kyle", 3) sorted_students = { 3: ("Kyle",), #For some reason this test includes an extra comma at the end of each dictionary value. The values are also now in parentheses, not sets. 4: ("Christopher", "Jennifer",), 6: ("Kareem",) } self.assertEqual(sorted_students, self.school.sort())
class SchoolTest(unittest.TestCase): def setUp(self): self.school = School("Haleakala Hippy School") def test_an_empty_school(self): self.assertEqual({}, self.school.db) def test_add_student(self): self.school.add("Aimee", 2) self.assertEqual({2: {"Aimee"}}, self.school.db) def test_add_more_students_in_same_class(self): self.school.add("James", 2) self.school.add("Blair", 2) self.school.add("Paul", 2) self.assertEqual({2: {"James", "Blair", "Paul"}}, self.school.db) def test_add_students_to_different_grades(self): self.school.add("Chelsea", 3) self.school.add("Logan", 7) self.assertEqual({3: {"Chelsea"}, 7: {"Logan"}}, self.school.db) def test_get_students_in_a_grade(self): self.school.add("Franklin", 5) self.school.add("Bradley", 5) self.school.add("Jeff", 1) self.assertEqual({"Franklin", "Bradley"}, self.school.grade(5)) def test_get_students_in_a_non_existant_grade(self): self.assertEqual(set(), self.school.grade(1)) def test_sort_school(self): self.school.add("Jennifer", 4) self.school.add("Kareem", 6) self.school.add("Christopher", 4) self.school.add("Kyle", 3) sorted_students = { 3: ("Kyle", ), 4: ( "Christopher", "Jennifer", ), 6: ("Kareem", ) } self.assertEqual(sorted_students, self.school.sort())
class SchoolTest(unittest.TestCase): def setUp(self): # assertCountEqual is py3, py2 only knowns assetItemsEqual if not hasattr(self, 'assertCountEqual'): self.assertCountEqual = self.assertItemsEqual self.school = School("Haleakala Hippy School") def test_an_empty_school(self): for n in range(1, 9): self.assertCountEqual(set(), self.school.grade(n)) def test_add_student(self): self.school.add("Aimee", 2) self.assertCountEqual(("Aimee",), self.school.grade(2)) def test_add_more_students_in_same_class(self): self.school.add("James", 2) self.school.add("Blair", 2) self.school.add("Paul", 2) self.assertCountEqual(("James", "Blair", "Paul"), self.school.grade(2)) def test_add_students_to_different_grades(self): self.school.add("Chelsea", 3) self.school.add("Logan", 7) self.assertCountEqual(("Chelsea",), self.school.grade(3)) self.assertCountEqual(("Logan",), self.school.grade(7)) def test_get_students_in_a_grade(self): self.school.add("Franklin", 5) self.school.add("Bradley", 5) self.school.add("Jeff", 1) self.assertCountEqual(("Franklin", "Bradley"), self.school.grade(5)) def test_get_students_in_a_non_existant_grade(self): self.assertCountEqual(set(), self.school.grade(1)) def test_sort_school(self): students = [ (3, ("Kyle",)), (4, ("Christopher", "Jennifer",)), (6, ("Kareem",)) ] for grade, students_in_grade in students: for student in students_in_grade: self.school.add(student, grade) result = self.school.sort() # Attempts to catch false positives self.assertTrue(isinstance(result, Sequence) or isinstance(result, GeneratorType) or callable(getattr(result, '__reversed__', False))) result_list = list(result.items() if hasattr(result, "items") else result) self.assertEqual(result_list, students)