def createMentorWithTasks(self, status, org, n=1): """Creates an mentor profile with a task for the current user. """ from tests.gci_task_utils import GCITaskHelper self.createMentor(org) gci_task_helper = GCITaskHelper(self.program) tasks = [] for _ in xrange(n): task = gci_task_helper.createTask(status, org, self.profile) tasks.append(task) return tasks
def createStudentWithTasks(self, status, org, mentor, n=1): """Sets the current user to be a student with specified number of tasks for the current program. """ from tests.gci_task_utils import GCITaskHelper student = self.createStudent() student.student_info.put() gci_task_helper = GCITaskHelper(self.program) tasks = [] for _ in xrange(n): task = gci_task_helper.createTask(status, org, mentor, student) tasks.append(task) return tasks
class OrganizationTest(unittest.TestCase): """Tests the logic for GCIOrganization. """ def setUp(self): self.gci_program_helper = GCIProgramHelper() self.program = self.gci_program_helper.createProgram() self.task_helper = GCITaskHelper(self.program) def testGetRemainingTaskQuota(self): """Tests if the remaining task quota that can be published by a given organization is correctly returned. """ gci_program_helper = GCIProgramHelper() org = gci_program_helper.createOrg() org.task_quota_limit = 5 org.put() mentor = GCIProfileHelper(self.program, False).createOtherUser( '*****@*****.**').createMentor(org) student = GCIProfileHelper(self.program, False).createOtherUser( '*****@*****.**').createStudent() #valid tasks. for _ in xrange(3): self.task_helper.createTask('Closed', org, mentor, student) #invalid tasks. self.task_helper.createTask('Unpublished', org, mentor, student) expected_quota = org.task_quota_limit - 3 actual_quota = organization_logic.getRemainingTaskQuota(org) self.assertEqual(expected_quota, actual_quota) def testParticipating(self): """Tests if a list of all the organizations participating in a given gci program is returned. """ expected = [] actual = organization_logic.participating(self.program) self.assertEqual(expected, actual) org1 = self.gci_program_helper.createOrg() org2 = self.gci_program_helper.createNewOrg() #We need to clear the cache with the key given below as the first call to #the function being tested sets an empty cache with the same key. key = 'participating_orgs_for' + self.program.key().name() memcache.delete(key) expected = set([org1.key(), org2.key()]) actual = organization_logic.participating(self.gci_program_helper.program) actual = set([org.key() for org in actual]) self.assertEqual(expected, set(actual))
def testPostDeleteSubmission(self): """Tests for deleting work. """ self.data.createStudent() self.task.status = 'Claimed' self.task.student = self.data.profile self.task.put() work = GCITaskHelper(self.program).createWorkSubmission( self.task, self.data.profile) self.assertLength(self.task.workSubmissions(), 1) url = '%s?delete_submission' %self._taskPageUrl(self.task) response = self.post(url, {work.key().id(): ''}) self.assertResponseRedirect(response) self.assertLength(self.task.workSubmissions(), 0)
def createTask(self, status=None, org=None, mentor=None, student=None): if not mentor: profile_helper = GCIProfileHelper(self.gci, self.dev_test) mentor = profile_helper.createOtherUser( '*****@*****.**').createMentor(self.org) if not student: profile_helper = GCIProfileHelper(self.gci, self.dev_test) student = profile_helper.createOtherUser( '*****@*****.**').createStudent() if not org: org = self.org if not status: status = 'Open' gci_task_helper = GCITaskHelper(self.program) return gci_task_helper.createTask(status, org, mentor, student)
def testPostSendForReview(self): """Tests for submitting work. """ self.data.createStudent() self.task.status = 'Claimed' self.task.student = self.data.profile # set deadline to far future self.task.deadline = datetime.datetime.utcnow() + datetime.timedelta(days=1) self.task.put() GCITaskHelper(self.program).createWorkSubmission( self.task, self.data.profile) url = '%s?send_for_review' %self._taskPageUrl(self.task) response = self.post(url) task = GCITask.get(self.task.key()) self.assertResponseRedirect(response) self.assertEqual(task.status, 'NeedsReview')
def setUp(self): self.gci_program_helper = GCIProgramHelper() self.program = self.gci_program_helper.createProgram() self.task_helper = GCITaskHelper(self.program)
def setUp(self): self.gci_program_helper = GCIProgramHelper() self.program = self.gci_program_helper.createProgram() self.task_helper = GCITaskHelper(self.program) self.student = GCIProfileHelper(self.program, False).createStudent()