def test_job_is_zombie(self): job = Job(name='Jobname', start=datetime.datetime.now() - datetime.timedelta(hours=13)) self.assertTrue(job.is_zombie()) job = Job(name='Jobname', start=datetime.datetime.now() - datetime.timedelta(hours=11)) self.assertFalse(job.is_zombie())
def test_job_runs(self, mock_session): session = MockedSession() mock_session.query.return_value = session job_info = {'id': 'any id', 'name': 'any name'} session._first = None result = job_runs(job_info) self.assertEqual(result, False) class Job: def __init__(self, start): self.start = start self.id = 'any id' job = Job(datetime.datetime.now()) session._first = job result = job_runs(job_info) self.assertEqual(result, True) job.start = datetime.datetime.now() - datetime.timedelta(hours=11) result = job_runs(job_info) self.assertEqual(result, True) job.start = datetime.datetime.now() - datetime.timedelta(hours=12) result = job_runs(job_info) self.assertEqual(result, False)
def test_on_start_tasks_no_step(self, mock_json, mock_get_job_step, mock_load_message): mock_get_job_step.return_value = Job(id=240), None mock_load_message.return_value = self.start_message, None with self.assertRaises(GOBException): self.task_queue.on_start_tasks(self.start_message)
def test_job_update(self): mockedSession = MockedSession() gobworkflow.storage.storage.session = mockedSession mockedSession.get = lambda id: Job() result = job_update({"id": 123}) self.assertIsInstance(result, Job) self.assertEqual(result.id, 123)
def job_save(job_info): """ Create Job using the information in job_info and store it :param job_info: Job attributes :return: Job instance """ job = Job(**job_info) session.add(job) session.commit() return job
def test_on_start_tasks(self, mock_json, mock_get_job_step, mock_load_message): self.task_queue._validate_dependencies = MagicMock() self.task_queue._create_tasks = MagicMock() self.task_queue._queue_free_tasks_for_jobstep = MagicMock() mock_get_job_step.return_value = Job(id=self.jobid), JobStep( id=self.stepid) mock_load_message.return_value = self.start_message, None self.task_queue.on_start_tasks(self.start_message) mock_load_message.assert_called_with(self.start_message, mock_json.loads, {'stream_contents': False}) mock_get_job_step.assert_called_with(self.jobid, self.stepid) self.task_queue._validate_dependencies.assert_called_with(self.tasks) self.task_queue._create_tasks.assert_called_with( self.jobid, self.stepid, self.process_id, self.tasks, 'pref', self.start_message['contents']['extra_msg'], self.start_message['header']['extra']) self.task_queue._queue_free_tasks_for_jobstep.assert_called_with( self.stepid)
def test_job(self): job = Job(name='Jobname') self.assertEqual(str(job), "<Job Jobname>")