Esempio n. 1
0
 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)
Esempio n. 2
0
 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)
Esempio n. 3
0
 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)
Esempio n. 4
0
 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)
Esempio n. 5
0
 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)
Esempio n. 6
0
 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)
Esempio n. 7
0
 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)
Esempio n. 8
0
 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)
Esempio n. 9
0
 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)
Esempio n. 10
0
 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)
Esempio n. 11
0
 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)
Esempio n. 12
0
 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')
Esempio n. 13
0
 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)
Esempio n. 14
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)
Esempio n. 15
0
 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)
Esempio n. 16
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)
Esempio n. 17
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)
Esempio n. 18
0
 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)