99 lines
2.9 KiB
Python
99 lines
2.9 KiB
Python
import unittest
|
|
import unittest.mock as mock
|
|
import json
|
|
import xcat.db as db
|
|
import xcat.tests.utils as utils
|
|
|
|
|
|
class TestDB(unittest.TestCase):
|
|
|
|
@mock.patch('xcat.db.plyvel')
|
|
def setUp(self, mock_plyvel):
|
|
self.db = db.DB()
|
|
|
|
def test_init(self):
|
|
self.assertIsInstance(self.db.db, mock.Mock)
|
|
self.assertIsInstance(self.db.preimageDB, mock.Mock)
|
|
|
|
def test_create_with_dict(self):
|
|
test_id = 'test trade id'
|
|
|
|
self.db.create(utils.test_trade_dict, test_id)
|
|
|
|
self.db.db.put.assert_called_with(
|
|
str.encode(test_id),
|
|
str.encode(str(utils.test_trade)))
|
|
|
|
def test_create_with_trade(self):
|
|
test_id = 'test trade id'
|
|
|
|
self.db.create(utils.test_trade, test_id)
|
|
|
|
self.db.db.put.assert_called_with(
|
|
str.encode(test_id),
|
|
str.encode(json.dumps(utils.test_trade_dict,
|
|
sort_keys=True,
|
|
indent=4)))
|
|
|
|
def test_create_with_error(self):
|
|
with self.assertRaises(ValueError) as context:
|
|
self.db.create('this is not valid input', 'trade_id')
|
|
|
|
self.assertTrue(
|
|
'Expected dictionary or Trade object'
|
|
in str(context.exception))
|
|
|
|
def test_createByFundtx_with_dict(self):
|
|
self.db.createByFundtx(utils.test_trade_dict)
|
|
|
|
self.db.db.put.assert_called_with(
|
|
str.encode('5c5e91a89a08b2d6698f50c9fd9bb2fa22da6c74e226c3dd63d'
|
|
'59511566a2fdb'),
|
|
str.encode(str(utils.test_trade)))
|
|
|
|
def test_createByFundtx_with_trade(self):
|
|
self.db.createByFundtx(utils.test_trade)
|
|
|
|
self.db.db.put.assert_called_with(
|
|
str.encode('5c5e91a89a08b2d6698f50c9fd9bb2fa22da6c74e226c3dd63d'
|
|
'59511566a2fdb'),
|
|
str.encode(json.dumps(utils.test_trade_dict,
|
|
sort_keys=True,
|
|
indent=4)))
|
|
|
|
def test_createByFundtx_with_error(self):
|
|
with self.assertRaises(ValueError) as context:
|
|
self.db.createByFundtx('this is not valid input')
|
|
|
|
self.assertTrue(
|
|
'Expected dictionary or Trade object'
|
|
in str(context.exception))
|
|
|
|
def test_get(self):
|
|
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):
|
|
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):
|
|
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):
|
|
pass
|
|
|
|
def test_print_entries(self):
|
|
pass
|