Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
 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()
Ejemplo n.º 3
0
 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()
Ejemplo n.º 4
0
 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()
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
 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()
Ejemplo n.º 7
0
 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)
Ejemplo n.º 8
0
 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()
Ejemplo n.º 9
0
 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()
Ejemplo n.º 10
0
 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)
Ejemplo n.º 11
0
        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
Ejemplo n.º 12
0
        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()
Ejemplo n.º 13
0
        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
Ejemplo n.º 14
0
        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()
Ejemplo n.º 15
0
 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)
Ejemplo n.º 16
0
 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)
Ejemplo n.º 17
0
        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()
Ejemplo n.º 18
0
        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()
Ejemplo n.º 19
0
        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()
Ejemplo n.º 20
0
        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()
Ejemplo n.º 21
0
 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()
Ejemplo n.º 22
0
 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()
Ejemplo n.º 23
0
        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())
Ejemplo n.º 24
0
        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()
Ejemplo n.º 25
0
        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())
Ejemplo n.º 26
0
        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()
Ejemplo n.º 27
0
        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)
Ejemplo n.º 28
0
        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)
Ejemplo n.º 29
0
    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
Ejemplo n.º 30
0
 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())
Ejemplo n.º 31
0
 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())
Ejemplo n.º 32
0
 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)
Ejemplo n.º 33
0
 def test_remove(self, unlink):
     unlink.return_value = True
     p = PIDFile('/var/pid')
     p.remove()
     unlink.assert_called_with(p.path)
Ejemplo n.º 34
0
 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())
Ejemplo n.º 35
0
 def test_remove(self, unlink):
     unlink.return_value = True
     p = PIDFile("/var/pid")
     p.remove()
     unlink.assert_called_with(p.path)
Ejemplo n.º 36
0
 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)
Ejemplo n.º 37
0
 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())