def setUp(self): super(GradingChangeTest, self).setUp() self.user = factories.UserFactory() self.participation = factories.ParticipationFactory(course=self.course, user=self.user) self.flow_session = factories.FlowSessionFactory( participation=self.participation) self.opportunity1 = factories.GradingOpportunityFactory( course=self.course, identifier="gopp1") self.opportunity2 = factories.GradingOpportunityFactory( course=self.course, identifier="gopp2")
def create_flow_sessions(self, course, n_participations_per_course=5, n_in_progress_sessions_per_participation=1, n_ended_sessions_per_participation=3): """ Create multiple flow_sessions with a single gopp :param course::class:`Course` :param n_participations_per_course: number of participation created for each course :param n_in_progress_sessions_per_participation: number of in_progress sessions created for each participation :param n_ended_sessions_per_participation: number of ended sessions created for each participation """ self.gopp = factories.GradingOpportunityFactory(course=course) participations = factories.ParticipationFactory.create_batch( n_participations_per_course) for i, p in enumerate(participations): factories.FlowSessionFactory.create_batch( size=n_in_progress_sessions_per_participation, participation=p) factories.FlowSessionFactory.create_batch( size=n_ended_sessions_per_participation, participation=p, in_progress=True) all_sessions = models.FlowSession.objects.all() self.all_sessions_count = all_sessions.count() self.in_progress_sessions = list(all_sessions.filter(in_progress=True)) self.ended_sessions = list(all_sessions.filter(in_progress=False)) self.in_progress_sessions_count = len(self.in_progress_sessions) self.ended_sessions_count = len(self.ended_sessions)
def test_clean_fail(self): course2 = factories.CourseFactory(identifier="another-course") opportunity3 = factories.GradingOpportunityFactory(course=course2, identifier="gopp3") gc = factories.GradeChangeFactory(opportunity=opportunity3, participation=self.participation) with self.assertRaises(ValidationError) as cm: gc.clean() expected_error_msg = ("Participation and opportunity must live " "in the same course") self.assertIn(expected_error_msg, str(cm.exception))
def test_grade_change(self): gopp = factories.GradingOpportunityFactory(course=self.course2) factories.GradeChangeFactory( opportunity=gopp, participation=self.course2_student_participation, flow_session=self.course2_sessions[0], points=5) # a gchange without percentage factories.GradeChangeFactory( opportunity=gopp, participation=self.course2_student_participation, flow_session=None) self.navigate_admin_view_by_model(models.GradeChange)
def test_save_model(self): gopp = factories.GradingOpportunityFactory(course=self.course2) add_dict = { "opportunity": gopp.pk, 'participation': self.course2_student_participation.pk, 'state': constants.grade_state_change_types.graded, 'attempt_id': "main", 'max_points': 100, } with self.temporarily_switch_to_user(self.instructor2): self.c.post( self.get_admin_course_add_view_url( models.GradeChange.__name__), add_dict) all_objs = models.GradeChange.objects self.assertEqual(all_objs.count(), 1) self.assertEqual(all_objs.last().creator, self.course2_instructor_participation.user)
def setUpTestData(cls): # noqa super(ExportGradebook, cls).setUpTestData() cls.gopp = factories.GradingOpportunityFactory(course=cls.course) cls.student_participation.user.institutional_id = "1234" cls.student_participation.user.save() cls.session1 = factories.FlowSessionFactory.create( participation=cls.instructor_participation) cls.ta_session = factories.FlowSessionFactory.create( participation=cls.ta_participation) cls.instructor_gc = gc_factory.create( **(cls.gc(participation=cls.instructor_participation, points=90))) cls.student_gc = gc_factory.create(**( cls.gc(participation=cls.student_participation, points=86.66666))) assert models.GradingOpportunity.objects.count() == 1 assert models.GradeChange.objects.count() == 2
def setUpTestData(cls): # noqa super(ImportGradesTest, cls).setUpTestData() cls.gopp = factories.GradingOpportunityFactory(course=cls.course) cls.student_participation.user.institutional_id = "1234" cls.student_participation.user.save() assert models.GradeChange.objects.count() == 0
def test_create_gopp(self): gopp = factories.GradingOpportunityFactory() self.assertEqual(gopp.flow_id, models.GradingOpportunity.objects.first().flow_id)
def setUp(self): super(GradesChangeStateMachineTest, self).setUp() self.time = now() - timedelta(days=1) self.gopp = fctr.GradingOpportunityFactory( course=self.course, aggregation_strategy=g_stragety.use_latest) self.ptcp = self.student_participation