From 479f6a649a0bf885cee7d54f47f13ab6cab261ad Mon Sep 17 00:00:00 2001 From: Dariusz Kedzierski <dkedzierski@syncad.com> Date: Fri, 6 Nov 2020 12:40:15 +0100 Subject: [PATCH] mock data getters in a loop are now guarded by data check --- hive/indexer/mock_data_provider.py | 6 ++++ hive/steem/client.py | 44 ++++++++++++++++-------------- 2 files changed, 29 insertions(+), 21 deletions(-) diff --git a/hive/indexer/mock_data_provider.py b/hive/indexer/mock_data_provider.py index 4745003ad..df68e3fb7 100644 --- a/hive/indexer/mock_data_provider.py +++ b/hive/indexer/mock_data_provider.py @@ -5,6 +5,12 @@ class MockDataProvider(): """ Data provider for test operations """ block_data = {} + @classmethod + def is_data(cls): + if cls.block_data: + return True + return False + @classmethod def print_data(cls): print(dumps(cls.block_data, indent=4, sort_keys=True)) diff --git a/hive/steem/client.py b/hive/steem/client.py index cb48631cc..e66069c0a 100644 --- a/hive/steem/client.py +++ b/hive/steem/client.py @@ -158,14 +158,15 @@ class SteemClient: num = int(block['block_id'][:8], base=16) blocks[num] = block - for block_num in block_nums: - data = MockBlockProvider.get_block_data(block_num, True) - if data is not None: - if block_num in blocks: - blocks[block_num]["transactions"].extend(data["transactions"]) - blocks[block_num]["transaction_ids"].extend(data["transaction_ids"]) - else: - blocks[block_num] = data + if MockBlockProvider.is_data(): + for block_num in block_nums: + data = MockBlockProvider.get_block_data(block_num, True) + if data is not None: + if block_num in blocks: + blocks[block_num]["transactions"].extend(data["transactions"]) + blocks[block_num]["transaction_ids"].extend(data["transaction_ids"]) + else: + blocks[block_num] = data return [blocks[x] for x in block_nums] @@ -183,19 +184,20 @@ class SteemClient: def enum_virtual_ops(self, conf, begin_block, end_block): """ Get virtual ops for range of blocks """ def add_mock_vops(ret, from_block, end_block): - for block_num in range(from_block, end_block): - mock_vops = MockVopsProvider.get_block_data(block_num) - if mock_vops: - if block_num in ret: - if 'ops_by_block' in mock_vops: - ret[block_num]['ops'].extend([op['op'] for op in mock_vops['ops_by_block'] if op['block'] == block_num]) - if 'ops' in mock_vops: - ret[block_num]['ops'].extend([op['op'] for op in mock_vops['ops'] if op['block'] == block_num]) - else: - if 'ops_by_block' in mock_vops: - ret[block_num] = {'timestamp':mock_vops['timestamp'], "ops" : [op['op'] for op in mock_vops['ops_by_block'] if op['block'] == block_num]} - if 'ops' in mock_vops: - ret[block_num] = {'timestamp':mock_vops['timestamp'], "ops" : [op['op'] for op in mock_vops['ops'] if op['block'] == block_num]} + if MockVopsProvider.is_data(): + for block_num in range(from_block, end_block): + mock_vops = MockVopsProvider.get_block_data(block_num) + if mock_vops: + if block_num in ret: + if 'ops_by_block' in mock_vops: + ret[block_num]['ops'].extend([op['op'] for op in mock_vops['ops_by_block'] if op['block'] == block_num]) + if 'ops' in mock_vops: + ret[block_num]['ops'].extend([op['op'] for op in mock_vops['ops'] if op['block'] == block_num]) + else: + if 'ops_by_block' in mock_vops: + ret[block_num] = {'timestamp':mock_vops['timestamp'], "ops" : [op['op'] for op in mock_vops['ops_by_block'] if op['block'] == block_num]} + if 'ops' in mock_vops: + ret[block_num] = {'timestamp':mock_vops['timestamp'], "ops" : [op['op'] for op in mock_vops['ops'] if op['block'] == block_num]} ret = {} -- GitLab