Example #1
0
 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
Example #2
0
 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))
Example #4
0
  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)
Example #6
0
  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)
Example #8
0
 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()