예제 #1
0
 def _NewJob():
   job = jqueue._QueuedJob(None, 1,
                           [opcodes.OpTestDelay() for _ in range(10)])
   self.assertEqual(job.CalcStatus(), constants.JOB_STATUS_QUEUED)
   self.assert_(compat.all(op.status == constants.OP_STATUS_QUEUED
                           for op in job.ops))
   return job
예제 #2
0
  def testDefaults(self):
    job_id = 4260
    ops = [
      opcodes.OpTagsGet(),
      opcodes.OpTestDelay(),
      ]

    def _Check(job):
      self.assertEqual(job.id, job_id)
      self.assertEqual(job.log_serial, 0)
      self.assert_(job.received_timestamp)
      self.assert_(job.start_timestamp is None)
      self.assert_(job.end_timestamp is None)
      self.assertEqual(job.CalcStatus(), constants.JOB_STATUS_QUEUED)
      self.assertEqual(job.CalcPriority(), constants.OP_PRIO_DEFAULT)
      self.assert_(repr(job).startswith("<"))
      self.assertEqual(len(job.ops), len(ops))
      self.assert_(compat.all(inp.__getstate__() == op.input.__getstate__()
                              for (inp, op) in zip(ops, job.ops)))
      self.assertRaises(errors.OpExecError, job.GetInfo,
                        ["unknown-field"])
      self.assertEqual(job.GetInfo(["summary"]),
                       [[op.input.Summary() for op in job.ops]])

    job1 = jqueue._QueuedJob(None, job_id, ops)
    _Check(job1)
    job2 = jqueue._QueuedJob.Restore(None, job1.Serialize())
    _Check(job2)
    self.assertEqual(job1.Serialize(), job2.Serialize())
예제 #3
0
    def testPriority(self):
        job_id = 4283
        ops = [opcodes.OpGetTags(priority=constants.OP_PRIO_DEFAULT), opcodes.OpTestDelay()]

        def _Check(job):
            self.assertEqual(job.id, job_id)
            self.assertEqual(job.CalcStatus(), constants.JOB_STATUS_QUEUED)
            self.assert_(repr(job).startswith("<"))

        job = jqueue._QueuedJob(None, job_id, ops)
        _Check(job)
        self.assert_(compat.all(op.priority == constants.OP_PRIO_DEFAULT for op in job.ops))
        self.assertEqual(job.CalcPriority(), constants.OP_PRIO_DEFAULT)

        # Increase first
        job.ops[0].priority -= 1
        _Check(job)
        self.assertEqual(job.CalcPriority(), constants.OP_PRIO_DEFAULT - 1)

        # Mark opcode as finished
        job.ops[0].status = constants.OP_STATUS_SUCCESS
        _Check(job)
        self.assertEqual(job.CalcPriority(), constants.OP_PRIO_DEFAULT)

        # Increase second
        job.ops[1].priority -= 10
        self.assertEqual(job.CalcPriority(), constants.OP_PRIO_DEFAULT - 10)

        # Test increasing first
        job.ops[0].status = constants.OP_STATUS_RUNNING
        job.ops[0].priority -= 19
        self.assertEqual(job.CalcPriority(), constants.OP_PRIO_DEFAULT - 20)
예제 #4
0
 def _CreateJob(self, queue, job_id, ops):
     job = jqueue._QueuedJob(queue, job_id, ops)
     self.assertFalse(job.start_timestamp)
     self.assertFalse(job.end_timestamp)
     self.assertEqual(len(ops), len(job.ops))
     self.assert_(compat.all(op.input == inp for (op, inp) in zip(job.ops, ops)))
     self.assertEqual(job.GetInfo(["ops"]), [[op.__getstate__() for op in ops]])
     return job