mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-19 15:14:23 +01:00
pytest: fix flake due to cln-grpc starting before "public key" message.
e.g.
```
lightningd-1: 2022-03-28T11:02:12.476Z DEBUG plugin-cln-grpc: add_pem_file processed 1 valid and 0 invalid certs
lightningd-1: 2022-03-28T11:02:12.478Z DEBUG plugin-cln-grpc: Connecting to \"lightning-rpc\" and serving grpc on 0.0.0.0:36331
lightningd-1: 2022-03-28T11:02:12.478Z DEBUG connectd: REPLY WIRE_CONNECTD_ACTIVATE_REPLY with 0 fds
lightningd-1: 2022-03-28T11:02:12.478Z INFO lightningd: --------------------------------------------------
lightningd-1: 2022-03-28T11:02:12.478Z INFO lightningd: Server started with public key
```
Which means we don't see it, since start() swallows it:
```
> raise TimeoutError('Unable to find "{}" in logs.'.format(exs))
E TimeoutError: Unable to find "[re.compile('serving grpc on 0.0.0.0:')]" in logs.
```
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
@@ -15,6 +15,11 @@ pytestmark = pytest.mark.skipif(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def wait_for_grpc_start(node):
|
||||||
|
"""This can happen before "public key" which start() swallows"""
|
||||||
|
wait_for(lambda: node.daemon.is_in_log(r'serving grpc on 0.0.0.0:'))
|
||||||
|
|
||||||
|
|
||||||
def test_rpc_client(node_factory):
|
def test_rpc_client(node_factory):
|
||||||
l1 = node_factory.get_node()
|
l1 = node_factory.get_node()
|
||||||
bin_path = Path.cwd() / "target" / "debug" / "examples" / "cln-rpc-getinfo"
|
bin_path = Path.cwd() / "target" / "debug" / "examples" / "cln-rpc-getinfo"
|
||||||
@@ -82,7 +87,7 @@ def test_grpc_connect(node_factory):
|
|||||||
certificate_chain=cert_path.open('rb').read()
|
certificate_chain=cert_path.open('rb').read()
|
||||||
)
|
)
|
||||||
|
|
||||||
l1.daemon.wait_for_log(r'serving grpc on 0.0.0.0:')
|
wait_for_grpc_start(l1)
|
||||||
channel = grpc.secure_channel(
|
channel = grpc.secure_channel(
|
||||||
f"localhost:{grpc_port}",
|
f"localhost:{grpc_port}",
|
||||||
creds,
|
creds,
|
||||||
@@ -165,7 +170,7 @@ def test_grpc_wrong_auth(node_factory):
|
|||||||
"grpc-port": str(grpc_port),
|
"grpc-port": str(grpc_port),
|
||||||
})
|
})
|
||||||
l1.start()
|
l1.start()
|
||||||
l1.daemon.wait_for_log(r'serving grpc on 0.0.0.0:')
|
wait_for_grpc_start(l1)
|
||||||
|
|
||||||
def connect(node):
|
def connect(node):
|
||||||
p = Path(node.daemon.lightning_dir) / TEST_NETWORK
|
p = Path(node.daemon.lightning_dir) / TEST_NETWORK
|
||||||
@@ -193,7 +198,7 @@ def test_grpc_wrong_auth(node_factory):
|
|||||||
|
|
||||||
l1.stop()
|
l1.stop()
|
||||||
l2.start()
|
l2.start()
|
||||||
l2.daemon.wait_for_log(r'serving grpc on 0.0.0.0:')
|
wait_for_grpc_start(l2)
|
||||||
|
|
||||||
# This should not work, it's a different node
|
# This should not work, it's a different node
|
||||||
with pytest.raises(Exception, match=r'Socket closed|StatusCode.UNAVAILABLE'):
|
with pytest.raises(Exception, match=r'Socket closed|StatusCode.UNAVAILABLE'):
|
||||||
|
|||||||
Reference in New Issue
Block a user