def test_self_reload(pyscript): script = pyscript(""" import os from daemonocle import Daemon daemon = Daemon(name='foo', pid_file='foo.pid', detach=False) def worker(): print('here is my pid: {}'.format(os.getpid())) if not os.environ.get('DAEMONOCLE_RELOAD'): daemon.reload() daemon.worker = worker daemon.do_action('start') """) result = script.run() assert result.returncode == 0 match = re.match(( br'^Starting foo \.\.\. OK\n' br'here is my pid: (\d+)\n' br'Reloading foo \.\.\. OK\n' br'here is my pid: (\d+)\n' br'All children are gone\. Parent is exiting\.\.\.\n$'), result.stdout) assert match assert match.group(1) != match.group(2) assert result.stderr == b'' daemon = Daemon() with pytest.raises(DaemonError): # Don't allow calling reload like this daemon.reload()
def test_self_reload(pyscript): script = pyscript( """ import os from daemonocle import Daemon daemon = Daemon(prog='foo', pidfile='foo.pid', detach=False) def worker(): print('here is my pid: {}'.format(os.getpid())) if not os.environ.get('DAEMONOCLE_RELOAD'): daemon.reload() daemon.worker = worker daemon.do_action('start') """ ) result = script.run() assert result.returncode == 0 match = re.match( ( br"^Starting foo \.\.\. OK\n" br"here is my pid: (\d+)\n" br"Reloading foo \.\.\. OK\n" br"here is my pid: (\d+)\n" br"All children are gone\. Parent is exiting\.\.\.\n$" ), result.stdout, ) assert match assert match.group(1) != match.group(2) assert result.stderr == b"" daemon = Daemon() with pytest.raises(DaemonError): # Don't allow calling reload like this daemon.reload()