def test_run_timeout(self): from job_dictator import JobDictator from job import Job from worker import Worker dictator = JobDictator() dictator.client = mock.MagicMock() dictator.client.keys.return_value = ['job-', 'jm-'] job = Job('running', 'something') job.run_started_on = datetime.now() - timedelta(minutes=10) worker = Worker('job-', None) dictator.client.get.side_effect = [pickle.dumps(job), pickle.dumps(worker)] self.request_mock.get = mock.MagicMock() dictator.settings = mock.MagicMock() dictator.settings.job_timeout = 1 dictator.headers = mock.MagicMock() returner = mock.MagicMock() returner.content = 'status:ok' self.request_mock.get.return_value = returner dictator.pull = mock.MagicMock() dictator.aladeen() assert dictator.client.keys.call_count == 2 assert dictator.client.get.call_count == 2 assert dictator.client.set.call_count == 1 assert dictator.client.publish.call_count == 1 assert dictator.pull.call_count == 0 assert pickle.loads(dictator.client.set.call_args_list[0][0][1]).state == 'broken'
def test_run_result(self): from job_dictator import JobDictator from job import Job from worker import Worker dictator = JobDictator() dictator.client = mock.MagicMock() dictator.client.keys.return_value = ['job-', 'jm-'] job = Job('run_succeeded', 'something') worker = Worker('job-', None) dictator.client.get.side_effect = [pickle.dumps(job), pickle.dumps(worker)] self.request_mock.get = mock.MagicMock() dictator.settings = mock.MagicMock() dictator.headers = mock.MagicMock() returner = mock.MagicMock() returner.content = 'status:ok' self.request_mock.get.return_value = returner dictator.pull = mock.MagicMock() dictator.aladeen() assert dictator.client.keys.call_count == 2 assert dictator.client.get.call_count == 2 assert dictator.client.set.call_count == 1 assert dictator.client.publish.call_count == 1 assert dictator.pull.call_count == 1
def test_run_timeout(self): from job_dictator import JobDictator from job import Job from worker import Worker dictator = JobDictator() dictator.client = mock.MagicMock() dictator.client.keys.return_value = ["job-", "jm-"] job = Job("running", "something") job.run_started_on = datetime.now() - timedelta(minutes=10) worker = Worker("job-", None) dictator.client.get.side_effect = [pickle.dumps(job), pickle.dumps(worker)] self.request_mock.get = mock.MagicMock() dictator.settings = mock.MagicMock() dictator.settings.job_timeout = 1 dictator.headers = mock.MagicMock() returner = mock.MagicMock() returner.content = "status:ok" self.request_mock.get.return_value = returner dictator.pull = mock.MagicMock() dictator.aladeen() assert dictator.client.keys.call_count == 2 assert dictator.client.get.call_count == 2 assert dictator.client.set.call_count == 1 assert dictator.client.publish.call_count == 1 assert dictator.pull.call_count == 0 assert pickle.loads(dictator.client.set.call_args_list[0][0][1]).state == "broken"
def test_run_result(self): from job_dictator import JobDictator from job import Job from worker import Worker dictator = JobDictator() dictator.client = mock.MagicMock() dictator.client.keys.return_value = ["job-", "jm-"] job = Job("run_succeeded", "something") worker = Worker("job-", None) dictator.client.get.side_effect = [pickle.dumps(job), pickle.dumps(worker)] self.request_mock.get = mock.MagicMock() dictator.settings = mock.MagicMock() dictator.headers = mock.MagicMock() returner = mock.MagicMock() returner.content = "status:ok" self.request_mock.get.return_value = returner dictator.pull = mock.MagicMock() dictator.aladeen() assert dictator.client.keys.call_count == 2 assert dictator.client.get.call_count == 2 assert dictator.client.set.call_count == 1 assert dictator.client.publish.call_count == 1 assert dictator.pull.call_count == 1
import os from flask import Flask, Response, jsonify, request from flask_autodoc.autodoc import Autodoc from repository import JobRepository from job_dictator import JobDictator from batch_midwife import BatchMidwife app = Flask(__name__) auto = Autodoc(app) app.config['REPOSITORY'] = JobRepository() if not os.path.exists('/tmp/store'): os.mkdir('/tmp/store') app.config['JD'] = JobDictator() app.config['JD'].start() app.config['BMW'] = BatchMidwife() app.config['BMW'].start() def __get_jobs__(): repository = app.config['REPOSITORY'] return Response(dumps(repository.get_all_jobs()), mimetype='application/json') def __get_batch__(): repository = app.config['REPOSITORY'] return Response(dumps(repository.get_all_batches()),