示例#1
0
 def test_grade_returns_students_in_that_grade_in_alphabetical_order(self):
     school = School()
     school.add_student(name='Franklin', grade=5)
     school.add_student(name='Bradley', grade=5)
     school.add_student(name='Jeff', grade=1)
     expected = ['Bradley', 'Franklin']
     self.assertEqual(school.grade(5), expected)
 def test_grade_returns_students_in_that_grade_in_alphabetical_order(self):
     school = School()
     school.add_student(name='Franklin', grade=5)
     school.add_student(name='Bradley', grade=5)
     school.add_student(name='Jeff', grade=1)
     expected = ['Bradley', 'Franklin']
     self.assertEqual(school.grade(5), expected)
示例#3
0
 def test_students_are_sorted_by_name_in_a_grade(self):
     school = School()
     school.add_student(name="Franklin", grade=5)
     school.add_student(name="Bradley", grade=5)
     school.add_student(name="Jeff", grade=1)
     expected = ["Bradley", "Franklin"]
     self.assertEqual(school.grade(5), expected)
示例#4
0
 def test_grade_returns_the_students_in_that_grade_in_alphabetical_order(self):
     school = School()
     school.add_student(name="Franklin", grade=5)
     school.add_student(name="Bradley", grade=5)
     school.add_student(name="Jeff", grade=1)
     expected = ["Bradley", "Franklin"]
     self.assertEqual(school.grade(5), expected)
示例#5
0
 def test_adding_students(self):
     school = School()
     school.add_student(name="Aimee", grade=2)
     school.add_student(name="Amine", grade=2)
     school.add_student(name="Magmine", grade=2)
     expected = ["Aimee", "Amine", "Magmine"]
     self.assertEqual(school.grade(2), expected)
示例#6
0
 def test_student_not_added_to_other_grade_for_multiple_grades(self):
     school = School()
     school.add_student(name="Blair", grade=2)
     school.add_student(name="James", grade=2)
     school.add_student(name="James", grade=3)
     school.add_student(name="Paul", grade=3)
     expected = ["Paul"]
     self.assertEqual(school.grade(3), expected)
示例#7
0
 def test_student_not_added_to_same_grade_more_than_once(self):
     school = School()
     school.add_student(name="Blair", grade=2)
     school.add_student(name="James", grade=2)
     school.add_student(name="James", grade=2)
     school.add_student(name="Paul", grade=2)
     expected = ["Blair", "James", "Paul"]
     self.assertEqual(school.grade(2), expected)
示例#8
0
 def test_grade_is_empty_if_no_students_in_that_grade(self):
     school = School()
     school.add_student(name="Peter", grade=2)
     school.add_student(name="Zoe", grade=2)
     school.add_student(name="Alex", grade=2)
     school.add_student(name="Jim", grade=3)
     expected = []
     self.assertEqual(school.grade(1), expected)
示例#9
0
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)
示例#10
0
 def test_grade_returns_an_empty_list_if_there_are_no_students_in_that_grade(
         self):
     school = School()
     expected = []
     self.assertEqual(school.grade(1), expected)
示例#11
0
 def test_grade_is_empty_if_no_students_in_the_roster(self):
     school = School()
     expected = []
     self.assertEqual(school.grade(1), expected)