Exemple #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)
Exemple #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)
Exemple #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)
Exemple #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)
Exemple #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)
Exemple #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)
Exemple #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)
Exemple #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)
Exemple #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)
Exemple #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)
Exemple #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)
Exemple #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')
Exemple #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)
Exemple #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)
Exemple #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)
Exemple #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)
Exemple #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)
Exemple #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)