fixed bitcoin.p2p test and moved to /test
[p2pool.git] / p2pool / test / bitcoin / test_p2p.py
1 from twisted.internet import defer, reactor
2 from twisted.trial import unittest
3
4 from p2pool.bitcoin import data, networks, p2p
5 from p2pool.util import deferral
6
7
8 class Test(unittest.TestCase):
9     @defer.inlineCallbacks
10     def test_get_block(self):
11         factory = p2p.ClientFactory(networks.nets['bitcoin'])
12         c = reactor.connectTCP('127.0.0.1', 8333, factory)
13         try:
14             h = 0x000000000000046acff93b0e76cd10490551bf871ce9ac9fad62e67a07ff1d1e
15             block = yield deferral.retry()(defer.inlineCallbacks(lambda: defer.returnValue((yield (yield factory.getProtocol()).get_block(h)))))()
16             assert data.merkle_hash(map(data.hash256, map(data.tx_type.pack, block['txs']))) == block['header']['merkle_root']
17             assert data.hash256(data.block_header_type.pack(block['header'])) == h
18         finally:
19             factory.stopTrying()
20             c.disconnect()