From 82e438f6a64cb4b51cb6f3014824a794d92f4304 Mon Sep 17 00:00:00 2001 From: Holger <holger@nahrstaedt.de> Date: Fri, 5 Oct 2018 09:10:55 +0200 Subject: [PATCH] Fix unit test for python2.7 --- beembase/operations.py | 5 ++- tests/beemgraphene/test_types.py | 60 +++++++++++++++++++------------- 2 files changed, 40 insertions(+), 25 deletions(-) diff --git a/beembase/operations.py b/beembase/operations.py index 185fac4b..c9d22a7c 100644 --- a/beembase/operations.py +++ b/beembase/operations.py @@ -17,6 +17,7 @@ from beemgraphenebase.types import ( ) from .objects import GrapheneObject, isArgsThisClass from beemgraphenebase.account import PublicKey +from beemgraphenebase.py23 import PY2, PY3 from .operationids import operations from .objects import ( Operation, @@ -295,8 +296,10 @@ class Witness_set_properties(GrapheneObject): for k in kwargs["props"]: if k[0] in ["key", "new_signing_key"]: continue - if isinstance(k[1], str): + if isinstance(k[1], str) and PY3: is_hex = re.fullmatch(r'[0-9a-fA-F]+', k[1] or '') is not None + elif isinstance(k[1], str) and PY2: + is_hex = re.match(r'[0-9a-fA-F]+', k[1] or '') is not None else: is_hex = False if isinstance(k[1], int) and k[0] in ["account_subsidy_budget", "account_subsidy_decay", "maximum_block_size"]: diff --git a/tests/beemgraphene/test_types.py b/tests/beemgraphene/test_types.py index fb62efba..ac212713 100644 --- a/tests/beemgraphene/test_types.py +++ b/tests/beemgraphene/test_types.py @@ -3,11 +3,23 @@ from __future__ import absolute_import from __future__ import division from __future__ import print_function from __future__ import unicode_literals +from builtins import str import unittest import json from beemgraphenebase import types from beem.amount import Amount from beem import Steem +import unittest +from beemgraphenebase.py23 import ( + py23_bytes, + py23_chr, + bytes_types, + integer_types, + string_types, + text_type, + PY2, + PY3 +) class Testcases(unittest.TestCase): @@ -60,98 +72,98 @@ class Testcases(unittest.TestCase): def test_uint8(self): u = types.Uint8(10) - self.assertEqual(bytes(u), b"\n") + self.assertEqual(py23_bytes(u), b"\n") self.assertEqual(str(u), "10") def test_uint16(self): u = types.Uint16(2**16 - 1) - self.assertEqual(bytes(u), b"\xff\xff") + self.assertEqual(py23_bytes(u), b"\xff\xff") self.assertEqual(str(u), str(2**16 - 1)) def test_uint32(self): u = types.Uint32(2**32 - 1) - self.assertEqual(bytes(u), b"\xff\xff\xff\xff") + self.assertEqual(py23_bytes(u), b"\xff\xff\xff\xff") self.assertEqual(str(u), str(2**32 - 1)) def test_uint64(self): u = types.Uint64(2**64 - 1) - self.assertEqual(bytes(u), b"\xff\xff\xff\xff\xff\xff\xff\xff") + self.assertEqual(py23_bytes(u), b"\xff\xff\xff\xff\xff\xff\xff\xff") self.assertEqual(str(u), str(2**64 - 1)) def test_int64(self): u = types.Int64(2**63 - 1) - self.assertEqual(bytes(u), b"\xff\xff\xff\xff\xff\xff\xff\x7f") + self.assertEqual(py23_bytes(u), b"\xff\xff\xff\xff\xff\xff\xff\x7f") self.assertEqual(str(u), str(9223372036854775807)) def test_int16(self): u = types.Int16(2**15 - 1) - self.assertEqual(bytes(u), b"\xff\x7f") + self.assertEqual(py23_bytes(u), b"\xff\x7f") self.assertEqual(str(u), str(2**15 - 1)) def test_varint32(self): u = types.Varint32(2**32 - 1) - self.assertEqual(bytes(u), b"\xff\xff\xff\xff\x0f") + self.assertEqual(py23_bytes(u), b"\xff\xff\xff\xff\x0f") self.assertEqual(str(u), str(4294967295)) u = types.Id(2**32 - 1) - self.assertEqual(bytes(u), b"\xff\xff\xff\xff\x0f") + self.assertEqual(py23_bytes(u), b"\xff\xff\xff\xff\x0f") self.assertEqual(str(u), str(4294967295)) def test_string(self): u = types.String("HelloFoobar") - self.assertEqual(bytes(u), b"\x0bHelloFoobar") + self.assertEqual(py23_bytes(u), b"\x0bHelloFoobar") self.assertEqual(str(u), "HelloFoobar") u = types.String("\x07\x08\x09\x0a\x0b\x0c\x0d\x0e") - self.assertEqual(bytes(u), b"\x14u0007b\t\nu000bf\ru000e") + self.assertEqual(py23_bytes(u), b"\x14u0007b\t\nu000bf\ru000e") self.assertEqual(str(u), "\x07\x08\x09\x0a\x0b\x0c\x0d\x0e") def test_void(self): u = types.Void() - self.assertEqual(bytes(u), b"") + self.assertEqual(py23_bytes(u), b"") self.assertEqual(str(u), "") def test_array(self): u = types.Array([types.Uint8(10) for x in range(2)] + [11]) - self.assertEqual(bytes(u), b'\x03\n\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + self.assertEqual(py23_bytes(u), b'\x03\n\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') self.assertEqual(str(u), "[10, 10, 11]") u = types.Set([types.Uint16(10) for x in range(10)]) - self.assertEqual(bytes(u), b"\n\n\x00\n\x00\n\x00\n\x00\n\x00\n\x00\n\x00\n\x00\n\x00\n\x00") + self.assertEqual(py23_bytes(u), b"\n\n\x00\n\x00\n\x00\n\x00\n\x00\n\x00\n\x00\n\x00\n\x00\n\x00") self.assertEqual(str(u), "[10, 10, 10, 10, 10, 10, 10, 10, 10, 10]") u = types.Array(["Foobar"]) - # We do not support bytes of Array containing String only! - # self.assertEqual(bytes(u), b'') + # We do not support py23_bytes of Array containing String only! + # self.assertEqual(py23_bytes(u), b'') self.assertEqual(str(u), '["Foobar"]') def test_PointInTime(self): u = types.PointInTime("2018-07-06T22:10:00") - self.assertEqual(bytes(u), b"\xb8\xe8?[") + self.assertEqual(py23_bytes(u), b"\xb8\xe8?[") self.assertEqual(str(u), "2018-07-06T22:10:00") def test_Signature(self): u = types.Signature(b"\x00" * 33) - self.assertEqual(bytes(u), b"\x00" * 33) + self.assertEqual(py23_bytes(u), b"\x00" * 33) self.assertEqual(str(u), '"000000000000000000000000000000000000000000000000000000000000000000"') def test_Bytes(self): u = types.Bytes("00" * 5) - self.assertEqual(bytes(u), b'\x05\x00\x00\x00\x00\x00') + self.assertEqual(py23_bytes(u), b'\x05\x00\x00\x00\x00\x00') self.assertEqual(str(u), "00" * 5) def test_Bool(self): u = types.Bool(True) - self.assertEqual(bytes(u), b"\x01") + self.assertEqual(py23_bytes(u), b"\x01") self.assertEqual(str(u), 'true') u = types.Bool(False) - self.assertEqual(bytes(u), b"\x00") + self.assertEqual(py23_bytes(u), b"\x00") self.assertEqual(str(u), 'false') def test_Optional(self): u = types.Optional(types.Uint16(10)) - self.assertEqual(bytes(u), b"\x01\n\x00") + self.assertEqual(py23_bytes(u), b"\x01\n\x00") self.assertEqual(str(u), '10') self.assertFalse(u.isempty()) u = types.Optional(None) - self.assertEqual(bytes(u), b"\x00") + self.assertEqual(py23_bytes(u), b"\x00") self.assertEqual(str(u), 'None') self.assertTrue(u.isempty()) @@ -161,10 +173,10 @@ class Testcases(unittest.TestCase): return "Foobar" u = types.Static_variant(Tmp(10), 10) - self.assertEqual(bytes(u), b"\n\n\x00") + self.assertEqual(py23_bytes(u), b"\n\n\x00") self.assertEqual(str(u), '[10, "Foobar"]') def test_Map(self): u = types.Map([[types.Uint16(10), types.Uint16(11)]]) - self.assertEqual(bytes(u), b"\x01\n\x00\x0b\x00") + self.assertEqual(py23_bytes(u), b"\x01\n\x00\x0b\x00") self.assertEqual(str(u), '[["10", "11"]]') -- GitLab