Example #1
0
class CourseModelCase(unittest.TestCase):
    def setUp(self):
        # Course with alias
        self.course1 = Course(1, 'TEST123')
        # Course without alias
        self.course2 = Course(2, 'TEST123', 'My test course')

    def test_add_students(self):
        # Add single student
        self.course1.add_students(Student('test1', 1))
        self.assertEqual(len(self.course1.students), 1)

        # Add multiple students
        self.course1.add_students([Student('test2', 2), Student('test3', 3)])
        self.assertEqual(len(self.course1.students), 3)

    def test_remove_students(self):
        # Add single student
        self.course1.add_students(Student('test1', 1))
        self.assertEqual(len(self.course1.students), 1)

        # Add multiple students
        self.course1.add_students([Student('test2', 2), Student('test3', 3)])
        self.assertEqual(len(self.course1.students), 3)

        # Remove a single student
        self.course1.remove_students(Student('test1', 1), unique_attr='lms_id')
        self.assertEqual(len(self.course1.students), 2)

        # Remove multiple students
        self.course1.remove_students(
            [Student('test2', 2), Student('test3', 3)], unique_attr='lms_id')
        self.assertEqual(len(self.course1.students), 0)

    def test_add_assignments(self):
        # Add a single assignment
        datetime_format = '%Y-%m-%dT%H:%M:%SZ'
        self.course1.add_assignments(
            Assignment(1, 'hw1', '2018-01-02T23:59:00Z', None,
                       datetime_format))
        self.assertEqual(len(self.course1.assignments), 1)

        # Add multiple assignments (note that assignment added in previous test already exists, so three total)
        datetime_format = '%Y-%m-%dT%H:%M:%SZ'
        self.course1.add_assignments([
            Assignment(2, 'hw2', '2018-01-02T23:59:00Z', None,
                       datetime_format),
            Assignment(3, 'hw3', '2018-02-03T23:59:00Z', None, datetime_format)
        ])
        self.assertEqual(len(self.course1.assignments), 3)

    def test_remove_assignments(self):
        # Add assignments (so that you can remove them for testing)
        datetime_format = '%Y-%m-%dT%H:%M:%SZ'
        self.course1.add_assignments([
            Assignment(1, 'hw1', '2018-01-02T23:59:00Z', None,
                       datetime_format),
            Assignment(2, 'hw2', '2018-02-03T23:59:00Z', None,
                       datetime_format),
            Assignment(3, 'hw3', '2018-02-03T23:59:00Z', None, datetime_format)
        ])
        self.assertEqual(len(self.course1.assignments), 3)

        # Remove a single assignment
        self.course1.remove_assignments(Assignment(1, 'hw1',
                                                   '2018-01-02T23:59:00Z',
                                                   None, datetime_format),
                                        unique_attr='lms_id')
        self.assertEqual(len(self.course1.assignments), 2)

        # Remove multiple assignments
        self.course1.remove_assignments([
            Assignment(2, 'hw2', '2018-01-02T23:59:00Z', None,
                       datetime_format),
            Assignment(3, 'hw3', '2018-02-03T23:59:00Z', None, datetime_format)
        ],
                                        unique_attr='lms_id')
        self.assertEqual(len(self.course1.assignments), 0)

    def test_create_context_dict(self):
        pass