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)
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_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_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())
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)
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)