Mercurial > public > bitcaviar-plus
comparison tests/test_block.py @ 11:4987a219a704
add tests
author | Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com> |
---|---|
date | Tue, 26 Oct 2021 08:57:11 +0200 |
parents | |
children | 6a0a8cce058e |
comparison
equal
deleted
inserted
replaced
10:6e9f420c117e | 11:4987a219a704 |
---|---|
1 from unittest import TestCase | |
2 from testfixtures import TempDirectory | |
3 from puppy.block import deserialize_block | |
4 | |
5 | |
6 class TestBlock(TestCase): | |
7 genesis_block_hex = """ | |
8 f9beb4d91d0100000100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac72c3e67 | |
9 768f617fc81bc3888a51323a9fb8aa4b1e5e4a29ab5f49ffff001d1dac2b7c0101000000010000000000000000000000000000000000000000 | |
10 000000000000000000000000ffffffff4d04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72 | |
11 206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73ffffffff0100f2052a01000000434104678afdb0 | |
12 fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6b | |
13 f11d5fac00000000 | |
14 """ | |
15 | |
16 expected_genesis_block = { | |
17 'magic_number': 'f9beb4d9', | |
18 'size': '0000011d', | |
19 'id': '000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f', | |
20 'transaction_count': '01', | |
21 'header': { | |
22 'version': '00000001', | |
23 'previous_block_id': '0000000000000000000000000000000000000000000000000000000000000000', | |
24 'merkle_root': '4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b', | |
25 'time': '495fab29', | |
26 'bits': '1d00ffff', | |
27 'nonce': '7c2bac1d' | |
28 }, | |
29 'transactions': [{ | |
30 'version': '00000001', | |
31 'input_count': '01', | |
32 'output_count': '01', | |
33 'lock_time': '00000000', | |
34 'id': '4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b', | |
35 'inputs': [{ | |
36 'id': '0000000000000000000000000000000000000000000000000000000000000000', | |
37 'vout': 'ffffffff', | |
38 'script_sig_size': '4d', | |
39 'script_sig': '04ffff001d0104455468652054696d65732030332f4a616e' | |
40 '2f32303039204368616e63656c6c6f72206f6e206272696e' | |
41 '6b206f66207365636f6e64206261696c6f757420666f722062616e6b73', | |
42 'sequence': 'ffffffff' | |
43 }], | |
44 'outputs': [{ | |
45 'value': '000000012a05f200', | |
46 'script_pub_key_size': '43', | |
47 'script_pub_key': '4104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f' | |
48 '6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac' | |
49 }] | |
50 }] | |
51 } | |
52 | |
53 def test_deserialize_block(self): | |
54 with TempDirectory() as d: | |
55 test_block_binary = bytes.fromhex(self.genesis_block_hex) | |
56 d.write('test_block.dat', test_block_binary) | |
57 | |
58 with open('{}/test_block.dat'.format(d.path), 'rb') as f: | |
59 block = deserialize_block(f) | |
60 self.assertEqual( | |
61 block, self.expected_genesis_block, 'Genesis block is not equal to expected genesis block' | |
62 ) | |
63 |