示例#1
0
    def test_get_final_w_revision(self):
        """"""
        admin = models.User(email=['*****@*****.**']).put().get()
        student = models.User(email=['*****@*****.**']).put().get()
        course = make_fake_course(admin)
        assignment = make_fake_assignment(course, admin)
        assignment.revision = True
        assignment.put().get()

        backup = models.Backup(
            submitter=student.key, assignment=assignment.key).put()
        revision = models.Backup(
            submitter=student.key, assignment=assignment.key).put()
        submission = models.Submission(backup=backup).put()
        revision = models.Submission(backup=backup).put()
        models.FinalSubmission(
            submitter=student.key,
            assignment=assignment.key,
            group=make_fake_group(assignment, admin, student).key,
            submission=submission).put().get()

        self.assertEqual(revision.get().mark_as_final().get().revision,
                         revision)
        # Make sure the original submission is retained.
        self.assertEqual(revision.get().mark_as_final().get().submission,
                         submission)
示例#2
0
    def test_group_invite(self):
        """Tests group nitpicky invitation behavior"""
        admin = models.User(email=['*****@*****.**']).put().get()
        student = models.User(email=['*****@*****.**']).put().get()
        course = make_fake_course(admin).put().get()
        assignment = make_fake_assignment(course, admin).put().get()
        group = make_fake_group(assignment, admin, student).put().get()

        self.assertIn('is not a valid user', group.invite('*****@*****.**'))
        self.assertIn('is not enrolled in', group.invite(student.email[0]))

        group.invited = [student.key]
        models.Participant.add_role(student.key, course.key, constants.STUDENT_ROLE)
        self.assertIn('has already been invited', group.invite(student.email[0]))

        group.invited = []
        self.assertIn('is already in the group', group.invite(student.email[0]))

        assignment.max_group_size = 2
        assignment.put()
        student2 = models.User(email=['*****@*****.**']).put().get()
        models.Participant.add_role(student2.key, course.key, constants.STUDENT_ROLE)
        self.assertEqual(2, group.assignment.get().max_group_size)
        self.assertEqual(2, len(group.member))
        self.assertEqual('The group is full', group.invite(student2.email[0]))
    def test_group_invite(self):
        """Tests group nitpicky invitation behavior"""
        admin = models.User(email=['*****@*****.**']).put().get()
        student = models.User(email=['*****@*****.**']).put().get()
        course = make_fake_course(admin).put().get()
        assignment = make_fake_assignment(course, admin).put().get()
        group = make_fake_group(assignment, admin, student).put().get()

        self.assertIn('is not a valid user', group.invite('*****@*****.**'))
        self.assertIn('is not enrolled in', group.invite(student.email[0]))

        group.invited = [student.key]
        models.Participant.add_role(student.key, course.key,
                                    constants.STUDENT_ROLE)
        self.assertIn('has already been invited',
                      group.invite(student.email[0]))

        group.invited = []
        self.assertIn('is already in the group',
                      group.invite(student.email[0]))

        assignment.max_group_size = 2
        assignment.put()
        student2 = models.User(email=['*****@*****.**']).put().get()
        models.Participant.add_role(student2.key, course.key,
                                    constants.STUDENT_ROLE)
        self.assertEqual(2, group.assignment.get().max_group_size)
        self.assertEqual(2, len(group.member))
        self.assertEqual('The group is full', group.invite(student2.email[0]))
示例#4
0
 def test_group_lookup_by_assignment(self):
     """Test lookup by assignment"""
     admin = models.User(email=['*****@*****.**']).put().get()
     student = models.User(email=['*****@*****.**']).put().get()
     course = make_fake_course(admin)
     assignment = make_fake_assignment(course, admin).put().get()
     group = make_fake_group(assignment, admin, student).put()
     groups = models.Group.lookup_by_assignment(assignment)
     self.assertIn(group, [g.key for g in groups])
 def test_group_lookup_by_assignment(self):
     """Test lookup by assignment"""
     admin = models.User(email=['*****@*****.**']).put().get()
     student = models.User(email=['*****@*****.**']).put().get()
     course = make_fake_course(admin)
     assignment = make_fake_assignment(course, admin).put().get()
     group = make_fake_group(assignment, admin, student).put()
     groups = models.Group.lookup_by_assignment(assignment)
     self.assertIn(group, [g.key for g in groups])
示例#6
0
    def test_get_final(self):
        """Test get_final"""
        admin = models.User(email=['*****@*****.**']).put().get()
        student = models.User(email=['*****@*****.**']).put().get()
        course = make_fake_course(admin)
        assignment = make_fake_assignment(course, admin).put().get()

        backup = models.Backup(
            submitter=student.key, assignment=assignment.key).put()
        submission = models.Submission(backup=backup).put()
        fsubm = models.FinalSubmission(
            submitter=student.key,
            assignment=assignment.key,
            group=make_fake_group(assignment, admin, student).key,
            submission=submission).put().get()
        self.assertEqual(fsubm, submission.get().get_final())
    def test_get_final_wo_final(self):
        """"""
        admin = models.User(email=['*****@*****.**']).put().get()
        student = models.User(email=['*****@*****.**']).put().get()
        course = make_fake_course(admin)
        assignment = make_fake_assignment(course, admin)
        assignment.revision = True
        assignment.put().get()

        group = make_fake_group(assignment, admin, student).put()

        backup = models.Backup(submitter=student.key,
                               assignment=assignment.key).put()
        submission = models.Submission(backup=backup).put()

        self.assertEqual(submission.get().mark_as_final().get().group, group)
    def test_get_final(self):
        """Test get_final"""
        admin = models.User(email=['*****@*****.**']).put().get()
        student = models.User(email=['*****@*****.**']).put().get()
        course = make_fake_course(admin)
        assignment = make_fake_assignment(course, admin).put().get()

        backup = models.Backup(submitter=student.key,
                               assignment=assignment.key).put()
        submission = models.Submission(backup=backup).put()
        fsubm = models.FinalSubmission(submitter=student.key,
                                       assignment=assignment.key,
                                       group=make_fake_group(
                                           assignment, admin, student).key,
                                       submission=submission).put().get()
        self.assertEqual(fsubm, submission.get().get_final())
示例#9
0
    def test_get_final_wo_final(self):
        """"""
        admin = models.User(email=['*****@*****.**']).put().get()
        student = models.User(email=['*****@*****.**']).put().get()
        course = make_fake_course(admin)
        assignment = make_fake_assignment(course, admin)
        assignment.revision = True
        assignment.put().get()

        group = make_fake_group(assignment, admin, student).put()

        backup = models.Backup(
            submitter=student.key, assignment=assignment.key).put()
        submission = models.Submission(backup=backup).put()

        self.assertEqual(submission.get().mark_as_final().get().group,
                         group)
 def setUp(self):
     super(AssignmentAPITest, self).setUp()
     self.user = self.accounts['dummy_admin']
     self.user1 = self.accounts['dummy_student']
     self.user2 = self.accounts['dummy_student2']
     self.user3 = self.accounts['dummy_student3']
     self.assignment_name = 'Hog Project'
     self._course = make_fake_course(self.user)
     self._course.put()
     self._assign = make_fake_assignment(self._course, self.user)
     self._assign.autograding_enabled = True
     self._assign.name = self._assign.display_name = self.assignment_name
     self._assign.put()
     self._group = make_fake_group(self._assign, self.user1, self.user2)
     self._backup = make_fake_backup(self._assign, self.user2)
     self._submission = make_fake_submission(self._backup)
     self._finalsubmission = make_fake_finalsubmission(
         self._submission, self._assign, self.user2)
示例#11
0
 def setUp(self):
     super(AssignmentAPITest, self).setUp()
     self.user = self.accounts["dummy_admin"]
     self.user1 = self.accounts["dummy_student"]
     self.user2 = self.accounts["dummy_student2"]
     self.user3 = self.accounts["dummy_student3"]
     self.assignment_name = "Hog Project"
     self._course = make_fake_course(self.user)
     self._course.put()
     self._assign = make_fake_assignment(self._course, self.user)
     self._assign.autograding_enabled = True
     self._assign.autograding_key = "NotReallyAnAutograderKey"
     self._assign.name = self._assign.display_name = self.assignment_name
     self._assign.put()
     self._group = make_fake_group(self._assign, self.user1, self.user2)
     self._backup = make_fake_backup(self._assign, self.user2)
     self._submission = make_fake_submission(self._backup)
     self._finalsubmission = make_fake_finalsubmission(self._submission, self._assign, self.user2)