Add tests for database
This commit is contained in:
parent
94abea7bc2
commit
0cab1f7db3
|
@ -6,7 +6,6 @@ import xcat.zcashRPC
|
|||
import xcat.userInput
|
||||
from xcat.trades import *
|
||||
from xcat.protocol import *
|
||||
import ast
|
||||
|
||||
def save_state(trade, tradeid):
|
||||
save(trade)
|
||||
|
@ -53,8 +52,7 @@ def checkBuyStatus(trade):
|
|||
|
||||
# Import a trade in hex, and save to db
|
||||
def importtrade(hexstr):
|
||||
trade = x2s(hexstr)
|
||||
trade = instantiateTrade(ast.literal_eval(trade))
|
||||
trade = instantiate(trade)
|
||||
save_state(trade)
|
||||
|
||||
# Export a trade by its tradeid
|
||||
|
@ -74,8 +72,6 @@ def newtrade(tradeid):
|
|||
# db.create(trade)
|
||||
save_state(trade, tradeid)
|
||||
|
||||
def instantiateTrade(trade):
|
||||
return Trade(buy=Contract(trade['buy']), sell=Contract(trade['sell']))
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter,
|
||||
|
@ -105,7 +101,7 @@ def main():
|
|||
exporttrade(tradeid)
|
||||
elif command == 'checktrades':
|
||||
trade = get_trade()
|
||||
trade = instantiateTrade(trade)
|
||||
trade = instantiate(trade)
|
||||
if find_role(trade.sell) == 'initiator':
|
||||
role = 'seller'
|
||||
checkSellStatus(trade)
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
import plyvel
|
||||
from .utils import *
|
||||
from xcat.utils import *
|
||||
import binascii
|
||||
import sys
|
||||
import json
|
||||
|
||||
db = plyvel.DB('/tmp/testdb', create_if_missing=True)
|
||||
|
||||
# trade = get_trade()
|
||||
# ## txid we retrieve by
|
||||
# if trade and trade.sell:
|
||||
# if hasattr(trade.sell, 'fund_tx'):
|
||||
# txid = trade.sell.fund_tx
|
||||
|
||||
# Takes object, saves json as bytes
|
||||
def create(trade, tradeid):
|
||||
trade = trade.toJSON()
|
||||
|
@ -26,14 +20,19 @@ def createByFundtx(trade):
|
|||
db.put(b(txid), b(trade))
|
||||
|
||||
def get(txid):
|
||||
return db.get(b(txid))
|
||||
rawtrade = db.get(b(txid))
|
||||
tradestr = x2s(b2x(rawtrade))
|
||||
trade = instantiate(tradestr)
|
||||
return trade
|
||||
|
||||
# db.delete(b'hello')
|
||||
db.get(b'test')
|
||||
# testtrade = get('test')
|
||||
# testtrade = instantiate(testtrade)
|
||||
# print(testtrade)
|
||||
|
||||
# hexstr = get(txid)
|
||||
# print(x2s(hexstr))
|
||||
#
|
||||
|
||||
def print_entries():
|
||||
it = db.iterator()
|
||||
with db.iterator() as it:
|
||||
|
|
|
@ -15,7 +15,11 @@ class DatabaseTest(unittest.TestCase):
|
|||
|
||||
def test_get(self):
|
||||
trade = db.get('test')
|
||||
print("Trade")
|
||||
tradejson = json.loads(trade.toJSON())
|
||||
datajson = json.loads(json.dumps(self.data))
|
||||
self.assertEqual(datajson['sell'], tradejson['sell'])
|
||||
self.assertEqual(datajson['buy'], tradejson['buy'])
|
||||
self.assertEqual(datajson['commitment'], tradejson['commitment'])
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import hashlib, json, random, binascii
|
||||
import xcat.trades
|
||||
import hashlib, json, random, binascii, ast
|
||||
import xcat.trades as trades
|
||||
|
||||
############################################
|
||||
########### Data conversion utils ##########
|
||||
|
@ -26,8 +26,6 @@ def s2x(string):
|
|||
|
||||
def hex2dict(hexstr):
|
||||
jsonstr = x2s(hexstr)
|
||||
print(hexstr['fund_tx'])
|
||||
print(jsonstr)
|
||||
return json.loads(jsonstr)
|
||||
|
||||
def jsonformat(trade):
|
||||
|
@ -84,6 +82,23 @@ def save_secret(secret):
|
|||
######### xcat.json temp file #############
|
||||
#############################################
|
||||
|
||||
def instantiate(tradedata):
|
||||
print("tradedata", tradedata)
|
||||
if type(tradedata) == dict:
|
||||
string = str(tradedata)
|
||||
print("STRING", string)
|
||||
tradedata = json.loads(ast.literal_eval(tradedata))
|
||||
print("@", tradedata)
|
||||
elif type(tradedata) == hex:
|
||||
hexstr = x2s(tradedata)
|
||||
tradedata = ast.literal_eval(hexstr)
|
||||
elif type(tradedata) == str:
|
||||
tradedata = json.loads(tradedata)
|
||||
sell = trades.Contract(tradedata['sell'])
|
||||
buy = trades.Contract(tradedata['buy'])
|
||||
trade = trades.Trade(sell, buy, commitment=tradedata['commitment'])
|
||||
return trade
|
||||
|
||||
def save_trade(trade):
|
||||
print("Trade in save_trade", trade)
|
||||
with open('xcat.json', 'w+') as outfile:
|
||||
|
@ -93,9 +108,7 @@ def get_trade():
|
|||
try:
|
||||
with open('xcat.json') as data_file:
|
||||
xcatdb = json.load(data_file)
|
||||
sell = trades.Contract(xcatdb['sell'])
|
||||
buy = trades.Contract(xcatdb['buy'])
|
||||
trade = trades.Trade(sell, buy, commitment=xcatdb['commitment'])
|
||||
trade = instantiate(tradedata)
|
||||
return trade
|
||||
except:
|
||||
return None
|
||||
|
|
Loading…
Reference in New Issue