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_or_create(self): """TEsts that group lookup_or_create works""" 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() models.Group._lookup_or_create(student.key, assignment.key)
def test_participant_can(self): """Tests that all users can get, and that only staff can index""" get = Need('get') self.assertTrue(models.Participant._can(None, get, None, None)) need = Need('index') student = models.User(email=['*****@*****.**']).put().get() admin = models.User(email=['*****@*****.**']).put().get() course = make_fake_course(student) models.Participant.add_role( student.key, course.key, constants.STUDENT_ROLE) models.Participant.add_role( admin.key, course.key, constants.STAFF_ROLE) query = models.Participant.query() results = models.Participant._can(student, need, course, query).fetch() self.assertNotEqual(None, results) self.assertEqual(1, len(results)) results = models.Participant._can(admin, need, course, query).fetch() self.assertNotEqual(None, results) self.assertEqual(2, len(results))
def test_participant_can(self): """Tests that all users can get, and that only staff can index""" get = Need('get') self.assertTrue(models.Participant._can(None, get, None, None)) need = Need('index') student = models.User(email=['*****@*****.**']).put().get() admin = models.User(email=['*****@*****.**']).put().get() course = make_fake_course(student) models.Participant.add_role(student.key, course.key, constants.STUDENT_ROLE) models.Participant.add_role(admin.key, course.key, constants.STAFF_ROLE) query = models.Participant.query() results = models.Participant._can(student, need, course, query).fetch() self.assertNotEqual(None, results) self.assertEqual(1, len(results)) results = models.Participant._can(admin, need, course, query).fetch() self.assertNotEqual(None, results) self.assertEqual(2, len(results))
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 setUp(self): super(URLsUnitTest, self).setUp() self.accounts = self.get_accounts() for user in self.accounts.values(): user.put() self._course = make_fake_course(self.accounts['admin']) self._course.put() self.user = None
def get_basic_instance(self, mutate=True): name = 'testcourse' if mutate: name += str(self.num) self.num += 1 rval = make_fake_course(self.user) rval.name = name return rval
def get_basic_instance(self, mutate=True): name = "testcourse" if mutate: name += str(self.num) self.num += 1 rval = make_fake_course(self.user) rval.name = name return rval
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 setUp(self): super(GroupAPITest, self).setUp() self.course = make_fake_course(self.user) self.course.put() self.assignment = make_fake_assignment(self.course, self.user) self.assignment.put() for student_name in [a for a in self.accounts if 'student' in a]: s = self.accounts[student_name] models.Participant.add_role(s, self.course, constants.STUDENT_ROLE)
def test_course_get_students_function(self): """Tests that get_students works""" student_key = models.User(email=['*****@*****.**']).put() course = make_fake_course(student_key.get()) models.Participant.add_role( student_key, course.key, constants.STUDENT_ROLE) enrollment = course.get_students(student_key) students = [student.user for student in enrollment] self.assertIn(student_key, students)
def test_course_get_students_function(self): """Tests that get_students works""" student_key = models.User(email=['*****@*****.**']).put() course = make_fake_course(student_key.get()) models.Participant.add_role(student_key, course.key, constants.STUDENT_ROLE) enrollment = course.get_students(student_key) self.assertTrue(isinstance(enrollment, list)) students = [student.user for student in enrollment] self.assertIn(student_key, students)
def setUp(self): BaseTestCase.setUp(self) self._caught_exception = None self.user = self.get_basic_user() self.admin = models.User(email=['*****@*****.**'], is_admin=True) self.admin.put() self.course = make_fake_course(self.admin) self.course.put() self.assign = make_fake_assignment(self.course, self.admin) self.assign.put()
def get_basic_instance(self, mutate=True): name = 'proj' if mutate: name += str(self.num) self.num += 1 self._course = make_fake_course(self.user) self._course.put() self.enroll_accounts(self._course) self._assignment = make_fake_assignment(self._course, self.user) self._assignment.name = name return self._assignment
def setUp(self): super(SearchAPITest, self).setUp() self.assignment_name = 'Hog Project' self.user = self.accounts['dummy_student2'] self._course = make_fake_course(self.user) self._course.put() self._assign = make_fake_assignment(self._course, self.user) self._assign.name = self._assign.display_name = self.assignment_name self._assign.put() self._backup = make_fake_backup(self._assign, self.user) self._submission = make_fake_submission(self._backup) self._finalsubmission = make_fake_finalsubmission(self._submission, self._assign, self.user)
def setUp(self): super(AutoUpdateTest, self).setUp() due_date = datetime.datetime.now() + datetime.timedelta(days=2) self.user = models.User.get_or_insert('*****@*****.**') self.course = make_fake_course(self.user) self.course.put() self.assignment = make_fake_assignment(self.course, self.user) self.assignment.put() self.version = models.Version.get_or_insert('ok', base_url="https://www.baseurl.com") self.invalid = False
def setUp(self): super(SearchAPITest, self).setUp() self.assignment_name = 'Hog Project' self.user = self.accounts['dummy_student2'] self._course = make_fake_course(self.user) self._course.put() self._assign = make_fake_assignment(self._course, self.user) self._assign.name = self._assign.display_name = self.assignment_name self._assign.put() self._backup = make_fake_backup(self._assign, self.user) self._submission = make_fake_submission(self._backup) self._finalsubmission = make_fake_finalsubmission( self._submission, self._assign, self.user)
def setUp(self): super(QueueAPITest, self).setUp() self.user = self.accounts['dummy_admin'] self.staff = self.accounts['dummy_staff'] 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.name = self._assign.display_name = self.assignment_name self._assign.put()
def setUp(self): super(BackupAPITest, self).setUp() self.assignment_name = u'test assignment' self._course = make_fake_course(self.user) self._course.put() self._assign = make_fake_assignment(self._course, self.user) self._assign.name = self.assignment_name self._assign.put() self._submitter = self.accounts['dummy_student'] self._submitter.put() self.logout() self.login('dummy_student')
def setUp(self): super(UtilsTestCase, 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.name = self._assign.display_name = self.assignment_name self._assign.put() self._backup = make_fake_backup(self._assign, self.user2) self._submission = make_fake_submission(self._backup)
def test_backup_index(self): """Tests permissions for backup""" admin = models.User(email=['*****@*****.**']).put().get() course = make_fake_course(admin) models.Participant.add_role(admin.key, course.key, constants.STAFF_ROLE) index = Need('index') assignment = make_fake_assignment(course, admin) backup = models.Backup(submitter=admin.key, assignment=assignment.key).put().get() query = models.Backup.query() self.assertNotEqual(False, models.Backup._can(admin, index, backup, query))
def test_backup_index(self): """Tests permissions for backup""" admin = models.User(email=['*****@*****.**']).put().get() course = make_fake_course(admin) models.Participant.add_role( admin.key, course.key, constants.STAFF_ROLE) index = Need('index') assignment = make_fake_assignment(course, admin) backup = models.Backup( submitter=admin.key, assignment=assignment.key).put().get() query = models.Backup.query() self.assertNotEqual( False, models.Backup._can(admin, index, backup, query))
def setUp(self): super(AutoUpdateTest, self).setUp() due_date = datetime.datetime.now() + datetime.timedelta(days=2) self.user = models.User.get_or_insert('*****@*****.**') self.course = make_fake_course(self.user) self.course.put() self.assignment = make_fake_assignment(self.course, self.user) self.assignment.put() self.version = models.Version.get_or_insert( 'ok', base_url="https://www.baseurl.com") self.invalid = False
def setUp(self): super(AnalyticsAPITest, 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.name = self._assign.display_name = self.assignment_name self._assign.put() 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 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.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)
def setUp(self): super(SubmissionAPITest, 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.name = self._assign.display_name = self.assignment_name self._assign.put() 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) self._score = models.Score(score=2).put() self._submission.score = [self._score.get()] self._submission.put()
def setUp(self): super(SubmissionAPITest, 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.name = self._assign.display_name = self.assignment_name self._assign.put() 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) self._score = models.Score(score=2, tag="composition").put() self._submission.score = [self._score.get()] self._submission.put()
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 test_assignment_comparator(self): """Tests that assignments can be compared like numbers... by due date""" creator_key = models.User(email=['*****@*****.**']).put() course = make_fake_course(creator_key.get()) assignment1 = make_fake_assignment(course, creator_key.get()) assignment2 = models.Assignment(name='hw1', points=3, display_name="CS 61A", templates="[]", course=course.key, creator=creator_key, max_group_size=4, due_date=datetime.datetime.now() + datetime.timedelta(days=3)) self.assertTrue(assignment2 < assignment1) self.assertFalse(assignment1 < assignment2) lst = [assignment1, assignment2] lst = sorted(lst) self.assertEqual(lst, [assignment2, assignment1])
def test_assignment_comparator(self): """Tests that assignments can be compared like numbers... by due date""" creator_key = models.User(email=['*****@*****.**']).put() course = make_fake_course(creator_key.get()) assignment1 = make_fake_assignment(course, creator_key.get()) assignment2 = models.Assignment( name='hw1', points=3, display_name="CS 61A", templates="[]", course=course.key, creator=creator_key, max_group_size=4, due_date=datetime.datetime.now() + datetime.timedelta(days=3)) self.assertTrue(assignment2 < assignment1) self.assertFalse(assignment1 < assignment2) lst = [assignment1, assignment2] lst = sorted(lst) self.assertEqual(lst, [assignment2, assignment1])
def test_course_get_students_basic(self): """Tests that get_students functions""" student_key = models.User(email=['*****@*****.**']).put() course = make_fake_course(student_key.get()) students = course.get_students(student_key) self.assertTrue(isinstance(students, list))