コード例 #1
0
 def test_json(self):
     # jobs should be json serializable
     job = Job()
     json_job = json.loads(job.get_json())
     self.assertEqual(json_job['job_id'], str(job.job_id))
     self.assertEqual(json_job['job_object'], job.job_object)
     self.assertEqual(json_job['state'], job.state)
     self.assertEqual(json_job['priority'], job.priority)
     self.assertEqual(json_job['max_pending_seconds'], job.max_pending_seconds)
     self.assertEqual(json_job['max_runtime_seconds'], job.max_runtime_seconds)
     self.assertEqual(json_job['entered_queue_time'], job.entered_queue_time)
     self.assertEqual(json_job['started_running_time'], job.started_running_time)
     self.assertEqual(json_job['finished_time'], job.finished_time)
     self.assertEqual(json_job['worker_id'], job.worker_id)
     self.assertEqual(json_job['job_results'], job.job_results)
コード例 #2
0
    def test_heartbeat(self):
        job = Job()
        self.assertIs(job.last_heartbeat_time, None)

        # heartbeat should give us a datetime
        job.heartbeat()
        self.assertEqual(type(job.last_heartbeat_time), type(datetime.datetime.now()))

        # heartbeats should increase
        last_heartbeat = job.last_heartbeat_time
        job.heartbeat()
        self.assertTrue(job.last_heartbeat_time > last_heartbeat)

        # heartbeat should match in json
        json_job = json.loads(job.get_json())
        self.assertEqual(json_job['last_heartbeat_time'], str(job.last_heartbeat_time))

        # heartbeat should match after database round trip
        job = Job(self.dbpath)
        db_job = Job.locate(job.job_id, self.dbpath)
        self.assertEqual(job.last_heartbeat_time, db_job.last_heartbeat_time)
        job.heartbeat()
        db_job = Job.locate(job.job_id, self.dbpath)
        self.assertEqual(job.last_heartbeat_time, db_job.last_heartbeat_time)