@@ -12,6 +12,7 @@ class LNBasicTest(TestBase):
1212 def __init__ (self ):
1313 super ().__init__ ()
1414 self .network_dir = Path (os .path .dirname (__file__ )) / "data" / "ln"
15+ self .scen_dir = Path (os .path .dirname (__file__ )).parent / "resources" / "scenarios"
1516 self .lns = [
1617 "tank-0000-ln" ,
1718 "tank-0001-ln" ,
@@ -29,16 +30,21 @@ def run_test(self):
2930 self .fund_wallets ()
3031
3132 # Manually open two channels between first three nodes
32- # and send a payment
33+ # and send a payment using warnet RPC
3334 self .manual_open_channels ()
3435 self .wait_for_gossip_sync (self .lns [:3 ], 2 )
3536 self .pay_invoice (sender = "tank-0000-ln" , recipient = "tank-0002-ln" )
3637
37- # Automatically open channels from network.yaml
38+ # Automatically open channels from network.yaml using warnet RPC
3839 self .automatic_open_channels ()
39- self .wait_for_gossip_sync (self .lns [3 :], 3 )
40+ self .wait_for_gossip_sync (self .lns [3 :], 2 )
4041 # push_amt should enable payments from target to source
4142 self .pay_invoice (sender = "tank-0005-ln" , recipient = "tank-0003-ln" )
43+
44+ # Automatically open channels from inside a scenario commander
45+ self .scenario_open_channels ()
46+ self .pay_invoice (sender = "tank-0002-ln" , recipient = "tank-0003-ln" )
47+
4248 finally :
4349 self .cleanup ()
4450
@@ -75,6 +81,11 @@ def fund_wallets(self):
7581 self .warnet ("bitcoin rpc tank-0000 sendmany '' '{" + outputs + "}'" )
7682 self .warnet ("bitcoin rpc tank-0000 -generate 1" )
7783
84+ def wait_for_two_txs (self ):
85+ self .wait_for_predicate (
86+ lambda : json .loads (self .warnet ("bitcoin rpc tank-0000 getmempoolinfo" ))["size" ] == 2
87+ )
88+
7889 def manual_open_channels (self ):
7990 # 0 -> 1 -> 2
8091 pk1 = self .warnet ("ln pubkey tank-0001-ln" )
@@ -101,10 +112,7 @@ def manual_open_channels(self):
101112 )
102113 )
103114
104- def wait_for_two_txs ():
105- return json .loads (self .warnet ("bitcoin rpc tank-0000 getmempoolinfo" ))["size" ] == 2
106-
107- self .wait_for_predicate (wait_for_two_txs )
115+ self .wait_for_two_txs ()
108116
109117 self .warnet ("bitcoin rpc tank-0000 -generate 10" )
110118
@@ -131,14 +139,20 @@ def wait_for_success():
131139 self .wait_for_predicate (wait_for_success )
132140
133141 def automatic_open_channels (self ):
142+ # 3 -> 4 -> 5
134143 self .warnet ("ln open-all-channels" )
135144
136- def wait_for_three_txs ():
137- return json .loads (self .warnet ("bitcoin rpc tank-0000 getmempoolinfo" ))["size" ] == 3
145+ self .wait_for_two_txs ()
138146
139- self .wait_for_predicate (wait_for_three_txs )
140147 self .warnet ("bitcoin rpc tank-0000 -generate 10" )
141148
149+ def scenario_open_channels (self ):
150+ # 2 -> 3
151+ # connecting all six ln nodes in the graph
152+ scenario_file = self .scen_dir / "test_scenarios" / "ln_basic.py"
153+ self .log .info (f"Running scenario from: { scenario_file } " )
154+ self .warnet (f"run { scenario_file } --source_dir={ self .scen_dir } --debug" )
155+
142156
143157if __name__ == "__main__" :
144158 test = LNBasicTest ()
0 commit comments