From b1e19287020394cde8c9ecd46a55459b894cdbac Mon Sep 17 00:00:00 2001 From: andrei Date: Thu, 5 May 2022 16:19:14 +0300 Subject: [PATCH] test_queries.py -> fixed --- planetmint/backend/tarantool/query.py | 30 +++++++++++-------------- tests/backend/tarantool/test_queries.py | 10 ++++----- 2 files changed, 18 insertions(+), 22 deletions(-) diff --git a/planetmint/backend/tarantool/query.py b/planetmint/backend/tarantool/query.py index ca7c85e..1f1fd11 100644 --- a/planetmint/backend/tarantool/query.py +++ b/planetmint/backend/tarantool/query.py @@ -99,10 +99,7 @@ def get_transactions(connection, transactions_ids: list): def store_metadatas(connection, metadata: list): space = connection.space("meta_data") for meta in metadata: - - data = meta["data"] if not "metadata" in meta else meta["metadata"] - if data: - space.insert((meta["id"], meta["data"] if not "metadata" in meta else meta["metadata"])) + space.insert((meta["id"], meta["data"] if not "metadata" in meta else meta["metadata"])) @register_query(TarantoolDB) @@ -120,25 +117,24 @@ def get_metadata(connection, transaction_ids: list): # asset: {"id": "asset_id"} # asset: {"data": any} -> insert (tx_id, asset["data"]). # def store_asset(connection, asset: dict, tx_id=None): -def store_asset(connection, asset: dict): +def store_asset(connection, asset): space = connection.space("assets") - # print(f"DATA store asset: {asset}") try: - space.insert(asset) - # if tx_id is not None: - # space.insert((asset, tx_id, tx_id)) - # else: - # space.insert((asset, str(asset["id"]), str(asset["id"]))) # TODO Review this function - except: # TODO Add Raise For Duplicate - print("DUPLICATE ERROR") + if isinstance(asset, dict): + space.insert((asset, asset["id"], asset["id"])) + elif isinstance(asset, tuple): + space.insert(asset) + else: + raise Exception(f"Unkown asset format for this query :: {asset} ::") + except Exception as err: # TODO Add Raise For Duplicate + print(err) @register_query(TarantoolDB) def store_assets(connection, assets: list): - space = connection.space("assets") for asset in assets: try: - space.insert(asset) + store_asset(asset=asset) except Exception as ex: # TODO Raise ERROR for Duplicate print(f"EXCEPTION : {ex} ") @@ -156,8 +152,8 @@ def get_assets(connection, assets_ids: list) -> list: _returned_data = [] for _id in list(set(assets_ids)): asset = get_asset(connection, _id) - _returned_data.append(tuple(asset)) - return sorted(_returned_data, key=lambda k: k[0]["id"], reverse=False) + _returned_data.append(asset) + return sorted(_returned_data, key=lambda k: k["id"], reverse=False) @register_query(TarantoolDB) diff --git a/tests/backend/tarantool/test_queries.py b/tests/backend/tarantool/test_queries.py index b3a00e3..738e575 100644 --- a/tests/backend/tarantool/test_queries.py +++ b/tests/backend/tarantool/test_queries.py @@ -51,11 +51,11 @@ def test_write_assets(db_conn): # conn = Connection().get_connection() conn = db_conn.get_connection() assets = [ - ({'id': '1', 'data': '1'}, '1', '1'), - ({'id': '2', 'data': '2'}, '2', '2'), - ({'id': '3', 'data': '3'}, '3', '3'), + {'id': '1', 'data': '1'}, + {'id': '2', 'data': '2'}, + {'id': '3', 'data': '3'}, # Duplicated id. Should not be written to the database - ({'id': '1', 'data': '1'}, '1', '1'), + {'id': '1', 'data': '1'} ] # write the assets @@ -63,7 +63,7 @@ def test_write_assets(db_conn): query.store_asset(connection=conn, asset=asset) # check that 3 assets were written to the database - documents = query.get_assets(assets_ids=[asset[2] for asset in assets], connection=conn) + documents = query.get_assets(assets_ids=[asset["id"] for asset in assets], connection=conn) assert len(documents) == 3 assert list(documents) == assets[:-1]