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