diff --git a/planetmint/backend/connection_tarantool.py b/planetmint/backend/connection_tarantool.py index 15b10ef..49b92c0 100644 --- a/planetmint/backend/connection_tarantool.py +++ b/planetmint/backend/connection_tarantool.py @@ -23,18 +23,18 @@ logger = logging.getLogger(__name__) class TarantoolDB: def __init__(self, host: str, port: int, user: str, password: str, reset_database: bool = False): + self.db_connect = tarantool.connect(host=host, port=port, user=user, password=password) if reset_database: self.drop_database() self.init_database() - self.db_connect = None - self.db_connect = tarantool.connect(host=host, port=port, user=user, password=password) + test_conn = self.db_connect.space("transactions") def get_connection(self, space_name: str = None): return self.db_connect if space_name is None else self.db_connect.space(space_name) def __read_commands(self, file_path): with open(file_path, "r") as cmd_file: - commands = [line + '\n' for line in cmd_file.readlines() if len(str(line)) > 1] + commands = [line.strip() for line in cmd_file.readlines() if len(str(line)) > 1] cmd_file.close() return commands diff --git a/planetmint/backend/tarantool/drop_db.txt b/planetmint/backend/tarantool/drop_db.txt index 275d9a4..f82a4f4 100644 --- a/planetmint/backend/tarantool/drop_db.txt +++ b/planetmint/backend/tarantool/drop_db.txt @@ -1,23 +1,23 @@ -box.space.abci_chains.drop() +box.space.abci_chains:drop() -box.space.assets.drop() +box.space.assets:drop() -box.space.blocks.drop() +box.space.blocks:drop() -box.space.blocks_tx.drop() +box.space.blocks_tx:drop() -box.space.elections.drop() +box.space.elections:drop() -box.space.meta_datas.drop() +box.space.meta_datas:drop() -box.space.pre_commits.drop() +box.space.pre_commits:drop() -box.space.validators.drop() +box.space.validators:drop() -box.space.transactions.drop() +box.space.transactions:drop() -box.space.inputs.drop() +box.space.inputs:drop() -box.space.outputs.drop() +box.space.outputs:drop() -box.space.keys.drop() \ No newline at end of file +box.space.keys:drop() \ No newline at end of file diff --git a/planetmint/backend/tarantool/init_db.txt b/planetmint/backend/tarantool/init_db.txt index cae67ca..8bb7749 100644 --- a/planetmint/backend/tarantool/init_db.txt +++ b/planetmint/backend/tarantool/init_db.txt @@ -63,5 +63,3 @@ keys:create_index('id_search', {type = 'hash', parts={'id'}}) keys:create_index('keys_search', {type = 'tree', unique=false, parts={'public_key'}}) keys:create_index('txid_search', {type = 'tree', unique=false, parts={'transaction_id'}}) keys:create_index('output_search', {type = 'tree', unique=false, parts={'output_id'}}) - -box.schema.user.passwd('pass') diff --git a/planetmint/backend/tarantool/utils.py b/planetmint/backend/tarantool/utils.py index fe67279..8d52d3c 100644 --- a/planetmint/backend/tarantool/utils.py +++ b/planetmint/backend/tarantool/utils.py @@ -10,7 +10,10 @@ def run(commands: list, config: dict): shell=True) for cmd in commands: - sshProcess.stdin.write(cmd) + try: + sshProcess.stdin.write(cmd) + except: + pass sshProcess.stdin.close() # TODO To add here Exception Handler for stdout # for line in sshProcess.stdout: diff --git a/tests/backend/localmongodb/test_queries.py b/tests/backend/localmongodb/test_queries.py index 4a48e02..57e11a4 100644 --- a/tests/backend/localmongodb/test_queries.py +++ b/tests/backend/localmongodb/test_queries.py @@ -19,24 +19,24 @@ def test_get_txids_filtered(signed_create_tx, signed_transfer_tx): from planetmint.models import Transaction conn = connect() # TODO First rewrite to get here tarantool connection print(conn) - # # create and insert two blocks, one for the create and one for the - # # transfer transaction - # conn.db.transactions.insert_one(signed_create_tx.to_dict()) - # conn.db.transactions.insert_one(signed_transfer_tx.to_dict()) - # - # asset_id = Transaction.get_asset_id([signed_create_tx, signed_transfer_tx]) - # - # # Test get by just asset id - # txids = set(query.get_txids_filtered(conn, asset_id)) - # assert txids == {signed_create_tx.id, signed_transfer_tx.id} - # - # # Test get by asset and CREATE - # txids = set(query.get_txids_filtered(conn, asset_id, Transaction.CREATE)) - # assert txids == {signed_create_tx.id} - # - # # Test get by asset and TRANSFER - # txids = set(query.get_txids_filtered(conn, asset_id, Transaction.TRANSFER)) - # assert txids == {signed_transfer_tx.id} + # create and insert two blocks, one for the create and one for the + # transfer transaction + conn.db.transactions.insert_one(signed_create_tx.to_dict()) + conn.db.transactions.insert_one(signed_transfer_tx.to_dict()) + + asset_id = Transaction.get_asset_id([signed_create_tx, signed_transfer_tx]) + + # Test get by just asset id + txids = set(query.get_txids_filtered(conn, asset_id)) + assert txids == {signed_create_tx.id, signed_transfer_tx.id} + + # Test get by asset and CREATE + txids = set(query.get_txids_filtered(conn, asset_id, Transaction.CREATE)) + assert txids == {signed_create_tx.id} + + # Test get by asset and TRANSFER + txids = set(query.get_txids_filtered(conn, asset_id, Transaction.TRANSFER)) + assert txids == {signed_transfer_tx.id} def test_write_assets(): diff --git a/tests/backend/tarantool/test_queries.py b/tests/backend/tarantool/test_queries.py index 938b460..7821b46 100644 --- a/tests/backend/tarantool/test_queries.py +++ b/tests/backend/tarantool/test_queries.py @@ -23,6 +23,7 @@ def test_get_txids_filtered(signed_create_tx, signed_transfer_tx): # transfer transaction create_tx_dict = signed_create_tx.to_dict() transfer_tx_dict = signed_transfer_tx.to_dict() + query.store_transactions(signed_transactions=[create_tx_dict], connection=conn) query.store_transactions(signed_transactions=[transfer_tx_dict], connection=conn) @@ -83,8 +84,6 @@ def test_get_assets(): @pytest.mark.parametrize('table', ['assets', 'metadata']) def test_text_search(table): - from planetmint.backend import connect, query - conn = connect() assert "PASS FOR NOW" # # Example data and tests cases taken from the mongodb documentation