Changeset View
Changeset View
Standalone View
Standalone View
qa/rpc-tests/blockchain.py
Show First 20 Lines • Show All 44 Lines • ▼ Show 20 Lines | class BlockchainTest(BitcoinTestFramework): | ||||
def _test_gettxoutsetinfo(self): | def _test_gettxoutsetinfo(self): | ||||
node = self.nodes[0] | node = self.nodes[0] | ||||
res = node.gettxoutsetinfo() | res = node.gettxoutsetinfo() | ||||
assert_equal(res['total_amount'], Decimal('8725.00000000')) | assert_equal(res['total_amount'], Decimal('8725.00000000')) | ||||
assert_equal(res['transactions'], 200) | assert_equal(res['transactions'], 200) | ||||
assert_equal(res['height'], 200) | assert_equal(res['height'], 200) | ||||
assert_equal(res['txouts'], 200) | assert_equal(res['txouts'], 200) | ||||
assert_equal(res['bytes_serialized'], 13924) | assert_equal(res['bogosize'], 17000), | ||||
assert_equal(res['bestblock'], node.getblockhash(200)) | assert_equal(res['bestblock'], node.getblockhash(200)) | ||||
size = res['disk_size'] | |||||
assert size > 6400 | |||||
assert size < 64000 | |||||
assert_equal(len(res['bestblock']), 64) | assert_equal(len(res['bestblock']), 64) | ||||
assert_equal(len(res['hash_serialized']), 64) | assert_equal(len(res['hash_serialized']), 64) | ||||
self.log.info( | self.log.info( | ||||
"Test that gettxoutsetinfo() works for blockchain with just the genesis block") | "Test that gettxoutsetinfo() works for blockchain with just the genesis block") | ||||
b1hash = node.getblockhash(1) | b1hash = node.getblockhash(1) | ||||
node.invalidateblock(b1hash) | node.invalidateblock(b1hash) | ||||
res2 = node.gettxoutsetinfo() | res2 = node.gettxoutsetinfo() | ||||
assert_equal(res2['transactions'], 0) | assert_equal(res2['transactions'], 0) | ||||
assert_equal(res2['total_amount'], Decimal('0')) | assert_equal(res2['total_amount'], Decimal('0')) | ||||
assert_equal(res2['height'], 0) | assert_equal(res2['height'], 0) | ||||
assert_equal(res2['txouts'], 0) | assert_equal(res2['txouts'], 0) | ||||
assert_equal(res2['bogosize'], 0), | |||||
assert_equal(res2['bestblock'], node.getblockhash(0)) | assert_equal(res2['bestblock'], node.getblockhash(0)) | ||||
assert_equal(len(res2['hash_serialized']), 64) | assert_equal(len(res2['hash_serialized']), 64) | ||||
self.log.info( | self.log.info( | ||||
"Test that gettxoutsetinfo() returns the same result after invalidate/reconsider block") | "Test that gettxoutsetinfo() returns the same result after invalidate/reconsider block") | ||||
node.reconsiderblock(b1hash) | node.reconsiderblock(b1hash) | ||||
res3 = node.gettxoutsetinfo() | res3 = node.gettxoutsetinfo() | ||||
assert_equal(res['total_amount'], res3['total_amount']) | assert_equal(res['total_amount'], res3['total_amount']) | ||||
assert_equal(res['transactions'], res3['transactions']) | assert_equal(res['transactions'], res3['transactions']) | ||||
assert_equal(res['height'], res3['height']) | assert_equal(res['height'], res3['height']) | ||||
assert_equal(res['txouts'], res3['txouts']) | assert_equal(res['txouts'], res3['txouts']) | ||||
assert_equal(res['bogosize'], res3['bogosize']) | |||||
assert_equal(res['bestblock'], res3['bestblock']) | assert_equal(res['bestblock'], res3['bestblock']) | ||||
assert_equal(res['hash_serialized'], res3['hash_serialized']) | assert_equal(res['hash_serialized'], res3['hash_serialized']) | ||||
def _test_getblockheader(self): | def _test_getblockheader(self): | ||||
node = self.nodes[0] | node = self.nodes[0] | ||||
assert_raises( | assert_raises( | ||||
JSONRPCException, lambda: node.getblockheader('nonsense')) | JSONRPCException, lambda: node.getblockheader('nonsense')) | ||||
Show All 13 Lines | def _test_getblockheader(self): | ||||
assert_is_hash_string(header['bits'], length=None) | assert_is_hash_string(header['bits'], length=None) | ||||
assert isinstance(header['time'], int) | assert isinstance(header['time'], int) | ||||
assert isinstance(header['mediantime'], int) | assert isinstance(header['mediantime'], int) | ||||
assert isinstance(header['nonce'], int) | assert isinstance(header['nonce'], int) | ||||
assert isinstance(header['version'], int) | assert isinstance(header['version'], int) | ||||
assert isinstance(int(header['versionHex'], 16), int) | assert isinstance(int(header['versionHex'], 16), int) | ||||
assert isinstance(header['difficulty'], Decimal) | assert isinstance(header['difficulty'], Decimal) | ||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
BlockchainTest().main() | BlockchainTest().main() |