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