From 8b84d998189e3e15c21f4b08630d18fe510162f9 Mon Sep 17 00:00:00 2001 From: ArpitShukla007 Date: Wed, 22 Jun 2022 13:49:58 +0000 Subject: [PATCH 1/2] Resolved issues related to key error --- planetmint/backend/tarantool/query.py | 2 +- planetmint/transactions/common/transaction.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/planetmint/backend/tarantool/query.py b/planetmint/backend/tarantool/query.py index 8c28643..9cc28b5 100644 --- a/planetmint/backend/tarantool/query.py +++ b/planetmint/backend/tarantool/query.py @@ -171,7 +171,7 @@ def get_assets(connection, assets_ids: list) -> list: asset = get_asset(connection, _id) _returned_data.append(asset) - return sorted(_returned_data, key=lambda k: k["id"], reverse=False) + return sorted(_returned_data, key=lambda k: ("id" not in k, k.get("id", None)), reverse=False) @register_query(TarantoolDBConnection) diff --git a/planetmint/transactions/common/transaction.py b/planetmint/transactions/common/transaction.py index 9189373..2f75f2f 100644 --- a/planetmint/transactions/common/transaction.py +++ b/planetmint/transactions/common/transaction.py @@ -693,7 +693,8 @@ class Transaction(object): assets = list(planet.get_assets(tx_ids)) for asset in assets: if asset is not None: - tx = tx_map[asset[1]] + if 'id' in asset: + tx = tx_map[asset['id']] tx['asset'] = asset tx_ids = list(tx_map.keys()) From e6f87d20e9cbd27500a84c00ba5245aecce980cb Mon Sep 17 00:00:00 2001 From: ArpitShukla007 Date: Tue, 28 Jun 2022 08:48:47 +0000 Subject: [PATCH 2/2] resolve conflicts --- planetmint/backend/tarantool/query.py | 10 ++++++---- planetmint/transactions/common/transaction.py | 2 +- tests/backend/tarantool/test_queries.py | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/planetmint/backend/tarantool/query.py b/planetmint/backend/tarantool/query.py index 9cc28b5..ac01bd3 100644 --- a/planetmint/backend/tarantool/query.py +++ b/planetmint/backend/tarantool/query.py @@ -168,10 +168,12 @@ def get_asset(connection, asset_id: str): 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(asset) - - return sorted(_returned_data, key=lambda k: ("id" not in k, k.get("id", None)), reverse=False) + res = connection.run( + connection.space("assets").select(_id, index="txid_search") + ) + _returned_data.append(res[0]) + sorted_assets = sorted(_returned_data, key=lambda k: k[1], reverse=False) + return [(json.loads(asset[0]), asset[1]) for asset in sorted_assets] @register_query(TarantoolDBConnection) diff --git a/planetmint/transactions/common/transaction.py b/planetmint/transactions/common/transaction.py index 2f75f2f..ac46eca 100644 --- a/planetmint/transactions/common/transaction.py +++ b/planetmint/transactions/common/transaction.py @@ -695,7 +695,7 @@ class Transaction(object): if asset is not None: if 'id' in asset: tx = tx_map[asset['id']] - tx['asset'] = asset + tx['asset'] = asset[0] tx_ids = list(tx_map.keys()) metadata_list = list(planet.get_metadata(tx_ids)) diff --git a/tests/backend/tarantool/test_queries.py b/tests/backend/tarantool/test_queries.py index 8788d47..7c1a40f 100644 --- a/tests/backend/tarantool/test_queries.py +++ b/tests/backend/tarantool/test_queries.py @@ -58,7 +58,7 @@ def test_write_assets(db_conn): documents = query.get_assets(assets_ids=[asset["id"] for asset in assets], connection=db_conn) assert len(documents) == 3 - assert list(documents)[0] == assets[:-1][0] + assert list(documents)[0][0] == assets[:-1][0] def test_get_assets(db_conn):