diff --git a/electrum/tests/__init__.py b/electrum/tests/__init__.py index 5a2a25348..899a08c8e 100644 --- a/electrum/tests/__init__.py +++ b/electrum/tests/__init__.py @@ -36,8 +36,21 @@ class SequentialTestCase(unittest.TestCase): class ElectrumTestCase(SequentialTestCase): """Base class for our unit tests.""" + TESTNET = False # maxDiff = None + @classmethod + def setUpClass(cls): + super().setUpClass() + if cls.TESTNET: + constants.set_testnet() + + @classmethod + def tearDownClass(cls): + super().tearDownClass() + if cls.TESTNET: + constants.set_mainnet() + def setUp(self): super().setUp() self.asyncio_loop, self._stop_loop, self._loop_thread = util.create_and_start_event_loop() @@ -50,20 +63,6 @@ class ElectrumTestCase(SequentialTestCase): shutil.rmtree(self.electrum_path) -class TestCaseForTestnet(ElectrumTestCase): - """Class that runs member tests in testnet mode""" - - @classmethod - def setUpClass(cls): - super().setUpClass() - constants.set_testnet() - - @classmethod - def tearDownClass(cls): - super().tearDownClass() - constants.set_mainnet() - - def as_testnet(func): """Function decorator to run a single unit test in testnet mode. diff --git a/electrum/tests/test_bitcoin.py b/electrum/tests/test_bitcoin.py index 524aeb6a7..574cd8bd1 100644 --- a/electrum/tests/test_bitcoin.py +++ b/electrum/tests/test_bitcoin.py @@ -25,7 +25,6 @@ from electrum.keystore import xtype_from_derivation from electrum import ecc_fast from . import ElectrumTestCase -from . import TestCaseForTestnet from . import FAST_TESTS @@ -653,7 +652,8 @@ class Test_bitcoin(ElectrumTestCase): segwit_addr.bech32_decode('1p2gdwpf')) -class Test_bitcoin_testnet(TestCaseForTestnet): +class Test_bitcoin_testnet(ElectrumTestCase): + TESTNET = True def test_address_to_script(self): # bech32/bech32m native segwit @@ -941,7 +941,8 @@ class Test_xprv_xpub(ElectrumTestCase): self.assertTrue(xkey_b58.startswith(xpub_headers_b58[xtype])) -class Test_xprv_xpub_testnet(TestCaseForTestnet): +class Test_xprv_xpub_testnet(ElectrumTestCase): + TESTNET = True def test_version_bytes(self): xprv_headers_b58 = { diff --git a/electrum/tests/test_commands.py b/electrum/tests/test_commands.py index 99ab167c6..845592c71 100644 --- a/electrum/tests/test_commands.py +++ b/electrum/tests/test_commands.py @@ -9,7 +9,7 @@ from electrum.address_synchronizer import TX_HEIGHT_UNCONFIRMED from electrum.simple_config import SimpleConfig from electrum.transaction import Transaction, TxOutput, tx_from_any -from . import TestCaseForTestnet, ElectrumTestCase +from . import ElectrumTestCase from .test_wallet_vertical import WalletIntegrityHelper @@ -124,7 +124,8 @@ class TestCommands(ElectrumTestCase): cmds._run('getprivatekeys', (['bc1q3g5tmkmlvxryhh843v4dz026avatc0zzr6h3af', 'bc1q9pzjpjq4nqx5ycnywekcmycqz0wjp2nq604y2n'],), wallet=wallet)) -class TestCommandsTestnet(TestCaseForTestnet): +class TestCommandsTestnet(ElectrumTestCase): + TESTNET = True def setUp(self): super().setUp() diff --git a/electrum/tests/test_invoices.py b/electrum/tests/test_invoices.py index bf701cb56..6048141fb 100644 --- a/electrum/tests/test_invoices.py +++ b/electrum/tests/test_invoices.py @@ -1,7 +1,7 @@ import os import time -from . import TestCaseForTestnet +from . import ElectrumTestCase from electrum.simple_config import SimpleConfig from electrum.wallet import restore_wallet_from_text, Standard_Wallet, Abstract_Wallet @@ -11,18 +11,19 @@ from electrum.transaction import Transaction, PartialTxOutput from electrum.util import TxMinedInfo -class TestWalletPaymentRequests(TestCaseForTestnet): +class TestWalletPaymentRequests(ElectrumTestCase): """test 'incoming' invoices""" + TESTNET = True def setUp(self): - TestCaseForTestnet.setUp(self) + super().setUp() self.config = SimpleConfig({'electrum_path': self.electrum_path}) self.wallet1_path = os.path.join(self.electrum_path, "somewallet1") self.wallet2_path = os.path.join(self.electrum_path, "somewallet2") self._orig_get_cur_time = Invoice._get_cur_time def tearDown(self): - TestCaseForTestnet.tearDown(self) + super().tearDown() Invoice._get_cur_time = staticmethod(self._orig_get_cur_time) def create_wallet2(self) -> Standard_Wallet: diff --git a/electrum/tests/test_lnmsg.py b/electrum/tests/test_lnmsg.py index 57e8f2ea6..d83e7fc0a 100644 --- a/electrum/tests/test_lnmsg.py +++ b/electrum/tests/test_lnmsg.py @@ -10,10 +10,11 @@ from electrum.util import bfh from electrum.lnutil import ShortChannelID, LnFeatures from electrum import constants -from . import TestCaseForTestnet +from . import ElectrumTestCase -class TestLNMsg(TestCaseForTestnet): +class TestLNMsg(ElectrumTestCase): + TESTNET = True def test_write_bigsize_int(self): self.assertEqual(bfh("00"), write_bigsize_int(0)) diff --git a/electrum/tests/test_lnpeer.py b/electrum/tests/test_lnpeer.py index 36bb167a1..7342d3d1b 100644 --- a/electrum/tests/test_lnpeer.py +++ b/electrum/tests/test_lnpeer.py @@ -44,7 +44,7 @@ from electrum.simple_config import SimpleConfig from .test_lnchannel import create_test_channels from .test_bitcoin import needs_test_with_all_chacha20_implementations -from . import TestCaseForTestnet +from . import ElectrumTestCase def keypair(): priv = ECPrivkey.generate_random_key().get_secret_bytes() @@ -392,7 +392,8 @@ class PaymentDone(Exception): pass class SuccessfulTest(Exception): pass -class TestPeer(TestCaseForTestnet): +class TestPeer(ElectrumTestCase): + TESTNET = True @classmethod def setUpClass(cls): diff --git a/electrum/tests/test_lnrouter.py b/electrum/tests/test_lnrouter.py index b31e950de..be66ab5cf 100644 --- a/electrum/tests/test_lnrouter.py +++ b/electrum/tests/test_lnrouter.py @@ -15,7 +15,7 @@ from electrum.constants import BitcoinTestnet from electrum.simple_config import SimpleConfig from electrum.lnrouter import PathEdge, LiquidityHintMgr, DEFAULT_PENALTY_PROPORTIONAL_MILLIONTH, DEFAULT_PENALTY_BASE_MSAT, fee_for_edge_msat -from . import TestCaseForTestnet +from . import ElectrumTestCase from .test_bitcoin import needs_test_with_all_chacha20_implementations @@ -27,7 +27,8 @@ def node(character: str) -> bytes: return b'\x02' + f'{character}'.encode() * 32 -class Test_LNRouter(TestCaseForTestnet): +class Test_LNRouter(ElectrumTestCase): + TESTNET = True cdb = None diff --git a/electrum/tests/test_psbt.py b/electrum/tests/test_psbt.py index 8ef0f2331..3a9655838 100644 --- a/electrum/tests/test_psbt.py +++ b/electrum/tests/test_psbt.py @@ -5,11 +5,12 @@ from electrum import constants from electrum.transaction import (tx_from_any, PartialTransaction, BadHeaderMagic, UnexpectedEndOfStream, SerializationError, PSBTInputConsistencyFailure) -from . import ElectrumTestCase, TestCaseForTestnet +from . import ElectrumTestCase -class TestValidPSBT(TestCaseForTestnet): +class TestValidPSBT(ElectrumTestCase): # test cases from BIP-0174 + TESTNET = True def test_valid_psbt_001(self): # Case: PSBT with one P2PKH input. Outputs are empty @@ -97,8 +98,9 @@ class TestValidPSBT(TestCaseForTestnet): self.assertEqual(1, len(tx.inputs())) -class TestInvalidPSBT(TestCaseForTestnet): +class TestInvalidPSBT(ElectrumTestCase): # test cases from BIP-0174 + TESTNET = True def test_invalid_psbt_001(self): # Case: Network transaction, not PSBT format @@ -232,8 +234,9 @@ class TestInvalidPSBT(TestCaseForTestnet): tx = tx_from_any(bytes.fromhex('70736274ff0100710100000001626bbbb7a4ad82dbf7f6bd64ac3f40d0e2695b606d7953f2802b9ea426ea080a0000000000fdffffff02a025260000000000160014e5bddbfee3883729b48fe3385216e64e6035f6eb585d720000000000160014dab37af8fefbbb31887a0a5f9b2698f4a7b45f6a1c3914000001011f8096990000000000160014dab37af8fefbbb31887a0a5f9b2698f4a7b45f6a0100fd200101000000000101197a89cff51096b9dd4214cdee0eb90cb27a25477e739521d728a679724042730100000000fdffffff048096980000000000160014dab37af8fefbbb31887a0a5f9b2698f4a7b45f6a80969800000000001976a91405a20074ef7eb42c7c6fcd4f499faa699742783288ac809698000000000017a914b808938a8007bc54509cd946944c479c0fa6554f87131b2c0400000000160014a04dfdb9a9aeac3b3fada6f43c2a66886186e2440247304402204f5dbb9dda65eab26179f1ca7c37c8baf028153815085dd1bbb2b826296e3b870220379fcd825742d6e2bdff772f347b629047824f289a5499a501033f6c3495594901210363c9c98740fe0455c646215cea9b13807b758791c8af7b74e62968bef57ff8ae1e391400000000')) -class TestPSBTSignerChecks(TestCaseForTestnet): +class TestPSBTSignerChecks(ElectrumTestCase): # test cases from BIP-0174 + TESTNET = True @unittest.skip("the check this test is testing is intentionally disabled in transaction.py") def test_psbt_fails_signer_checks_001(self): @@ -269,8 +272,9 @@ class TestPSBTSignerChecks(TestCaseForTestnet): tx2 = PartialTransaction.from_raw_psbt('cHNidP8BAJoCAAAAAljoeiG1ba8MI76OcHBFbDNvfLqlyHV5JPVFiHuyq911AAAAAAD/////g40EJ9DsZQpoqka7CwmK6kQiwHGyyng1Kgd5WdB86h0BAAAAAP////8CcKrwCAAAAAAWABTYXCtx0AYLCcmIauuBXlCZHdoSTQDh9QUAAAAAFgAUAK6pouXw+HaliN9VRuh0LR2HAI8AAAAAAAEAuwIAAAABqtc5MQGL0l+ErkALaISL4J23BurCrBgpi6vucatlb4sAAAAASEcwRAIgWPb8fGoz4bMVSNSByCbAFb0wE1qtQs1neQ2rZtKtJDsCIEoc7SYExnNbY5PltBaR3XiwDwxZQvufdRhW+qk4FX26Af7///8CgPD6AgAAAAAXqRQPuUY0IWlrgsgzryQceMF9295JNIfQ8gonAQAAABepFCnKdPigj4GZlCgYXJe12FLkBj9hh2UAAAAiAgLath/0mhTban0CsM0fu3j8SxgxK1tOVNrk26L7/vU210gwRQIhAPYQOLMI3B2oZaNIUnRvAVdyk0IIxtJEVDk82ZvfIhd3AiAFbmdaZ1ptCgK4WxTl4pB02KJam1dgvqKBb2YZEKAG6gEBAwQBAAAAAQRHUiEClYO/Oa4KYJdHrRma3dY0+mEIVZ1sXNObTCGD8auW4H8hAtq2H/SaFNtqfQKwzR+7ePxLGDErW05U2uTbovv+9TbXUq4iBgKVg785rgpgl0etGZrd1jT6YQhVnWxc05tMIYPxq5bgfxDZDGpPAAAAgAAAAIAAAACAIgYC2rYf9JoU22p9ArDNH7t4/EsYMStbTlTa5Nui+/71NtcQ2QxqTwAAAIAAAACAAQAAgAABASAAwusLAAAAABepFLf1+vQOPUClpFmx2zU18rcvqSHohyICAjrdkE89bc9Z3bkGsN7iNSm3/7ntUOXoYVGSaGAiHw5zRzBEAiBl9FulmYtZon/+GnvtAWrx8fkNVLOqj3RQql9WolEDvQIgf3JHA60e25ZoCyhLVtT/y4j3+3Weq74IqjDym4UTg9IBAQMEAQAAAAEEIgAgjCNTFzdDtZXftKB7crqOQuN5fadOh/59nXSX47ICiQMBBUdSIQMIncEMesbbVPkTKa9hczPbOIzq0MIx9yM3nRuZAwsC3CECOt2QTz1tz1nduQaw3uI1Kbf/ue1Q5ehhUZJoYCIfDnNSrSIGAjrdkE89bc9Z3bkGsN7iNSm3/7ntUOXoYVGSaGAiHw5zENkMak8AAACAAAAAgAMAAIAiBgMIncEMesbbVPkTKa9hczPbOIzq0MIx9yM3nRuZAwsC3BDZDGpPAAAAgAAAAIACAACAACICA6mkw39ZltOqJdusa1cK8GUDlEkpQkYLNUdT7Z7spYdxENkMak8AAACAAAAAgAQAAIAAIgICf2OZdX0u/1WhNq0CxoSxg4tlVuXxtrNCgqlLa1AFEJYQ2QxqTwAAAIAAAACABQAAgAA=') -class TestPSBTComplexChecks(TestCaseForTestnet): +class TestPSBTComplexChecks(ElectrumTestCase): # test cases from BIP-0174 + TESTNET = True def test_psbt_combiner_unknown_fields(self): tx1 = tx_from_any("70736274ff01003f0200000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffff010000000000000000036a0100000000000a0f0102030405060708090f0102030405060708090a0b0c0d0e0f000a0f0102030405060708090f0102030405060708090a0b0c0d0e0f000a0f0102030405060708090f0102030405060708090a0b0c0d0e0f00") diff --git a/electrum/tests/test_sswaps.py b/electrum/tests/test_sswaps.py index 3011b2eca..3ce2906e0 100644 --- a/electrum/tests/test_sswaps.py +++ b/electrum/tests/test_sswaps.py @@ -3,10 +3,11 @@ from electrum.util import bfh from electrum.transaction import PartialTxInput, TxOutpoint from electrum.submarine_swaps import SwapManager, SwapData -from . import TestCaseForTestnet +from . import ElectrumTestCase -class TestSwapTxs(TestCaseForTestnet): +class TestSwapTxs(ElectrumTestCase): + TESTNET = True def setUp(self): super().setUp() diff --git a/electrum/tests/test_transaction.py b/electrum/tests/test_transaction.py index 92ecc4dcd..c1bb1bb6f 100644 --- a/electrum/tests/test_transaction.py +++ b/electrum/tests/test_transaction.py @@ -11,7 +11,7 @@ from electrum.bitcoin import (deserialize_privkey, opcodes, from electrum.ecc import ECPrivkey from .test_bitcoin import disable_ecdsa_r_value_grinding -from . import ElectrumTestCase, TestCaseForTestnet +from . import ElectrumTestCase signed_blob = '01000000012a5c9a94fcde98f5581cd00162c60a13936ceb75389ea65bf38633b424eb4031000000006c493046022100a82bbc57a0136751e5433f41cf000b3f1a99c6744775e76ec764fb78c54ee100022100f9e80b7de89de861dc6fb0c1429d5da72c2b6b2ee2406bc9bfb1beedd729d985012102e61d176da16edd1d258a200ad9759ef63adf8e14cd97f53227bae35cdb84d2f6ffffffff0140420f00000000001976a914230ac37834073a42146f11ef8414ae929feaafc388ac00000000' v2_blob = "0200000001191601a44a81e061502b7bfbc6eaa1cef6d1e6af5308ef96c9342f71dbf4b9b5000000006b483045022100a6d44d0a651790a477e75334adfb8aae94d6612d01187b2c02526e340a7fd6c8022028bdf7a64a54906b13b145cd5dab21a26bd4b85d6044e9b97bceab5be44c2a9201210253e8e0254b0c95776786e40984c1aa32a7d03efa6bdacdea5f421b774917d346feffffff026b20fa04000000001976a914024db2e87dd7cfd0e5f266c5f212e21a31d805a588aca0860100000000001976a91421919b94ae5cefcdf0271191459157cdb41c4cbf88aca6240700" @@ -857,7 +857,8 @@ class TestTransaction(ElectrumTestCase): # txns from Bitcoin Core ends <--- -class TestTransactionTestnet(TestCaseForTestnet): +class TestTransactionTestnet(ElectrumTestCase): + TESTNET = True def test_spending_op_cltv_p2sh(self): # from https://github.com/brianddk/reddit/blob/8ca383c9e00cb5a4c1201d1bab534d5886d3cb8f/python/elec-p2sh-hodl.py diff --git a/electrum/tests/test_verifier.py b/electrum/tests/test_verifier.py index 009de2ab9..786544108 100644 --- a/electrum/tests/test_verifier.py +++ b/electrum/tests/test_verifier.py @@ -5,7 +5,7 @@ from electrum.transaction import Transaction from electrum.util import bfh from electrum.verifier import SPV, InnerNodeOfSpvProofIsValidTx -from . import TestCaseForTestnet +from . import ElectrumTestCase MERKLE_BRANCH = [ @@ -19,9 +19,10 @@ VALID_64_BYTE_TX = ('0200000001cb659c5528311901a7aada7db817bd6e3ce2f05d1c62c385b assert len(VALID_64_BYTE_TX) == 128 -class VerifierTestCase(TestCaseForTestnet): +class VerifierTestCase(ElectrumTestCase): # these tests are regarding the attack described in # https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-June/016105.html + TESTNET = True def test_verify_ok_t_tx(self): """Actually mined 64 byte tx should not raise.""" diff --git a/electrum/tests/test_wallet_vertical.py b/electrum/tests/test_wallet_vertical.py index 9a7285daa..c1c395487 100644 --- a/electrum/tests/test_wallet_vertical.py +++ b/electrum/tests/test_wallet_vertical.py @@ -23,7 +23,6 @@ from electrum.network import Network from electrum.plugins.trustedcoin import trustedcoin -from . import TestCaseForTestnet from . import ElectrumTestCase @@ -610,7 +609,8 @@ class TestWalletKeystoreAddressIntegrityForMainnet(ElectrumTestCase): self.assertEqual(w.get_change_addresses()[0], '32tvTmBLfLofu8ps4SWpUJC4fS699jiWvC') -class TestWalletKeystoreAddressIntegrityForTestnet(TestCaseForTestnet): +class TestWalletKeystoreAddressIntegrityForTestnet(ElectrumTestCase): + TESTNET = True def setUp(self): super().setUp() @@ -697,7 +697,8 @@ class TestWalletKeystoreAddressIntegrityForTestnet(TestCaseForTestnet): self.assertEqual(w.get_change_addresses()[0], 'tb1q0fj5mra96hhnum80kllklc52zqn6kppt3hyzr49yhr3ecr42z3ts5777jl') -class TestWalletSending(TestCaseForTestnet): +class TestWalletSending(ElectrumTestCase): + TESTNET = True def setUp(self): super().setUp() @@ -2692,7 +2693,8 @@ class TestWalletSending(TestCaseForTestnet): tx.serialize_as_bytes().hex()) -class TestWalletOfflineSigning(TestCaseForTestnet): +class TestWalletOfflineSigning(ElectrumTestCase): + TESTNET = True def setUp(self): super().setUp() @@ -3399,7 +3401,8 @@ class TestWalletOfflineSigning(TestCaseForTestnet): self.assertEqual('4376fa5f1f6cb37b1f3956175d3bd4ef6882169294802b250a3c672f3ff431c1', tx.wtxid()) -class TestWalletHistory_SimpleRandomOrder(TestCaseForTestnet): +class TestWalletHistory_SimpleRandomOrder(ElectrumTestCase): + TESTNET = True transactions = { "0f4972c84974b908a58dda2614b68cf037e6c03e8291898c719766f213217b67": "01000000029d1bdbe67f0bd0d7bd700463f5c29302057c7b52d47de9e2ca5069761e139da2000000008b483045022100a146a2078a318c1266e42265a369a8eef8993750cb3faa8dd80754d8d541d5d202207a6ab8864986919fd1a7fd5854f1e18a8a0431df924d7a878ec3dc283e3d75340141045f7ba332df2a7b4f5d13f246e307c9174cfa9b8b05f3b83410a3c23ef8958d610be285963d67c7bc1feb082f168fa9877c25999963ff8b56b242a852b23e25edfeffffff9d1bdbe67f0bd0d7bd700463f5c29302057c7b52d47de9e2ca5069761e139da2010000008a47304402201c7fa37b74a915668b0244c01f14a9756bbbec1031fb69390bcba236148ab37e02206151581f9aa0e6758b503064c1e661a726d75c6be3364a5a121a8c12cf618f64014104dc28da82e141416aaf771eb78128d00a55fdcbd13622afcbb7a3b911e58baa6a99841bfb7b99bcb7e1d47904fda5d13fdf9675cdbbe73e44efcc08165f49bac6feffffff02b0183101000000001976a914ca14915184a2662b5d1505ce7142c8ca066c70e288ac005a6202000000001976a9145eb4eeaefcf9a709f8671444933243fbd05366a388ac54c51200", "2791cdc98570cc2b6d9d5b197dc2d002221b074101e3becb19fab4b79150446d": "010000000132201ff125888a326635a2fc6e971cd774c4d0c1a757d742d0f6b5b020f7203a050000006a47304402201d20bb5629a35b84ff9dd54788b98e265623022894f12152ac0e6158042550fe02204e98969e1f7043261912dd0660d3da64e15acf5435577fc02a00eccfe76b323f012103a336ad86546ab66b6184238fe63bb2955314be118b32fa45dd6bd9c4c5875167fdffffff0254959800000000001976a9148d2db0eb25b691829a47503006370070bc67400588ac80969800000000001976a914f96669095e6df76cfdf5c7e49a1909f002e123d088ace8ca1200", @@ -3460,7 +3463,8 @@ class TestWalletHistory_SimpleRandomOrder(TestCaseForTestnet): self.assertEqual(27633300, sum(w.get_balance())) -class TestWalletHistory_EvilGapLimit(TestCaseForTestnet): +class TestWalletHistory_EvilGapLimit(ElectrumTestCase): + TESTNET = True transactions = { # txn A: "511a35e240f4c8855de4c548dad932d03611a37e94e9203fdb6fc79911fe1dd4": "010000000001018aacc3c8f98964232ebb74e379d8ff4e800991eecfcf64bd1793954f5e50a8790100000000fdffffff0340420f0000000000160014dbf321e905d544b54b86a2f3ed95b0ac66a3ddb0ff0514000000000016001474f1c130d3db22894efb3b7612b2c924628d0d7e80841e000000000016001488492707677190c073b6555fb08d37e91bbb75d802483045022100cf2904e09ea9d2670367eccc184d92fcb8a9b9c79a12e4efe81df161077945db02203530276a3401d944cf7a292e0660f36ee1df4a1c92c131d2c0d31d267d52524901210215f523a412a5262612e1a5ef9842dc864b0d73dc61fb4c6bfd480a867bebb1632e181400", @@ -3517,7 +3521,8 @@ class TestWalletHistory_EvilGapLimit(TestCaseForTestnet): self.assertEqual(9999788, sum(w.get_balance())) -class TestWalletHistory_DoubleSpend(TestCaseForTestnet): +class TestWalletHistory_DoubleSpend(ElectrumTestCase): + TESTNET = True transactions = { # txn A: "a3849040f82705151ba12a4389310b58a17b78025d81116a3338595bdefa1625": "020000000001011b7eb29921187b40209c234344f57a3365669c8883a3d511fbde5155f11f64d10000000000fdffffff024c400f0000000000160014b50d21483fb5e088db90bf766ea79219fb377fef40420f0000000000160014aaf5fc4a6297375c32403a9c2768e7029c8dbd750247304402206efd510954b289829f8f778163b98a2a4039deb93c3b0beb834b00cd0add14fd02201c848315ddc52ced0350a981fe1a7f3cbba145c7a43805db2f126ed549eaa500012103083a50d63264743456a3e812bfc91c11bd2a673ba4628c09f02d78f62157e56d788d1700", @@ -3567,7 +3572,8 @@ class TestWalletHistory_DoubleSpend(TestCaseForTestnet): self.assertEqual(999890, sum(w.get_balance())) -class TestImportedWallet(TestCaseForTestnet): +class TestImportedWallet(ElectrumTestCase): + TESTNET = True transactions = { # txn A funds addr1: "0e350564ee7ed4ffce24a998b538f7f3ebbab6fcb4bb331f8bb6b9d86d86fcd8": "02000000000101470cfc737af6bf917ce35bf7224b1021ef87349cd7f150464e6a0e3ee0cf6f1a0400000000fdffffff0261de0c0000000000160014f6aa7ea83b54335553ece4de88b3e9af6fb4ff0b92b78b00000000001600141dfacc496a9c98227631e3df4796baf3ba8254120247304402201a1b70f27ffcaeecaebad147117e9f4f541e3c630112c395e8237b5f1404f9170220600c96b92a55f8ee99da3fcaf9ca5595468742107651c5cea5798b0e672c7a5b012103ccaf45a46ead9648fc60ba0476f3f820d73fbf75f7d9af626d0512a042c1fc9a41091e00",