zbxcat/xcat/tests/unit/test_db.py

99 lines
2.9 KiB
Python
Raw Normal View History

2017-09-15 10:12:13 -07:00
import unittest
import unittest.mock as mock
import json
2017-09-15 10:12:13 -07:00
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):
2017-09-15 10:12:13 -07:00
test_id = 'test trade id'
self.db.create(utils.test_trade_dict, test_id)
2017-09-15 10:12:13 -07:00
self.db.db.put.assert_called_with(
str.encode(test_id),
str.encode(str(utils.test_trade)))
2017-09-15 10:12:13 -07:00
def test_create_with_trade(self):
test_id = 'test trade id'
2017-09-15 10:12:13 -07:00
self.db.create(utils.test_trade, test_id)
2017-09-15 10:12:13 -07:00
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))
2017-09-15 10:12:13 -07:00
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)
2017-09-15 10:12:13 -07:00
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'))
2017-09-15 10:12:13 -07:00
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')
2017-09-15 10:12:13 -07:00
def test_dump(self):
pass
def test_print_entries(self):
pass