def test_remove_ENOENT(self, unlink): exc = OSError() exc.errno = errno.ENOENT unlink.side_effect = exc p = PIDFile("/var/pid") p.remove() unlink.assert_called_with(p.path)
def test_read_pid_bogus_pidfile(self, open_): s = open_.return_value = WhateverIO() s.write('eighteensixteen\n') s.seek(0) p = PIDFile('/var/pid') with self.assertRaises(ValueError): p.read_pid()
def test_read_pid_partially_written(self, open_): s = open_.return_value = WhateverIO() s.write("1816") s.seek(0) p = PIDFile("/var/pid") with self.assertRaises(ValueError): p.read_pid()
def test_read_pid_raises_IOError(self, open_): exc = IOError() exc.errno = errno.EAGAIN open_.side_effect = exc p = PIDFile("/var/pid") with self.assertRaises(IOError): p.read_pid()
def test_remove_ENOENT(self, unlink): exc = OSError() exc.errno = errno.ENOENT unlink.side_effect = exc p = PIDFile('/var/pid') p.remove() unlink.assert_called_with(p.path)
def test_read_pid_partially_written(self, open_): s = open_.return_value = WhateverIO() s.write('1816') s.seek(0) p = PIDFile('/var/pid') with self.assertRaises(ValueError): p.read_pid()
def test_remove_EACCES(self, unlink): exc = OSError() exc.errno = errno.EACCES unlink.side_effect = exc p = PIDFile("/var/pid") p.remove() unlink.assert_called_with(p.path)
def test_read_pid_bogus_pidfile(self, open_): s = open_.return_value = WhateverIO() s.write("eighteensixteen\n") s.seek(0) p = PIDFile("/var/pid") with self.assertRaises(ValueError): p.read_pid()
def test_read_pid_raises_IOError(self, open_): exc = IOError() exc.errno = errno.EAGAIN open_.side_effect = exc p = PIDFile('/var/pid') with self.assertRaises(IOError): p.read_pid()
def test_remove_EACCES(self, unlink): exc = OSError() exc.errno = errno.EACCES unlink.side_effect = exc p = PIDFile('/var/pid') p.remove() unlink.assert_called_with(p.path)
def test_acquire_raises_LockFailed(self): p = PIDFile('/var/pid') p.write_pid = Mock() p.write_pid.side_effect = OSError() with self.assertRaises(LockFailed): with p: pass
def test_remove_if_stale_no_pidfile(self): p = PIDFile("/var/pid") p.read_pid = Mock() p.read_pid.return_value = None p.remove = Mock() self.assertTrue(p.remove_if_stale()) p.remove.assert_called_with()
def test_acquire_raises_LockFailed(self): p = PIDFile("/var/pid") p.write_pid = Mock() p.write_pid.side_effect = OSError() with self.assertRaises(LockFailed): with p: pass
def test_remove_if_stale_no_pidfile(self): p = PIDFile('/var/pid') p.read_pid = Mock() p.read_pid.return_value = None p.remove = Mock() self.assertTrue(p.remove_if_stale()) p.remove.assert_called_with()
def test_remove_OSError(self, unlink): exc = OSError() exc.errno = errno.EAGAIN unlink.side_effect = exc p = PIDFile('/var/pid') with self.assertRaises(OSError): p.remove() unlink.assert_called_with(p.path)
def test_remove_OSError(self, unlink): exc = OSError() exc.errno = errno.EAGAIN unlink.side_effect = exc p = PIDFile("/var/pid") with self.assertRaises(OSError): p.remove() unlink.assert_called_with(p.path)
def test_remove_if_stale_broken_pid(self): with override_stdouts(): p = PIDFile('/var/pid') p.read_pid = Mock() p.read_pid.side_effect = ValueError() p.remove = Mock() self.assertTrue(p.remove_if_stale()) p.remove.assert_called_with()
def test_context(self): p = PIDFile('/var/pid') p.write_pid = Mock() p.remove = Mock() with p as _p: self.assertIs(_p, p) p.write_pid.assert_called_with() p.remove.assert_called_with()
def test_remove_if_stale_broken_pid(self): with override_stdouts(): p = PIDFile("/var/pid") p.read_pid = Mock() p.read_pid.side_effect = ValueError() p.remove = Mock() self.assertTrue(p.remove_if_stale()) p.remove.assert_called_with()
def test_context(self): p = PIDFile("/var/pid") p.write_pid = Mock() p.remove = Mock() with p as _p: self.assertIs(_p, p) p.write_pid.assert_called_with() p.remove.assert_called_with()
def test_remove_if_stale_process_dead(self, kill): with override_stdouts(): p = PIDFile("/var/pid") p.read_pid = Mock() p.read_pid.return_value = 1816 p.remove = Mock() exc = OSError() exc.errno = errno.ESRCH kill.side_effect = exc self.assertTrue(p.remove_if_stale()) kill.assert_called_with(1816, 0) p.remove.assert_called_with()
def test_remove_if_stale_process_dead(self, kill): with override_stdouts(): p = PIDFile('/var/pid') p.read_pid = Mock() p.read_pid.return_value = 1816 p.remove = Mock() exc = OSError() exc.errno = errno.ESRCH kill.side_effect = exc self.assertTrue(p.remove_if_stale()) kill.assert_called_with(1816, 0) p.remove.assert_called_with()
def test_remove_if_stale_process_alive(self, kill): p = PIDFile('/var/pid') p.read_pid = Mock() p.read_pid.return_value = 1816 kill.return_value = 0 self.assertFalse(p.remove_if_stale()) kill.assert_called_with(1816, 0) p.read_pid.assert_called_with() kill.side_effect = OSError() kill.side_effect.errno = errno.ENOENT self.assertFalse(p.remove_if_stale())
def test_write_reread_fails(self, open_, fdopen, osopen, getpid, fsync): getpid.return_value = 1816 osopen.return_value = 13 w = fdopen.return_value = WhateverIO() w.close = Mock() r = open_.return_value = WhateverIO() r.write("11816\n") r.seek(0) p = PIDFile("/var/pid") with self.assertRaises(LockFailed): p.write_pid()
def test_remove_if_stale_process_alive(self, kill): p = PIDFile("/var/pid") p.read_pid = Mock() p.read_pid.return_value = 1816 kill.return_value = 0 self.assertFalse(p.remove_if_stale()) kill.assert_called_with(1816, 0) p.read_pid.assert_called_with() kill.side_effect = OSError() kill.side_effect.errno = errno.ENOENT self.assertFalse(p.remove_if_stale())
def test_write_pid(self, open_, fdopen, osopen, getpid, fsync): getpid.return_value = 1816 osopen.return_value = 13 w = fdopen.return_value = WhateverIO() w.close = Mock() r = open_.return_value = WhateverIO() r.write("1816\n") r.seek(0) p = PIDFile("/var/pid") p.write_pid() w.seek(0) self.assertEqual(w.readline(), "1816\n") self.assertTrue(w.close.called) getpid.assert_called_with() osopen.assert_called_with(p.path, platforms.PIDFILE_FLAGS, platforms.PIDFILE_MODE) fdopen.assert_called_with(13, "w") fsync.assert_called_with(13) open_.assert_called_with(p.path)
def getpids(self, p, cmd, callback=None): pidfile_template = p.options.setdefault('--pidfile', 'celeryd@%n.pid') nodes = [] for nodename, argv, expander in multi_args(p, cmd): pid = None pidfile = expander(pidfile_template) try: pid = PIDFile(pidfile).read_pid() except ValueError: pass if pid: nodes.append((nodename, tuple(argv), pid)) else: self.note('> %s: %s' % (nodename, self.DOWN)) if callback: callback(nodename, argv, pid) return nodes
def test_is_locked(self, exists): p = PIDFile('/var/pid') exists.return_value = True self.assertTrue(p.is_locked()) exists.return_value = False self.assertFalse(p.is_locked())
def test_read_pid_raises_ENOENT(self, open_): exc = IOError() exc.errno = errno.ENOENT open_.side_effect = exc p = PIDFile('/var/pid') self.assertIsNone(p.read_pid())
def test_read_pid(self, open_): s = open_.return_value = WhateverIO() s.write('1816\n') s.seek(0) p = PIDFile('/var/pid') self.assertEqual(p.read_pid(), 1816)
def test_remove(self, unlink): unlink.return_value = True p = PIDFile('/var/pid') p.remove() unlink.assert_called_with(p.path)
def test_is_locked(self, exists): p = PIDFile("/var/pid") exists.return_value = True self.assertTrue(p.is_locked()) exists.return_value = False self.assertFalse(p.is_locked())
def test_remove(self, unlink): unlink.return_value = True p = PIDFile("/var/pid") p.remove() unlink.assert_called_with(p.path)
def test_read_pid(self, open_): s = open_.return_value = WhateverIO() s.write("1816\n") s.seek(0) p = PIDFile("/var/pid") self.assertEqual(p.read_pid(), 1816)
def test_read_pid_raises_ENOENT(self, open_): exc = IOError() exc.errno = errno.ENOENT open_.side_effect = exc p = PIDFile("/var/pid") self.assertIsNone(p.read_pid())