URI: 
       tregtest.py - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
       tregtest.py (1834B)
       ---
            1 import os
            2 import sys
            3 import unittest
            4 import subprocess
            5 
            6 class TestLightning(unittest.TestCase):
            7 
            8     @staticmethod
            9     def run_shell(args, timeout=30):
           10         process = subprocess.Popen(['electrum/tests/regtest/regtest.sh'] + args, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
           11         for line in iter(process.stdout.readline, b''):
           12             sys.stdout.write(line.decode(sys.stdout.encoding))
           13         process.wait(timeout=timeout)
           14         process.stdout.close()
           15         assert process.returncode == 0
           16 
           17     def setUp(self):
           18         test_name = self.id().split('.')[-1]
           19         sys.stdout.write("***** %s ******\n" % test_name)
           20         # initialize and get funds
           21         for agent in self.agents:
           22             self.run_shell(['init', agent])
           23         # mine a block so that funds are confirmed
           24         self.run_shell(['new_block'])
           25         # extra configuration (optional)
           26         self.run_shell(['configure_' + test_name])
           27         # start daemons
           28         for agent in self.agents:
           29             self.run_shell(['start', agent])
           30 
           31     def tearDown(self):
           32         for agent in self.agents:
           33             self.run_shell(['stop', agent])
           34 
           35 
           36 class TestLightningAB(TestLightning):
           37     agents = ['alice', 'bob']
           38 
           39     def test_backup(self):
           40         self.run_shell(['backup'])
           41 
           42     def test_breach(self):
           43         self.run_shell(['breach'])
           44 
           45     def test_extract_preimage(self):
           46         self.run_shell(['extract_preimage'])
           47 
           48     def test_redeem_htlcs(self):
           49         self.run_shell(['redeem_htlcs'])
           50 
           51     def test_breach_with_unspent_htlc(self):
           52         self.run_shell(['breach_with_unspent_htlc'])
           53 
           54     def test_breach_with_spent_htlc(self):
           55         self.run_shell(['breach_with_spent_htlc'])
           56 
           57 
           58 class TestLightningABC(TestLightning):
           59     agents = ['alice', 'bob', 'carol']
           60 
           61     def test_watchtower(self):
           62         self.run_shell(['watchtower'])