Browse Source

multiple max spends: add unit test

re https://github.com/spesmilo/electrum/pull/7492
master
SomberNight 4 years ago
parent
commit
85780eea1a
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
  1. 28
      electrum/tests/test_commands.py

28
electrum/tests/test_commands.py

@ -248,6 +248,34 @@ class TestCommandsTestnet(TestCaseForTestnet):
self.assertEqual("02000000000101a0a8800d2d6bb0a4a8b93b793f39439c4139a40d30e634cf5cd601e5391de6ed0100000000fdffffff0240e2010000000000160014810480bbaf62145abf945ebe5f657c665a3a3732462b060000000000160014a5103285eb519f826520a9f7d3227e1eaa7ec5f802473044022057a6f4b1ec63336c7d0ba233e785ec9f2e2d9c2d67617a50e069f4498ee6a3b7022032fb331e0bef06f46e9cb77bfe94413142653c4912516835e941fa7f170c1a53012103001b55f19541faaf7e6d57dd1bdb9fdc37725fc500e12f2418cc11e0aed4154978181e00",
tx_str)
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
def test_paytomany_multiple_max_spends(self, mock_save_db):
wallet = restore_wallet_from_text('kit virtual quantum festival fortune inform ladder saddle filter soldier start ghost',
gap_limit=2,
path='if_this_exists_mocking_failed_648151893',
config=self.config)['wallet']
# bootstrap wallet
funding_tx = Transaction('02000000000101f59876b1c65bbe3e182ccc7ea7224fe397bb9b70aadcbbf4f4074c75c8a074840000000000fdffffff021f351f00000000001600144eec851dd980cc36af1f629a32325f511604d6af56732d000000000016001439267bc7f3e3fabeae3bc3f73880de22d8b01ba50247304402207eac5f639806a00878488d58ca651d690292145bca5511531845ae21fab309d102207162708bd344840cc1bacff1092e426eb8484f83f5c068ba4ca579813de324540121020e0798c267ff06ee8b838cd465f3cfa6c843a122a04917364ce000c29ca205cae5f31f00')
funding_txid = funding_tx.txid()
self.assertEqual('e8e977bd9c857d84ec1b8f154ae2ee5dfa49fffb7688942a586196c1ad15de15', funding_txid)
wallet.receive_tx_callback(funding_txid, funding_tx, TX_HEIGHT_UNCONFIRMED)
cmds = Commands(config=self.config)
tx_str = cmds._run(
'paytomany', (),
outputs=[["tb1qk3g0t9pw5wctkzz7gh6k3ljfuukn729s67y54e", 0.002],
["tb1qr7evucrllljtryam6y2k3ntmlptq208pghql2h", "2!"],
["tb1qs3msqp0n0qade2haanjw2dkaa5lm77vwvce00h", 0.003],
["tb1qar4ye43tdfj6y5n3yndp9adhs2wuz2v0wgqn5l", "3!"]],
fee="0.00005000",
locktime=2094054,
wallet=wallet)
tx = tx_from_any(tx_str)
self.assertEqual(4, len(tx.outputs()))
self.assertEqual("0200000000010115de15adc19661582a948876fbff49fa5deee24a158f1bec847d859cbd77e9e80100000000fdffffff04400d030000000000160014b450f5942ea3b0bb085e45f568fe49e72d3f28b0e09304000000000016001484770005f3783adcaafdece4e536dded3fbf798e12190f00000000001600141fb2ce607fffe4b193bbd11568cd7bf856053ce19ca5160000000000160014e8ea4cd62b6a65a2527124da12f5b7829dc1298f02473044022079570c62352d7c462ee50851d27f829f7ea5757d258b6b38a6b377a4910ba597022056653f1b15a9693ba790e89ebac60e33b7a1d8357e05cd3d7ecc1ae00e9ab4a8012102eed460ead0cbaa71ad52b70899acf4ea12682ab237207b045c5cf9c6d11c2bcfe6f31f00",
tx_str)
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
def test_signtransaction_without_wallet(self, mock_save_db):
cmds = Commands(config=self.config)

Loading…
Cancel
Save