def test_regrade_with_access_rules_tag(self): with mock.patch("course.flow.regrade_session") as mock_regrade: regrade_flow_sessions(self.gopp.course_id, self.gopp.flow_id, access_rules_tag="None exist tag", inprog_value=None ) mock_regrade.return_value = None # no regrade happened self.assertEqual(mock_regrade.call_count, 0) first_session = models.FlowSession.objects.first() first_session.access_rules_tag = "some tag" first_session.save() regrade_flow_sessions(self.gopp.course_id, self.gopp.flow_id, access_rules_tag="some tag", inprog_value=None ) self.assertEqual(mock_regrade.call_count, 1) self.assertIn(first_session, mock_regrade.call_args[0]) self.assertEqual(self.mock_update_state.call_count, 1)
def test_regrade_with_access_rules_tag(self): with mock.patch("course.flow.regrade_session") as mock_regrade: regrade_flow_sessions(self.gopp.course_id, self.gopp.flow_id, access_rules_tag="None exist tag", inprog_value=None) mock_regrade.return_value = None # no regrade happened self.assertEqual(mock_regrade.call_count, 0) first_session = models.FlowSession.objects.first() first_session.access_rules_tag = "some tag" first_session.save() regrade_flow_sessions(self.gopp.course_id, self.gopp.flow_id, access_rules_tag="some tag", inprog_value=None) self.assertEqual(mock_regrade.call_count, 1) self.assertIn(first_session, mock_regrade.call_args[0]) self.assertEqual(self.mock_update_state.call_count, 1)
def test_regrade_not_in_progress_only(self): regrade_flow_sessions(self.gopp.course_id, self.gopp.flow_id, access_rules_tag=None, inprog_value=False) # each previously ended session got page regrades for session in self.ended_sessions: self.assertTrue( models.FlowPageVisitGrade.objects.filter( visit__flow_session=session).count() > 0) self.assertEqual(self.mock_update_state.call_count, self.ended_sessions_count) self.mock_update_state.reset_mock() first_round_visit_grade_count = models.FlowPageVisitGrade.objects.count( ) regrade_flow_sessions(self.gopp.course_id, self.gopp.flow_id, access_rules_tag=None, inprog_value=False) # number of visit grades increased self.assertTrue(models.FlowPageVisitGrade.objects.count() > first_round_visit_grade_count) self.assertEqual(self.mock_update_state.call_count, self.ended_sessions_count)
def test_regrade_not_in_progress_only(self): regrade_flow_sessions(self.gopp.course_id, self.gopp.flow_id, access_rules_tag=None, inprog_value=False ) # each previously ended session got page regrades for session in self.ended_sessions: self.assertTrue( models.FlowPageVisitGrade.objects.filter( visit__flow_session=session).count() > 0 ) self.assertEqual(self.mock_update_state.call_count, self.ended_sessions_count) self.mock_update_state.reset_mock() first_round_visit_grade_count = models.FlowPageVisitGrade.objects.count() regrade_flow_sessions(self.gopp.course_id, self.gopp.flow_id, access_rules_tag=None, inprog_value=False ) # number of visit grades increased self.assertTrue(models.FlowPageVisitGrade.objects.count() > first_round_visit_grade_count) self.assertEqual(self.mock_update_state.call_count, self.ended_sessions_count)
def test_regrade_flow_sessions(self): with mock.patch("course.tasks.Course.objects.get")\ as mock_course_object_get: # This is to avoid errors mock_course_object_get.return_value = self.course regrade_flow_sessions(self.course.pk, self.flow_id, access_rules_tag=None, inprog_value=None) mock_course_object_get.assert_called_once_with(id=self.course.pk)
def test_regrade_flow_sessions(self): with mock.patch("course.tasks.Course.objects.get")\ as mock_course_object_get: # This is to avoid errors mock_course_object_get.return_value = self.course regrade_flow_sessions( self.course.pk, self.flow_id, access_rules_tag=None, inprog_value=None ) mock_course_object_get.assert_called_once_with(id=self.course.pk)
def test_regrade_in_progress_only(self): regrade_flow_sessions(self.gopp.course_id, self.gopp.flow_id, access_rules_tag=None, inprog_value=True) # ended session should not have page regrades self.assertTrue( models.FlowPageVisitGrade.objects.filter( visit__flow_session__in=self.ended_sessions).count() == 0) # in-progress session got no page regrades, because we didn't # submit a page self.assertTrue( models.FlowPageVisitGrade.objects.filter( visit__flow_session__in=self.in_progress_sessions).count() == 0)
def test_regrade_all(self): # inprog_value=None means "any" page will be regraded disregard whether # the session is in-progress regrade_flow_sessions(self.gopp.course_id, self.gopp.flow_id, access_rules_tag=None, inprog_value=None) # each ended session got page regrades self.assertTrue( models.FlowPageVisitGrade.objects.filter( visit__flow_session__in=self.ended_sessions).count() > 0) # each in-progress session also got no page regrades self.assertTrue( models.FlowPageVisitGrade.objects.filter( visit__flow_session__in=self.in_progress_sessions).count() == 0)
def test_regrade_in_progress_only(self): regrade_flow_sessions(self.gopp.course_id, self.gopp.flow_id, access_rules_tag=None, inprog_value=True ) # ended session should not have page regrades self.assertTrue( models.FlowPageVisitGrade.objects.filter( visit__flow_session__in=self.ended_sessions).count() == 0 ) # in-progress session got no page regrades, because we didn't # submit a page self.assertTrue( models.FlowPageVisitGrade.objects.filter( visit__flow_session__in=self.in_progress_sessions).count() == 0 )
def test_regrade_all(self): # inprog_value=None means "any" page will be regraded disregard whether # the session is in-progress regrade_flow_sessions(self.gopp.course_id, self.gopp.flow_id, access_rules_tag=None, inprog_value=None ) # each ended session got page regrades self.assertTrue( models.FlowPageVisitGrade.objects.filter( visit__flow_session__in=self.ended_sessions).count() > 0 ) # each in-progress session also got no page regrades self.assertTrue( models.FlowPageVisitGrade.objects.filter( visit__flow_session__in=self.in_progress_sessions).count() == 0 )