From 2c582cbcfb69b7bc1589fe91d8f194c306560f39 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 20 Nov 2018 15:54:17 +1030 Subject: [PATCH] pytest: test that we don't revert config handling again. Signed-off-by: Rusty Russell --- tests/test_misc.py | 23 +++++++++++++++++++++++ tests/utils.py | 3 ++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/tests/test_misc.py b/tests/test_misc.py index 573aa8818..0b7812067 100644 --- a/tests/test_misc.py +++ b/tests/test_misc.py @@ -1036,3 +1036,26 @@ def test_crashlog(node_factory): assert not has_crash_log(l1) l1.daemon.proc.send_signal(signal.SIGSEGV) wait_for(lambda: has_crash_log(l1)) + + +def test_configfile_before_chdir(node_factory): + """Must read config file before chdir into lightning dir""" + l1 = node_factory.get_node() + l1.stop() + + olddir = os.getcwd() + # as lightning_dir ends in /, basename and dirname don't work as expected. + os.chdir(os.path.dirname(l1.daemon.lightning_dir[:-1])) + config = os.path.join(os.path.basename(l1.daemon.lightning_dir[:-1]), "test_configfile") + # Test both an early arg and a normal arg. + with open(config, 'wb') as f: + f.write(b'always-use-proxy=true\n') + f.write(b'proxy=127.0.0.1:100\n') + l1.daemon.opts['conf'] = config + + # Update executable to point to right place + l1.daemon.executable = os.path.join(olddir, l1.daemon.executable) + l1.start() + assert l1.rpc.listconfigs()['always-use-proxy'] + assert l1.rpc.listconfigs()['proxy'] == '127.0.0.1:100' + os.chdir(olddir) diff --git a/tests/utils.py b/tests/utils.py index 6c7567c2d..152ee42eb 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -298,6 +298,7 @@ class BitcoinD(TailableProc): class LightningD(TailableProc): def __init__(self, lightning_dir, bitcoind, port=9735, random_hsm=False, node_id=0): TailableProc.__init__(self, lightning_dir) + self.executable = 'lightningd/lightningd' self.lightning_dir = lightning_dir self.port = port self.cmd_prefix = [] @@ -351,7 +352,7 @@ class LightningD(TailableProc): else: opts.append("--{}={}".format(k, v)) - return self.cmd_prefix + ['lightningd/lightningd'] + opts + return self.cmd_prefix + [self.executable] + opts def start(self): self.rpcproxy.start()