diff --git a/duniterpy/documents/block.py b/duniterpy/documents/block.py index a1ae9b2006d323e3c0a7a8ba99e1e453b7fe62db..2c304758a0bc6a7fc9eff0f734633465aab1bb65 100644 --- a/duniterpy/documents/block.py +++ b/duniterpy/documents/block.py @@ -255,55 +255,77 @@ class Block(Document): @classmethod def from_parsed_json(cls: Type[BlockType], parsed_json_block: dict) -> BlockType: """return a block from the python structure produced when parsing json""" - b = parsed_json_block # alias for readability + b = parsed_json_block # alias for readability version = b["version"] currency = b["currency"] - arguments = { # arguments used to create block - "version": b["version"], - "currency": b["currency"], - "number": b["number"], - "powmin": b["powMin"], - "time": b["time"], - "mediantime": b["medianTime"], - "ud": b["dividend"], - "unit_base": b["unitbase"], - "issuer": b["issuer"], - "issuers_frame": b["issuersFrame"], - "issuers_frame_var": b["issuersFrameVar"], - "different_issuers_count": b["issuersCount"], - "prev_hash": b["previousHash"], - "prev_issuer": b["previousIssuer"], - "parameters": b["parameters"], - "members_count": b["membersCount"], - "identities": b["identities"], - "joiners": b["joiners"], - "actives": b["actives"], - "leavers": b["leavers"], - "revokations": b["revoked"], - "excluded": b["excluded"], - "certifications": b["certifications"], - "transactions": b["transactions"], - "inner_hash": b["inner_hash"], - "nonce": b["nonce"], - "signature": b["signature"], + arguments = { # arguments used to create block + "version": b["version"], + "currency": b["currency"], + "number": b["number"], + "powmin": b["powMin"], + "time": b["time"], + "mediantime": b["medianTime"], + "ud": b["dividend"], + "unit_base": b["unitbase"], + "issuer": b["issuer"], + "issuers_frame": b["issuersFrame"], + "issuers_frame_var": b["issuersFrameVar"], + "different_issuers_count": b["issuersCount"], + "prev_hash": b["previousHash"], + "prev_issuer": b["previousIssuer"], + "parameters": b["parameters"], + "members_count": b["membersCount"], + "identities": b["identities"], + "joiners": b["joiners"], + "actives": b["actives"], + "leavers": b["leavers"], + "revokations": b["revoked"], + "excluded": b["excluded"], + "certifications": b["certifications"], + "transactions": b["transactions"], + "inner_hash": b["inner_hash"], + "nonce": b["nonce"], + "signature": b["signature"], } # parameters: Optional[Sequence[str]] - if arguments["parameters"]: + if arguments["parameters"]: arguments["parameters"] = arguments["parameters"].split(":") # identities: List[Identity] - arguments["identities"] = [Identity.from_inline(version, currency, i+'\n') for i in arguments["identities"]] + arguments["identities"] = [ + Identity.from_inline(version, currency, i + "\n") + for i in arguments["identities"] + ] # joiners: List[Membership] - arguments["joiners"] = [Membership.from_inline(version, currency, "IN", i+'\n') for i in arguments["joiners"]] + arguments["joiners"] = [ + Membership.from_inline(version, currency, "IN", i + "\n") + for i in arguments["joiners"] + ] # actives: List[Membership] - arguments["actives"] = [Membership.from_inline(version, currency, "IN", i+'\n') for i in arguments["actives"]] + arguments["actives"] = [ + Membership.from_inline(version, currency, "IN", i + "\n") + for i in arguments["actives"] + ] # leavers: List[Membership] - arguments["leavers"] = [Membership.from_inline(version, currency, "OUT", i+'\n') for i in arguments["leavers"]] + arguments["leavers"] = [ + Membership.from_inline(version, currency, "OUT", i + "\n") + for i in arguments["leavers"] + ] # revokations: List[Revocation] - arguments["revokations"] = [Revocation.from_inline(version, currency, i+'\n') for i in arguments["revokations"]] + arguments["revokations"] = [ + Revocation.from_inline(version, currency, i + "\n") + for i in arguments["revokations"] + ] # certifications: List[Certification] - arguments["certifications"] = [Certification.from_inline(version, currency, arguments["inner_hash"], i+'\n') for i in arguments["certifications"]] + arguments["certifications"] = [ + Certification.from_inline( + version, currency, arguments["inner_hash"], i + "\n" + ) + for i in arguments["certifications"] + ] # transactions: List[Transaction] - arguments["transactions"] = [Transaction.from_bma_history(currency, i) for i in arguments["transactions"]] + arguments["transactions"] = [ + Transaction.from_bma_history(currency, i) for i in arguments["transactions"] + ] # now that the arguments are ready, return the block return cls(**arguments) diff --git a/tests/documents/test_block.py b/tests/documents/test_block.py index 48d7f547c34790faec842db4dd3e8ede1ccd7b90..37446e1f67a37207247d34adfa5473c476f894c6 100644 --- a/tests/documents/test_block.py +++ b/tests/documents/test_block.py @@ -1647,12 +1647,6 @@ json_block_250004 = """ """ - - - - - - class TestBlock(unittest.TestCase): def test_fromraw(self): block = Block.from_signed_raw(raw_block) @@ -1970,29 +1964,16 @@ AywstQpC0S5iaA/YQvbz2alpP6zTYG3tjkWpxy1jgeCo028Te2V327bBZbfDGDzsjxOrF4UVmEBiGsgb def test_from_parsed_json_block_0(self): parsed_json_block = json.loads(json_block_0) block = Block.from_parsed_json(parsed_json_block) - self.assertEqual( - block.version, - 10 - ) - self.assertEqual( - len(block.identities), - 59 - ) + self.assertEqual(block.version, 10) + self.assertEqual(len(block.identities), 59) def test_from_parsed_json_block_250004(self): parsed_json_block = json.loads(json_block_250004) block = Block.from_parsed_json(parsed_json_block) + self.assertEqual(len(block.transactions), 8) + self.assertEqual(block.transactions[5].blockstamp.number, 250002) self.assertEqual( - len(block.transactions), - 8 - ) - self.assertEqual( - block.transactions[5].blockstamp.number, - 250002 - ) - self.assertEqual( - block.transactions[5].comment, - 'Merci pour la farine de chataigne' + block.transactions[5].comment, "Merci pour la farine de chataigne" )