Skip to content
Snippets Groups Projects
Commit 9a72a1c5 authored by Holger Nahrstaedt's avatar Holger Nahrstaedt
Browse files

More Unit tests

* More unit tests
* Handling of Amount for Appbase improved
* Fixed unit tests for Python 2.7
parent dc7d3a68
No related branches found
No related tags found
No related merge requests found
...@@ -48,12 +48,13 @@ class Amount(object): ...@@ -48,12 +48,13 @@ class Amount(object):
self.amount = d[0] self.amount = d[0]
self.asset = d[2] self.asset = d[2]
self.precision = d[1] self.precision = d[1]
self.str_repr = d a = Array([String(d[0]), d[1], d[2]])
self.str_repr = str(a.__str__())
else: else:
self.amount = d.amount self.amount = d.amount
self.asset = d.symbol self.asset = d.symbol
self.precision = d.asset["precision"] self.precision = d.asset["precision"]
self.str_repr = d.json() self.str_repr = json.dumps((d.json()))
def __bytes__(self): def __bytes__(self):
# padding # padding
......
...@@ -248,7 +248,10 @@ class Array(object): ...@@ -248,7 +248,10 @@ class Array(object):
r = [] r = []
for a in self.data: for a in self.data:
try: try:
r.append(JsonObj(a)) if isinstance(a, String):
r.append(str(a))
else:
r.append(JsonObj(a))
except Exception: except Exception:
r.append(str(a)) r.append(str(a))
return json.dumps(r) return json.dumps(r)
......
from builtins import chr
from builtins import range
from builtins import str
import unittest
import hashlib
from binascii import hexlify, unhexlify
import os
import json
from pprint import pprint
from beembase.objects import Amount
from beembase.objects import Operation
from beemgraphenebase.types import (
Uint8, Int16, Uint16, Uint32, Uint64,
Varint32, Int64, String, Bytes, Void,
Array, PointInTime, Signature, Bool,
Set, Fixed_array, Optional, Static_variant,
Map, Id
)
class Testcases(unittest.TestCase):
def test_Amount(self):
a = "1.000 STEEM"
t = Amount(a)
self.assertEqual(a, t.__str__())
self.assertEqual(a, str(t))
a = ["3000", 3, "@@00000032"]
t = Amount(a)
# self.assertEqual(str(a), t.__str__())
self.assertEqual(a, json.loads(str(t)))
def test_Operation(self):
a = ['1000', 3, '@@000000013']
j = ["transfer", {'from': 'a', 'to': 'b', 'amount': a, 'memo': 'c'}]
o = Operation(j)
self.assertEqual(o.json()[1], j[1])
...@@ -6,21 +6,41 @@ from __future__ import unicode_literals ...@@ -6,21 +6,41 @@ from __future__ import unicode_literals
from builtins import bytes from builtins import bytes
from builtins import chr from builtins import chr
from builtins import range from builtins import range
from builtins import str
import unittest import unittest
import hashlib import hashlib
from binascii import hexlify, unhexlify from binascii import hexlify, unhexlify
import os import os
import json import json
from pprint import pprint from pprint import pprint
from beem.amount import Amount
from beembase.operations import Transfer from beembase.operations import Transfer
from beembase.objects import Operation
from beembase.signedtransactions import Signed_Transaction
from beembase.chains import known_chains
wif = "5J4KCbg1G3my9b9hCaQXnHSm6vrwW9xQTJS6ZciW2Kek7cCkCEk"
class Testcases(unittest.TestCase):
class Testcases(unittest.TestCase):
def test_Transfer(self): def test_Transfer(self):
transferJson = {'from': 'test', 'to': 'test1', 'amount': '1.000 SBD', 'memo': 'foobar'} transferJson = {'from': 'test', 'to': 'test1', 'amount': "1.000 STEEM", 'memo': 'foobar'}
t = Transfer(transferJson) t = Transfer(transferJson)
self.assertEqual(transferJson, json.loads(str(t))) self.assertEqual(transferJson, json.loads(str(t)))
self.assertEqual(transferJson, t.json()) self.assertEqual(transferJson, t.json())
self.assertEqual(transferJson, t.toJson()) self.assertEqual(transferJson, t.toJson())
self.assertEqual(transferJson, t.__json__()) self.assertEqual(transferJson, t.__json__())
transferJson = {'from': 'test', 'to': 'test1', 'amount': ['3000', 3, '@@00000032'], 'memo': 'foobar'}
t = Transfer(transferJson)
self.assertEqual(transferJson, json.loads(str(t)))
self.assertEqual(transferJson, t.json())
self.assertEqual(transferJson, t.toJson())
self.assertEqual(transferJson, t.__json__())
o = Operation(Transfer(transferJson))
self.assertEqual(o.json()[1], transferJson)
tx = {'ref_block_num': 0, 'ref_block_prefix': 0, 'expiration': '2018-04-07T09:30:53', 'operations': [o], 'extensions': [], 'signatures': []}
s = Signed_Transaction(tx)
s.sign(wifkeys=[wif], chain="STEEMAPPBASE")
self.assertEqual(s.json()["operations"][0][1], transferJson)
# This Python file uses the following encoding: utf-8
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
import unittest
import json
from beemgraphenebase import objects
from beemgraphenebase import types
from beem.amount import Amount
from beem import Steem
class Testcases(unittest.TestCase):
def test_GrapheneObject(self):
j = {"a": 2, "b": "abcde", "c": ["a", "b"]}
j2 = objects.GrapheneObject(j)
self.assertEqual(j, j2.data)
self.assertEqual(json.loads(j2.__str__()), j2.json())
a = objects.Array(['1000', 3, '@@000000013'])
j = {"a": a}
j2 = objects.GrapheneObject(j)
self.assertEqual(j, j2.data)
self.assertEqual(json.loads(j2.__str__()), j2.json())
a = types.Array(['1000', 3, '@@000000013'])
j = {"a": a}
j2 = objects.GrapheneObject(j)
self.assertEqual(j, j2.data)
self.assertEqual(json.loads(j2.__str__()), j2.json())
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment