예제 #1
0
 def test_with_locked_pidfile(self, open, geteuid, maybe_drop, signals,
                              pidlock, Pidfile):
     context = detached(pidfile='/foo/bar/pid')
     p = Pidfile.return_value
     p.is_locked.return_value = True
     assert isinstance(context, DaemonContext)
     assert context.after_chdir
     with pytest.raises(SystemExit):
         context.after_chdir()
     Pidfile.assert_called_with('/foo/bar/pid')
     p.is_locked.assert_called_once()
     pidlock.assert_not_called()
예제 #2
0
    def test_default(self, open, geteuid, maybe_drop, signals, pidlock,
                     Pidfile):
        geteuid.return_value = 0
        context = detached(uid='user', gid='group')
        assert isinstance(context, DaemonContext)
        signals.reset.assert_called_with('SIGCLD')
        maybe_drop.assert_called_with(uid='user', gid='group')
        open.return_value = Mock()

        geteuid.return_value = 5001
        context = detached(uid='user', gid='group', logfile='/foo/bar')
        assert isinstance(context, DaemonContext)
        assert context.after_chdir
        context.after_chdir()
        open.assert_called_with('/foo/bar', 'a')
        open.return_value.close.assert_called_with()

        context = detached(pidfile='/foo/bar/pid')
        assert isinstance(context, DaemonContext)
        assert context.after_chdir
        context.after_chdir()
        Pidfile.assert_called_with('/foo/bar/pid')
        Pidfile.return_value.acquire.assert_not_called()
        pidlock.assert_not_called()