Skip to content
Snippets Groups Projects
Commit 0baf4ba3 authored by inso's avatar inso
Browse files

Add converters from string for BlockUID

parent 649f49c8
No related branches found
No related tags found
No related merge requests found
from .block import Block, BlockUID
from .block import Block, BlockUID, block_uid
from .certification import SelfCertification, Certification, Revocation
from .membership import Membership
from .peer import Endpoint, BMAEndpoint, UnknownEndpoint, Peer
......
......@@ -7,6 +7,17 @@ from .constants import pubkey_regex, block_id_regex, block_hash_regex
import re
def block_uid(value):
if isinstance(value, BlockUID):
return value
elif isinstance(value, str):
return BlockUID.from_str(value)
elif value is None:
return BlockUID.empty()
else:
raise TypeError("Cannot convert {0} to BlockUID".format(type(value)))
class BlockUID:
"""
A simple block id
......
......@@ -4,7 +4,7 @@ Created on 12 déc. 2014
@author: inso
'''
import unittest
from duniterpy.documents.block import Block, BlockUID
from duniterpy.documents.block import Block, BlockUID, block_uid
raw_block = """Version: 2
Type: Block
......@@ -518,6 +518,19 @@ class Test_Block(unittest.TestCase):
from_rendered_raw = block.from_signed_raw(rendered_raw)
self.assertEqual(from_rendered_raw.signed_raw(), negative_issuers_frame_var)
def test_block_uid_converter(self):
buid = block_uid("1345-0000338C775613399FA508A8F8B22EB60F525884730639E2A707299E373F43C0")
self.assertEqual(buid.number, 1345)
self.assertEqual(buid.sha_hash, "0000338C775613399FA508A8F8B22EB60F525884730639E2A707299E373F43C0")
def test_block_uid_converter_error(self):
with self.assertRaises(TypeError):
buid = block_uid(1235654)
def test_block_uid_no_convert(self):
buid = block_uid(BlockUID(1345, "0000338C775613399FA508A8F8B22EB60F525884730639E2A707299E373F43C0"))
self.assertEqual(buid.number, 1345)
self.assertEqual(buid.sha_hash, "0000338C775613399FA508A8F8B22EB60F525884730639E2A707299E373F43C0")
if __name__ == '__main__':
unittest.main()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment