def test_check_workers_no_children(self, waitpid_mock): worker = MagicMock(queues='testqueues', pid='testpid') master = WorkerMaster() master.workers = [worker] waitpid_mock.side_effect = OSError(errno.ECHILD, 'No child processes') self.assertFalse(master._check_workers()) waitpid_mock.assert_called_with(0, 0) self.assertEqual(None, worker.pid)
def test_check_workers_no_children(self, waitpid_mock): worker = MagicMock(queues="testqueues", pid="testpid") master = WorkerMaster() master.workers = [worker] waitpid_mock.side_effect = OSError(errno.ECHILD, "No child processes") self.assertFalse(master._check_workers()) waitpid_mock.assert_called_with(0, 0) self.assertEqual(None, worker.pid)
def test_check_workers_other_oserror(self, waitpid_mock): worker = MagicMock(queues="testqueues", pid="testpid") master = WorkerMaster() master.workers = [worker] waitpid_mock.side_effect = OSError(99, "Something else") self.assertRaises(OSError, master._check_workers) waitpid_mock.assert_called_with(0, 0) self.assertEqual("testpid", worker.pid)
def test_restart_workers(self): worker1 = MagicMock(queues="testqueues", pid="testpid1") worker2 = MagicMock(queues="testqueues", pid=None) master = WorkerMaster() master._start_worker = MagicMock(return_value="testpid2") master.workers = [worker1, worker2] master._restart_workers() master._start_worker.assert_called_once_with(worker2)
def test_restart_workers(self): worker1 = MagicMock(queues='testqueues', pid='testpid1') worker2 = MagicMock(queues='testqueues', pid=None) master = WorkerMaster() master._start_worker = MagicMock(return_value='testpid2') master.workers = [worker1, worker2] master._restart_workers() master._start_worker.assert_called_once_with(worker2)
def test_check_workers_other_oserror(self, waitpid_mock): worker = MagicMock(queues='testqueues', pid='testpid') master = WorkerMaster() master.workers = [worker] waitpid_mock.side_effect = OSError(99, 'Something else') self.assertRaises(OSError, master._check_workers) waitpid_mock.assert_called_with(0, 0) self.assertEqual('testpid', worker.pid)
def test_check_workers(self, waitpid_mock): worker = MagicMock(queues="testqueues", pid="testpid") master = WorkerMaster() master.workers = [worker] waitpid_mock.return_value = ("testpid", 0) self.assertTrue(master._check_workers()) waitpid_mock.assert_called_with(0, 0) self.assertEqual(None, worker.pid)
def test_check_workers(self, waitpid_mock): worker = MagicMock(queues='testqueues', pid='testpid') master = WorkerMaster() master.workers = [worker] waitpid_mock.return_value = ('testpid', 0) self.assertTrue(master._check_workers()) waitpid_mock.assert_called_with(0, 0) self.assertEqual(None, worker.pid)
def test_check_workers_other_oserror(self, waitpid_mock): exit_cb = MagicMock() worker = MagicMock(queues='testqueues', pid='testpid') master = WorkerMaster('testapp', exit_callback=exit_cb) master.workers = [worker] waitpid_mock.side_effect = OSError(99, 'Something else') self.assertRaises(OSError, master._check_workers) waitpid_mock.assert_called_with(0, 0) self.assertEqual('testpid', worker.pid)
def test_check_workers_no_children(self, waitpid_mock): exit_cb = MagicMock() worker = MagicMock(queues='testqueues', pid='testpid') master = WorkerMaster('testapp', exit_callback=exit_cb) master.workers = [worker] waitpid_mock.side_effect = OSError(errno.ECHILD, 'No child processes') self.assertFalse(master._check_workers()) waitpid_mock.assert_called_with(0, 0) exit_cb.assert_called_with('testqueues', 'testpid', None) self.assertEqual(None, worker.pid)
def test_check_workers(self, waitpid_mock): exit_cb = MagicMock() worker = MagicMock(queues='testqueues', pid='testpid') master = WorkerMaster('testapp', exit_callback=exit_cb) master.workers = [worker] waitpid_mock.return_value = ('testpid', 0) self.assertTrue(master._check_workers()) waitpid_mock.assert_called_with(0, 0) exit_cb.assert_called_with('testqueues', 'testpid', 0) self.assertEqual(None, worker.pid)
def test_restart_workers(self): start_cb = MagicMock() worker1 = MagicMock(queues='testqueues', pid='testpid1') worker2 = MagicMock(queues='testqueues', pid=None) master = WorkerMaster('testapp', start_callback=start_cb) master._start_worker = MagicMock(return_value='testpid2') master.workers = [worker1, worker2] master._restart_workers() master._start_worker.assert_called_once_with(worker2) start_cb.assert_called_with('testqueues', 'testpid2')
def test_wait(self, waitpid_mock): waitpid_mock.side_effect = [("testpid1", 0), OSError(errno.ESRCH, "No such pid"), OSError(99, "Something else")] worker1 = MagicMock(queues=None, pid="testpid1") worker2 = MagicMock(queues=None, pid="testpid2") worker3 = MagicMock(queues=None, pid="testpid3") master = WorkerMaster() master.workers = [worker1, worker2, worker3] self.assertRaises(OSError, master.wait) waitpid_mock.assert_any_call("testpid1", 0) waitpid_mock.assert_any_call("testpid2", 0) waitpid_mock.assert_any_call("testpid3", 0)
def test_stop_workers(self, kill_mock): kill_mock.side_effect = [None, OSError(errno.ESRCH, "No such pid"), OSError(99, "Something else")] worker1 = MagicMock(pid="testpid1") worker2 = MagicMock(pid="testpid2") worker3 = MagicMock(pid="testpid3") master = WorkerMaster() master.workers = [worker1, worker2, worker3] self.assertRaises(OSError, master._stop_workers) kill_mock.assert_any_call("testpid1", signal.SIGTERM) kill_mock.assert_any_call("testpid2", signal.SIGTERM) kill_mock.assert_any_call("testpid3", signal.SIGTERM)
def test_wait(self, waitpid_mock): waitpid_mock.side_effect = [('testpid1', 0), OSError(errno.ESRCH, 'No such pid'), OSError(99, 'Something else')] worker1 = MagicMock(queues=None, pid='testpid1') worker2 = MagicMock(queues=None, pid='testpid2') worker3 = MagicMock(queues=None, pid='testpid3') master = WorkerMaster() master.workers = [worker1, worker2, worker3] self.assertRaises(OSError, master.wait) waitpid_mock.assert_any_call('testpid1', 0) waitpid_mock.assert_any_call('testpid2', 0) waitpid_mock.assert_any_call('testpid3', 0)
def test_stop_workers(self, kill_mock): kill_mock.side_effect = [None, OSError(errno.ESRCH, 'No such pid'), OSError(99, 'Something else')] worker1 = MagicMock(pid='testpid1') worker2 = MagicMock(pid='testpid2') worker3 = MagicMock(pid='testpid3') master = WorkerMaster('testapp') master.workers = [worker1, worker2, worker3] self.assertRaises(OSError, master._stop_workers) kill_mock.assert_any_call('testpid1', signal.SIGTERM) kill_mock.assert_any_call('testpid2', signal.SIGTERM) kill_mock.assert_any_call('testpid3', signal.SIGTERM)
def test_stop_workers(self, kill_mock): kill_mock.side_effect = [ None, OSError(errno.ESRCH, 'No such pid'), OSError(99, 'Something else') ] worker1 = MagicMock(pid='testpid1') worker2 = MagicMock(pid='testpid2') worker3 = MagicMock(pid='testpid3') master = WorkerMaster() master.workers = [worker1, worker2, worker3] self.assertRaises(OSError, master._stop_workers) kill_mock.assert_any_call('testpid1', signal.SIGTERM) kill_mock.assert_any_call('testpid2', signal.SIGTERM) kill_mock.assert_any_call('testpid3', signal.SIGTERM)
def test_wait(self, waitpid_mock): exit_cb = MagicMock() waitpid_mock.side_effect = [('testpid1', 0), OSError(errno.ESRCH, 'No such pid'), OSError(99, 'Something else')] worker1 = MagicMock(queues=None, pid='testpid1') worker2 = MagicMock(queues=None, pid='testpid2') worker3 = MagicMock(queues=None, pid='testpid3') master = WorkerMaster('testapp', exit_callback=exit_cb) master.workers = [worker1, worker2, worker3] self.assertRaises(OSError, master.wait) waitpid_mock.assert_any_call('testpid1', 0) waitpid_mock.assert_any_call('testpid2', 0) waitpid_mock.assert_any_call('testpid3', 0) exit_cb.assert_any_call(None, 'testpid1', 0) exit_cb.assert_any_call(None, 'testpid2', None)