Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
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
Пример #5
0
    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())
Пример #6
0
    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)
Пример #7
0
 def test_job(self):
     job = Job(name='Jobname')
     self.assertEqual(str(job), "<Job Jobname>")