From 386b8f62a729de3587b10de64fccd34ddb916550 Mon Sep 17 00:00:00 2001 From: inso <insomniak.fr@gmaiL.com> Date: Thu, 30 Nov 2017 22:42:30 +0100 Subject: [PATCH] Fix tests --- requirements.txt | 2 +- src/sakia/data/processors/blockchain.py | 52 +++++++++++++------------ 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/requirements.txt b/requirements.txt index 5e01047a..b505e855 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ git+https://github.com/Insoleet/quamash.git@master asynctest networkx -attrs +attrs<=17.2 duniter-mirage duniterpy>=0.40 pytest diff --git a/src/sakia/data/processors/blockchain.py b/src/sakia/data/processors/blockchain.py index c724af32..24211187 100644 --- a/src/sakia/data/processors/blockchain.py +++ b/src/sakia/data/processors/blockchain.py @@ -294,30 +294,34 @@ class BlockchainProcessor: dt_reeval_block_target = max(blockchain.current_buid.number - int(last_reeval_offset / blockchain.parameters.avg_gen_time), 0) - last_ud_reeval_block_number = [b for b in blocks_with_ud if b <= dt_reeval_block_target][-1] - - block_with_ud = await self._bma_connector.get(currency, bma.blockchain.block, - req_args={'number': last_ud_reeval_block_number}) - if block_with_ud: - blockchain.last_members_count = block_with_ud['membersCount'] - blockchain.last_ud = block_with_ud['dividend'] - blockchain.last_ud_base = block_with_ud['unitbase'] - blockchain.last_ud_time = block_with_ud['medianTime'] - blockchain.last_mass = block_with_ud['monetaryMass'] - - self._logger.debug("Requesting previous block with dividend") - dt_reeval_block_target = max(dt_reeval_block_target - int(blockchain.parameters.dt_reeval - / blockchain.parameters.avg_gen_time), - 0) - previous_ud_reeval_block_number = [b for b in blocks_with_ud if b <= dt_reeval_block_target][-1] - - block_with_ud = await self._bma_connector.get(currency, bma.blockchain.block, - req_args={'number': previous_ud_reeval_block_number}) - blockchain.previous_mass = block_with_ud['monetaryMass'] - blockchain.previous_members_count = block_with_ud['membersCount'] - blockchain.previous_ud = block_with_ud['dividend'] - blockchain.previous_ud_base = block_with_ud['unitbase'] - blockchain.previous_ud_time = block_with_ud['medianTime'] + try: + last_ud_reeval_block_number = [b for b in blocks_with_ud if b <= dt_reeval_block_target][-1] + except IndexError: + last_ud_reeval_block_number = 0 + + if last_ud_reeval_block_number: + block_with_ud = await self._bma_connector.get(currency, bma.blockchain.block, + req_args={'number': last_ud_reeval_block_number}) + if block_with_ud: + blockchain.last_members_count = block_with_ud['membersCount'] + blockchain.last_ud = block_with_ud['dividend'] + blockchain.last_ud_base = block_with_ud['unitbase'] + blockchain.last_ud_time = block_with_ud['medianTime'] + blockchain.last_mass = block_with_ud['monetaryMass'] + + self._logger.debug("Requesting previous block with dividend") + dt_reeval_block_target = max(dt_reeval_block_target - int(blockchain.parameters.dt_reeval + / blockchain.parameters.avg_gen_time), + 0) + previous_ud_reeval_block_number = [b for b in blocks_with_ud if b <= dt_reeval_block_target][-1] + + block_with_ud = await self._bma_connector.get(currency, bma.blockchain.block, + req_args={'number': previous_ud_reeval_block_number}) + blockchain.previous_mass = block_with_ud['monetaryMass'] + blockchain.previous_members_count = block_with_ud['membersCount'] + blockchain.previous_ud = block_with_ud['dividend'] + blockchain.previous_ud_base = block_with_ud['unitbase'] + blockchain.previous_ud_time = block_with_ud['medianTime'] except errors.DuniterError as e: if e.ucode != errors.NO_CURRENT_BLOCK: raise -- GitLab