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)
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)