Пример #1
0
    def test_failed_job_machine_removal(self):
        from consuela import Consuela
        from job import Job
        from worker import Worker

        with mock.patch('consuela.terminate_worker') as worker_mock:

            cleaner = Consuela()
            cleaner.job_pub_sub = mock.MagicMock()
            cleaner.job_pub_sub.listen.return_value = [{'data': 'test'}]
            worker = Worker(None, None)
            worker.instance = 'some'
            cleaner.get_worker = mock.MagicMock()
            cleaner.get_worker.return_value = 'id', worker
            cleaner.client = mock.MagicMock()
            cleaner.client.exists.return_value = True
            cleaner.client.get.return_value = pickle.dumps(
                Job('failed', 'something'))
            cleaner.settings = mock.MagicMock()
            cleaner.settings.recycle_workers = True
            cleaner.recycle_worker = mock.MagicMock()
            cleaner.recycle_worker.return_value = False

            cleaner.run()

            assert cleaner.client.exists.call_count == 1
            assert worker_mock.call_count == 0
Пример #2
0
    def test_normal_machine_recycle(self):
        from consuela import Consuela
        from job import Job
        from worker import Worker

        cleaner = Consuela()
        cleaner.job_pub_sub = mock.MagicMock()
        cleaner.job_pub_sub.listen.return_value = [{'data': 'test'}]
        worker = Worker(None, None)
        worker.instance = 'some'
        cleaner.get_worker = mock.MagicMock()
        cleaner.get_worker.return_value = 'id', worker
        cleaner.client = mock.MagicMock()
        cleaner.client.exists.return_value = True
        cleaner.client.get.return_value = pickle.dumps(
            Job('finished', 'something'))
        cleaner.settings = mock.MagicMock()
        cleaner.settings.recycle_workers = True
        cleaner.recycle_worker = mock.MagicMock()
        cleaner.recycle_worker.return_value = True

        cleaner.run()

        assert cleaner.client.exists.call_count == 1
        assert cleaner.client.get.call_count == 1
        assert pickle.loads(
            cleaner.client.set.call_args_list[0][0][1]).job_id is None
Пример #3
0
    def test_failed_job_machine_removal(self):
        from consuela import Consuela
        from job import Job
        from worker import Worker

        with mock.patch('consuela.terminate_worker') as worker_mock:

            cleaner = Consuela()
            cleaner.job_pub_sub = mock.MagicMock()
            cleaner.job_pub_sub.listen.return_value = [{'data': 'test'}]
            worker = Worker(None, None)
            worker.instance = 'some'
            cleaner.get_worker = mock.MagicMock()
            cleaner.get_worker.return_value = 'id', worker
            cleaner.client = mock.MagicMock()
            cleaner.client.exists.return_value = True
            cleaner.client.get.return_value = pickle.dumps(Job('failed', 'something'))
            cleaner.settings = mock.MagicMock()
            cleaner.settings.recycle_workers = True
            cleaner.recycle_worker = mock.MagicMock()
            cleaner.recycle_worker.return_value = False

            cleaner.run()

            assert cleaner.client.exists.call_count == 1
            assert worker_mock.call_count == 0
Пример #4
0
    def test_normal_machine_recycle(self):
        from consuela import Consuela
        from job import Job
        from worker import Worker

        cleaner = Consuela()
        cleaner.job_pub_sub = mock.MagicMock()
        cleaner.job_pub_sub.listen.return_value = [{'data': 'test'}]
        worker = Worker(None, None)
        worker.instance = 'some'
        cleaner.get_worker = mock.MagicMock()
        cleaner.get_worker.return_value = 'id', worker
        cleaner.client = mock.MagicMock()
        cleaner.client.exists.return_value = True
        cleaner.client.get.return_value = pickle.dumps(Job('finished', 'something'))
        cleaner.settings = mock.MagicMock()
        cleaner.settings.recycle_workers = True
        cleaner.recycle_worker = mock.MagicMock()
        cleaner.recycle_worker.return_value = True

        cleaner.run()

        assert cleaner.client.exists.call_count == 1
        assert cleaner.client.get.call_count == 1
        assert pickle.loads(cleaner.client.set.call_args_list[0][0][1]).job_id is None
Пример #5
0
    def test_no_job_machine_removal(self):
        from consuela import Consuela
        from worker import Worker

        with mock.patch('consuela.terminate_worker') as worker_mock:

            cleaner = Consuela()
            cleaner.job_pub_sub = mock.MagicMock()
            cleaner.job_pub_sub.listen.return_value = [{'data': 'test'}]
            worker = Worker(None, None)
            worker.instance = 'some'
            cleaner.get_worker = mock.MagicMock()
            cleaner.get_worker.return_value = 'id', worker
            cleaner.client = mock.MagicMock()
            cleaner.client.exists.return_value = False

            cleaner.run()

            assert cleaner.client.exists.call_count == 1
            assert worker_mock.call_count == 1
Пример #6
0
    def test_no_job_machine_removal(self):
        from consuela import Consuela
        from worker import Worker

        with mock.patch('consuela.terminate_worker') as worker_mock:

            cleaner = Consuela()
            cleaner.job_pub_sub = mock.MagicMock()
            cleaner.job_pub_sub.listen.return_value = [{'data': 'test'}]
            worker = Worker(None, None)
            worker.instance = 'some'
            cleaner.get_worker = mock.MagicMock()
            cleaner.get_worker.return_value = 'id', worker
            cleaner.client = mock.MagicMock()
            cleaner.client.exists.return_value = False

            cleaner.run()

            assert cleaner.client.exists.call_count == 1
            assert worker_mock.call_count == 1