From 37b5405b6342fcd83e6bfa54c6dccdf96f8abeee Mon Sep 17 00:00:00 2001 From: Inso <insomniak.fr@gmail.com> Date: Sat, 13 Dec 2014 22:42:02 +0100 Subject: [PATCH] More unit tests --- _ucoinpy_test/documents/test_block.py | 4 +-- _ucoinpy_test/documents/test_certification.py | 3 --- _ucoinpy_test/documents/test_membership.py | 14 ++++++++++ _ucoinpy_test/documents/test_peer.py | 26 +++++++++++++++++++ _ucoinpy_test/documents/test_status.py | 10 +++++++ ucoinpy/documents/membership.py | 6 ++--- ucoinpy/documents/peer.py | 9 +++++-- ucoinpy/documents/status.py | 3 +-- 8 files changed, 63 insertions(+), 12 deletions(-) diff --git a/_ucoinpy_test/documents/test_block.py b/_ucoinpy_test/documents/test_block.py index 7eb44319..856c0c45 100644 --- a/_ucoinpy_test/documents/test_block.py +++ b/_ucoinpy_test/documents/test_block.py @@ -115,7 +115,7 @@ class Test_Block: assert len(block.certifications) == 12 assert block.transactions == [] - def test_to_raw_from_signed_raw(self): + def test_toraw_fromsignedraw(self): block = Block.from_signed_raw(raw_block) rendered_raw = block.signed_raw() from_rendered_raw = Block.from_signed_raw(rendered_raw) @@ -139,7 +139,7 @@ class Test_Block: assert from_rendered_raw.certifications == [] assert from_rendered_raw.transactions == [] - def test_to_raw_from_signed_raw_zero(self): + def test_toraw_fromrawzero(self): block = Block.from_signed_raw(raw_block_zero) rendered_raw = block.signed_raw() from_rendered_raw = block.from_signed_raw(rendered_raw) diff --git a/_ucoinpy_test/documents/test_certification.py b/_ucoinpy_test/documents/test_certification.py index e2cf7278..5f0f90d1 100644 --- a/_ucoinpy_test/documents/test_certification.py +++ b/_ucoinpy_test/documents/test_certification.py @@ -58,6 +58,3 @@ class Test_SelfCertification: assert cert.blocknumber == 0 assert cert.blockhash == blockhash assert cert.signatures[0] == "qn/XNJjaGIwfnR+wGrDME6YviCQbG+ywsQWnETlAsL6q7o3k1UhpR5ZTVY9dvejLKuC+1mUEXVTmH+8Ib55DBA==" - - - diff --git a/_ucoinpy_test/documents/test_membership.py b/_ucoinpy_test/documents/test_membership.py index 5cf246bb..ed4fdd7b 100644 --- a/_ucoinpy_test/documents/test_membership.py +++ b/_ucoinpy_test/documents/test_membership.py @@ -43,3 +43,17 @@ class Test_Membership: assert membership.uid == "cgeek" assert membership.signatures[0] == "dkaXIiCYUJtCg8Feh/BKvPYf4uFH9CJ/zY6J4MlA9BsjmcMe4YAblvNt/gJy31b1aGq3ue3h14mLMCu84rraDg==" assert membership.membership_type == 'IN' + + def test_fromraw_toraw(self): + membership = Membership.from_signed_raw(membership_raw) + rendered_membership = membership.signed_raw() + from_rendered_membership = Membership.from_signed_raw(rendered_membership) + assert from_rendered_membership.issuer == "HnFcSms8jzwngtVomTTnzudZx7SHUQY8sVE1y8yBmULk" + assert from_rendered_membership.block_number == 0 + assert from_rendered_membership.block_hash == "DA39A3EE5E6B4B0D3255BFEF95601890AFD80709" + assert from_rendered_membership.cert_ts == 1416335620 + assert from_rendered_membership.uid == "cgeek" + assert from_rendered_membership.signatures[0] == "dkaXIiCYUJtCg8Feh/BKvPYf4uFH9CJ/zY6J4MlA9BsjmcMe4YAblvNt/gJy31b1aGq3ue3h14mLMCu84rraDg==" + assert from_rendered_membership.membership_type == 'IN' + + diff --git a/_ucoinpy_test/documents/test_peer.py b/_ucoinpy_test/documents/test_peer.py index b9e62385..7461fbf1 100644 --- a/_ucoinpy_test/documents/test_peer.py +++ b/_ucoinpy_test/documents/test_peer.py @@ -43,3 +43,29 @@ class TestPeer: assert peer.signatures[0] == "dkaXIiCYUJtCg8Feh/BKvPYf4uFH9CJ/zY6J4MlA9BsjmcMe4YAblvNt/gJy31b1aGq3ue3h14mLMCu84rraDg==" + def test_fromraw_toraw(self): + peer = Peer.from_signed_raw(rawpeer) + rendered_peer = peer.signed_raw() + from_rendered_peer = Peer.from_signed_raw(rendered_peer) + + assert from_rendered_peer.currency == "beta_brousouf" + assert from_rendered_peer.pubkey == "HsLShAtzXTVxeUtQd7yi5Z5Zh4zNvbu8sTEZ53nfKcqY" + assert from_rendered_peer.blockid == "8-1922C324ABC4AF7EF7656734A31F5197888DDD52" + assert len(from_rendered_peer.endpoints) == 3 + assert type(from_rendered_peer.endpoints[0]) is BMAEndpoint + assert type(from_rendered_peer.endpoints[1]) is BMAEndpoint + assert type(from_rendered_peer.endpoints[2]) is UnknownEndpoint + + assert from_rendered_peer.endpoints[0].server == "some.dns.name" + assert from_rendered_peer.endpoints[0].ipv4 == "88.77.66.55" + assert from_rendered_peer.endpoints[0].ipv6 == "2001:0db8:0000:85a3:0000:0000:ac1f" + assert from_rendered_peer.endpoints[0].port == 9001 + + assert from_rendered_peer.endpoints[1].server == "some.dns.name" + assert from_rendered_peer.endpoints[1].ipv4 == "88.77.66.55" + assert from_rendered_peer.endpoints[1].ipv6 == "2001:0db8:0000:85a3:0000:0000:ac1f" + assert from_rendered_peer.endpoints[1].port == 9002 + + assert from_rendered_peer.signatures[0] == "dkaXIiCYUJtCg8Feh/BKvPYf4uFH9CJ/zY6J4MlA9BsjmcMe4YAblvNt/gJy31b1aGq3ue3h14mLMCu84rraDg==" + + diff --git a/_ucoinpy_test/documents/test_status.py b/_ucoinpy_test/documents/test_status.py index 2e85e078..912db761 100644 --- a/_ucoinpy_test/documents/test_status.py +++ b/_ucoinpy_test/documents/test_status.py @@ -26,3 +26,13 @@ class Test_Status: assert status.recipient == "8Fi1VSTbjkXguwThF4v2ZxC5whK7pwG2vcGTkPUPjPGU" assert status.signatures[0] == "dkaXIiCYUJtCg8Feh/BKvPYf4uFH9CJ/zY6J4MlA9BsjmcMe4YAblvNt/gJy31b1aGq3ue3h14mLMCu84rraDg==" + def test_fromraw_toraw(self): + status = Status.from_signed_raw(raw_status) + rendered_status = status.signed_raw() + from_rendered_status = Status.from_signed_raw(rendered_status) + assert from_rendered_status.status == 'UP' + assert from_rendered_status.blockid == "8-1922C324ABC4AF7EF7656734A31F5197888DDD52" + assert from_rendered_status.sender == "HsLShAtzXTVxeUtQd7yi5Z5Zh4zNvbu8sTEZ53nfKcqY" + assert from_rendered_status.recipient == "8Fi1VSTbjkXguwThF4v2ZxC5whK7pwG2vcGTkPUPjPGU" + assert from_rendered_status.signatures[0] == "dkaXIiCYUJtCg8Feh/BKvPYf4uFH9CJ/zY6J4MlA9BsjmcMe4YAblvNt/gJy31b1aGq3ue3h14mLMCu84rraDg==" + diff --git a/ucoinpy/documents/membership.py b/ucoinpy/documents/membership.py index 7dae36ca..3f142a7f 100644 --- a/ucoinpy/documents/membership.py +++ b/ucoinpy/documents/membership.py @@ -100,15 +100,15 @@ class Membership(Document): membership_type, uid, cert_ts, signature) def raw(self): - return """ -Version: {0} + return """Version: {0} Type: Membership Currency: {1} Issuer: {2} Block: {3}-{4} Membership: {5} UserID: {6} -CertTS: {7}""".format(self.version, +CertTS: {7} +""".format(self.version, self.currency, self.issuer, self.block_number, self.block_hash, diff --git a/ucoinpy/documents/peer.py b/ucoinpy/documents/peer.py index 50eb939a..1148785a 100644 --- a/ucoinpy/documents/peer.py +++ b/ucoinpy/documents/peer.py @@ -74,8 +74,7 @@ class Peer(Document): return cls(version, currency, pubkey, blockid, endpoints, signature) def raw(self): - doc = """ -Version: {0} + doc = """Version: {0} Type: Peer Currency: {1} PublicKey: {2} @@ -116,6 +115,12 @@ class UnknownEndpoint(Endpoint): properties = inline.split()[1:] return cls(api, properties) + def inline(self): + doc = self.api + for p in self.properties: + doc += " {0}".format(p) + return doc + class BMAEndpoint(Endpoint): re_inline = re.compile('^BASIC_MERKLED_API(?: ([a-z_][a-z0-9-_.]+))?(?: ([0-9.]+))?(?: ([0-9a-f:]+))?(?: ([0-9]+))$') diff --git a/ucoinpy/documents/status.py b/ucoinpy/documents/status.py index 21df9013..5b25bfae 100644 --- a/ucoinpy/documents/status.py +++ b/ucoinpy/documents/status.py @@ -73,8 +73,7 @@ class Status(Document): sender, recipient, signature) def raw(self): - return ''' -Version: {0} + return '''Version: {0} Type: Status Currency: {1} Status: {2} -- GitLab