Ejemplo n.º 1
0
 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")
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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))
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
0
 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
Ejemplo n.º 8
0
 def test_create_gopp(self):
     gopp = factories.GradingOpportunityFactory()
     self.assertEqual(gopp.flow_id,
                      models.GradingOpportunity.objects.first().flow_id)
Ejemplo n.º 9
0
 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