test_transaction: add Transaction.sweep() test case

This commit is contained in:
Roman Zeyde 2015-08-25 13:37:12 +03:00
parent 023cd9eeb0
commit 33b78551a3
1 changed files with 51 additions and 0 deletions

View File

@ -112,3 +112,54 @@ class TestTransaction(unittest.TestCase):
tx.sign(keypairs={x_pubkey: privkey})
self.assertEquals(tx.serialize(), signed_blob)
def test_sweep(self):
privkeys = ['5HuH1SHoSVrgtPEwew9JzVAHGoKyp47x564mBCTgVmUT2Me1Q18']
unspent = [
{
"height": 371447,
"tx_hash": "8e4d173db094786cc128b0c12eebc2200c0d8bfc3ad04ba39f487222d18bae3c",
"tx_pos": 0,
"value": 599995800
}
]
to_address = '1JtBahwvii2pRkBmb4QMfcJQux1rk3Jkbq'
network = NetworkMock(unspent)
tx = transaction.Transaction.sweep(privkeys, network, to_address, fee=5000)
result = transaction.deserialize(tx.serialize())
expected = {
'inputs': [{
'address': '1t28kmZypcPQrunmJk212dcPGPxbBtB6Y',
'is_coinbase': False,
'num_sig': 1,
'prevout_hash': '8e4d173db094786cc128b0c12eebc2200c0d8bfc3ad04ba39f487222d18bae3c',
'prevout_n': 0,
'pubkeys': ['047b9f9014f8d0d6f24dcaf5681b6ab185bd821e0fcce29d84e0452845baf1b2dbe332a7cd4dbdab786adda6d71b2188298c756b265c63de2794f7317b71a7ac02'],
'scriptSig': '48304502203f1ff200490d18bcb802c7cf7ba4264727b089f1db6746a62997285b5ac77969022100e495591ea5111bb23a782984736f32942570fda781b7ed085fc8c88a9756aaac0141047b9f9014f8d0d6f24dcaf5681b6ab185bd821e0fcce29d84e0452845baf1b2dbe332a7cd4dbdab786adda6d71b2188298c756b265c63de2794f7317b71a7ac02',
'sequence': 4294967295,
'signatures': ['304502203f1ff200490d18bcb802c7cf7ba4264727b089f1db6746a62997285b5ac77969022100e495591ea5111bb23a782984736f32942570fda781b7ed085fc8c88a9756aaac'],
'x_pubkeys': ['047b9f9014f8d0d6f24dcaf5681b6ab185bd821e0fcce29d84e0452845baf1b2dbe332a7cd4dbdab786adda6d71b2188298c756b265c63de2794f7317b71a7ac02']}],
'lockTime': 0,
'outputs': [{'address': '1JtBahwvii2pRkBmb4QMfcJQux1rk3Jkbq',
'prevout_n': 0,
'scriptPubKey': '76a914c4282f6060b811ee695ebb2068b8788213451d6a88ac',
'type': 'address',
'value': 599990800}],
'version': 1}
self.assertEquals(result, expected)
network = NetworkMock([])
tx = transaction.Transaction.sweep(privkeys, network, to_address, fee=5000)
self.assertEquals(tx, None)
privkeys = []
tx = transaction.Transaction.sweep(privkeys, network, to_address, fee=5000)
self.assertEquals(tx, None)
class NetworkMock(object):
def __init__(self, unspent):
self.unspent = unspent
def synchronous_get(self, arg):
return [self.unspent]