more db tests, equality operators for Trade and Contract
This commit is contained in:
parent
8dc7f77bae
commit
182d9caa97
2
tox.ini
2
tox.ini
|
@ -13,7 +13,7 @@ deps =
|
||||||
|
|
||||||
commands =
|
commands =
|
||||||
flake8 \
|
flake8 \
|
||||||
--ignore=E501,E266 \
|
--ignore=E501,E266,W503 \
|
||||||
--exclude test.py \
|
--exclude test.py \
|
||||||
xcat
|
xcat
|
||||||
pytest \
|
pytest \
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import plyvel
|
import plyvel
|
||||||
import json
|
import json
|
||||||
import xcat.utils as utils
|
import xcat.utils as utils
|
||||||
from xcat.trades import Trade, Contract
|
from xcat.trades import Trade
|
||||||
|
|
||||||
|
|
||||||
class DB():
|
class DB():
|
||||||
|
@ -63,7 +63,7 @@ class DB():
|
||||||
results = []
|
results = []
|
||||||
with self.db.iterator() as it:
|
with self.db.iterator() as it:
|
||||||
for k, v in it:
|
for k, v in it:
|
||||||
j = json.loads(utils.x2s(utils.b2x(v)))
|
j = json.loads(str(v, 'utf-8'))
|
||||||
results.append((str(k, 'utf-8'), j))
|
results.append((str(k, 'utf-8'), j))
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
|
|
@ -70,13 +70,26 @@ class TestDB(unittest.TestCase):
|
||||||
in str(context.exception))
|
in str(context.exception))
|
||||||
|
|
||||||
def test_get(self):
|
def test_get(self):
|
||||||
pass
|
self.db.db.get.return_value = str.encode(utils.test_trade.toJSON())
|
||||||
|
|
||||||
|
trade = self.db.get('test')
|
||||||
|
|
||||||
|
self.assertEqual(trade, utils.test_trade)
|
||||||
|
|
||||||
def test_save_secret(self):
|
def test_save_secret(self):
|
||||||
pass
|
self.db.save_secret('my life', 'I like black liquorice')
|
||||||
|
|
||||||
|
self.db.preimageDB.put.assert_called_with(
|
||||||
|
str.encode('my life'),
|
||||||
|
str.encode('I like black liquorice'))
|
||||||
|
|
||||||
def test_get_secret(self):
|
def test_get_secret(self):
|
||||||
pass
|
self.db.preimageDB.get.return_value = str.encode(
|
||||||
|
'I like black liquorice')
|
||||||
|
|
||||||
|
secret = self.db.get_secret('my life')
|
||||||
|
|
||||||
|
self.assertEqual(secret, 'I like black liquorice')
|
||||||
|
|
||||||
def test_dump(self):
|
def test_dump(self):
|
||||||
pass
|
pass
|
||||||
|
|
|
@ -36,14 +36,21 @@ class Trade():
|
||||||
self.buy.currency,
|
self.buy.currency,
|
||||||
self.buy.initiator)
|
self.buy.initiator)
|
||||||
|
|
||||||
|
def __eq__(self, other):
|
||||||
|
return (self.sell == other.sell
|
||||||
|
and self.buy == other.buy
|
||||||
|
and self.commitment == other.commitment)
|
||||||
|
|
||||||
|
|
||||||
class Contract():
|
class Contract():
|
||||||
def __init__(self, data):
|
|
||||||
allowed = ('fulfiller', 'initiator', 'currency', 'p2sh', 'amount',
|
allowed = ('fulfiller', 'initiator', 'currency', 'p2sh', 'amount',
|
||||||
'fund_tx', 'redeem_tx', 'secret', 'redeemScript',
|
'fund_tx', 'redeem_tx', 'secret', 'redeemScript',
|
||||||
'redeemblocknum', 'locktime')
|
'redeemblocknum', 'locktime')
|
||||||
|
|
||||||
|
def __init__(self, data):
|
||||||
for key in data:
|
for key in data:
|
||||||
if key in allowed:
|
if key in Contract.allowed:
|
||||||
setattr(self, key, data[key])
|
setattr(self, key, data[key])
|
||||||
|
|
||||||
def get_status(self):
|
def get_status(self):
|
||||||
|
@ -56,3 +63,14 @@ class Contract():
|
||||||
return 'funded'
|
return 'funded'
|
||||||
else:
|
else:
|
||||||
return 'empty'
|
return 'empty'
|
||||||
|
|
||||||
|
def __eq__(self, other):
|
||||||
|
for key in Contract.allowed:
|
||||||
|
if key in self.__dict__:
|
||||||
|
if key not in other.__dict__:
|
||||||
|
return False
|
||||||
|
if self.__dict__[key] != other.__dict__[key]:
|
||||||
|
return False
|
||||||
|
if key in other.__dict__ and key not in self.__dict__:
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
Loading…
Reference in New Issue