def test_with_unit_graded_for_different_user(self): self.create_graded_assignment(self.unit, 'graded_unit', self.outcome_service) other_user = UserFactory.create() with check_mongo_calls(3): assignments = outcomes.get_assignments_for_problem( self.unit, other_user.id, self.course.id) self.assertEqual(len(assignments), 0)
def test_with_unit_graded_for_different_user(self): self.create_graded_assignment(self.unit, 'graded_unit', self.outcome_service) other_user = UserFactory.create() with check_mongo_calls(3): assignments = outcomes.get_assignments_for_problem( self.unit, other_user.id, self.course.id ) self.assertEqual(len(assignments), 0)
def test_with_graded_unit(self): self.create_graded_assignment(self.unit, 'graded_unit', self.outcome_service) with check_mongo_calls(3): assignments = outcomes.get_assignments_for_problem( self.unit, self.user_id, self.course.id) self.assertEqual(len(assignments), 1) self.assertEqual(assignments[0].lis_result_sourcedid, 'graded_unit')
def test_with_graded_vertical(self): self.create_graded_assignment(self.vertical, 'graded_vertical', self.outcome_service) with check_mongo_calls(3): assignments = outcomes.get_assignments_for_problem( self.unit, self.user_id, self.course.id ) self.assertEqual(len(assignments), 1) self.assertEqual(assignments[0].lis_result_sourcedid, 'graded_vertical')
def test_with_unit_used_twice(self): self.create_graded_assignment(self.unit, 'graded_unit', self.outcome_service) self.create_graded_assignment(self.unit, 'graded_unit2', self.outcome_service) with check_mongo_calls(3): assignments = outcomes.get_assignments_for_problem( self.unit, self.user_id, self.course.id ) self.assertEqual(len(assignments), 2) self.assertEqual(assignments[0].lis_result_sourcedid, 'graded_unit') self.assertEqual(assignments[1].lis_result_sourcedid, 'graded_unit2')
def test_with_unit_graded_for_multiple_consumers(self): other_outcome_service = self.create_outcome_service('second_consumer') self.create_graded_assignment(self.unit, 'graded_unit', self.outcome_service) self.create_graded_assignment(self.unit, 'graded_unit2', other_outcome_service) with check_mongo_calls(3): assignments = outcomes.get_assignments_for_problem( self.unit, self.user_id, self.course.id ) self.assertEqual(len(assignments), 2) self.assertEqual(assignments[0].lis_result_sourcedid, 'graded_unit') self.assertEqual(assignments[1].lis_result_sourcedid, 'graded_unit2') self.assertEqual(assignments[0].outcome_service, self.outcome_service) self.assertEqual(assignments[1].outcome_service, other_outcome_service)
def increment_assignment_versions(course_key, usage_key, user_id): """ Update the version numbers for all assignments that are affected by a score change event. Returns a list of all affected assignments. """ problem_descriptor = modulestore().get_item(usage_key) # Get all assignments involving the current problem for which the campus LMS # is expecting a grade. There may be many possible graded assignments, if # a problem has been added several times to a course at different # granularities (such as the unit or the vertical). assignments = outcomes.get_assignments_for_problem(problem_descriptor, user_id, course_key) for assignment in assignments: assignment.version_number += 1 assignment.save() return assignments
def test_with_no_graded_assignments(self): with check_mongo_calls(3): assignments = outcomes.get_assignments_for_problem( self.unit, self.user_id, self.course.id) self.assertEqual(len(assignments), 0)
def test_with_no_graded_assignments(self): with check_mongo_calls(3): assignments = outcomes.get_assignments_for_problem( self.unit, self.user_id, self.course.id ) self.assertEqual(len(assignments), 0)