Esempio n. 1
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 pytest.raises(LockFailed):
            p.write_pid()
Esempio n. 2
0
 def test_remove_if_stale_unprivileged_user(self, kill):
     with mock.stdouts():
         p = Pidfile('/var/pid')
         p.read_pid = Mock()
         p.read_pid.return_value = 1817
         p.remove = Mock()
         exc = OSError()
         exc.errno = errno.EPERM
         kill.side_effect = exc
         assert p.remove_if_stale()
         kill.assert_called_with(1817, 0)
         p.remove.assert_called_with()
Esempio n. 3
0
 def test_remove_if_stale_process_dead(self, kill):
     with mock.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
         assert p.remove_if_stale()
         kill.assert_called_with(1816, 0)
         p.remove.assert_called_with()
Esempio n. 4
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
        assert not 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
        assert not p.remove_if_stale()
    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
Esempio n. 6
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)
Esempio n. 7
0
 def test_remove(self, unlink):
     unlink.return_value = True
     p = Pidfile('/var/pid')
     p.remove()
     unlink.assert_called_with(p.path)
Esempio n. 8
0
 def test_read_pid_raises_ENOENT(self):
     exc = IOError()
     exc.errno = errno.ENOENT
     with mock.open(side_effect=exc):
         p = Pidfile('/var/pid')
         assert p.read_pid() is None
Esempio n. 9
0
 def test_read_pid(self):
     with mock.open() as s:
         s.write('1816\n')
         s.seek(0)
         p = Pidfile('/var/pid')
         assert p.read_pid() == 1816
Esempio n. 10
0
 def test_is_locked(self, exists):
     p = Pidfile('/var/pid')
     exists.return_value = True
     assert p.is_locked()
     exists.return_value = False
     assert not p.is_locked()
Esempio n. 11
0
 def test_read_pid(self):
     with mock_open() as s:
         s.write('1816\n')
         s.seek(0)
         p = Pidfile('/var/pid')
         self.assertEqual(p.read_pid(), 1816)
Esempio n. 12
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())