diff --git a/.travis.yml b/.travis.yml index ab21842912f3e007d48f3a17da7e84ce8568596e..8ed0348aa5009b371f5754837363789bf3fad36c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,7 +36,7 @@ matrix: - os: linux python: 3.6 env: - - TOXENV=short + - TOXENV=py36short - os: osx osx_image: xcode9.3 language: objective-c @@ -56,7 +56,12 @@ before_install: - pip install --upgrade pip - pip install --upgrade wheel # Set numpy version first, other packages link against it - - pip install six nose coverage codecov tox-travis pytest parameterized secp256k1 cryptography scrypt + - pip install six nose coverage codecov tox-travis pytest pytest-cov coveralls codacy-coverage parameterized secp256k1 cryptography scrypt script: - tox + +after_success: + - coveralls + # - codecov + # - python-codacy-coverage -r coverage.xml diff --git a/beem/block.py b/beem/block.py index f8deddd01565ac3b752bd29a9f297fa35043f549..fb3667899ba50bb8922d08d254595ded99339af7 100644 --- a/beem/block.py +++ b/beem/block.py @@ -47,7 +47,7 @@ class Block(BlockchainObject): else: block = self.steem.rpc.get_block(self.identifier) if not block: - raise BlockDoesNotExistsException + raise BlockDoesNotExistsException(str(self.identifier)) super(Block, self).__init__(block, steem_instance=self.steem) @property @@ -98,7 +98,7 @@ class BlockHeader(BlockchainObject): else: block = self.steem.rpc.get_block_header(self.identifier) if not block: - raise BlockDoesNotExistsException + raise BlockDoesNotExistsException(str(self.identifier)) super(BlockHeader, self).__init__( block, steem_instance=self.steem diff --git a/beem/steem.py b/beem/steem.py index 8271d74dde723fd69aa59eee4605fb838479929f..09ef7c9b883d8e50b52c0e20dc81ff12f9080c97 100644 --- a/beem/steem.py +++ b/beem/steem.py @@ -492,12 +492,12 @@ class Steem(object): # get props global_properties = self.get_dynamic_global_properties() vote_power_reserve_rate = global_properties['vote_power_reserve_rate'] - max_vote_denom = vote_power_reserve_rate * (5 * 60 * 60 * 24) / (60 * 60 * 24) + max_vote_denom = vote_power_reserve_rate * (5 * 60 * 60 * 24) return max_vote_denom def _calc_resulting_vote(self, voting_power=10000, vote_pct=10000): # determine voting power used - used_power = int((voting_power * vote_pct) / 10000) + used_power = int((voting_power * vote_pct) / 10000 * (60 * 60 * 24)) max_vote_denom = self._max_vote_denom() used_power = int((used_power + max_vote_denom - 1) / max_vote_denom) return used_power @@ -549,7 +549,7 @@ class Steem(object): used_power = int(math.ceil(rshares * 10000 / vests)) used_power = used_power * max_vote_denom - vote_pct = int(used_power * 10000 / voting_power) + vote_pct = int(used_power * 10000 / (60 * 60 * 24) / voting_power) return vote_pct def get_chain_properties(self, use_stored_data=True): diff --git a/beemgrapheneapi/graphenerpc.py b/beemgrapheneapi/graphenerpc.py index f74a221362d26073c6afcf75660a4d725cb3efa2..e2f83714bdcb745fb282db7c75c8a2b15f0f81db 100644 --- a/beemgrapheneapi/graphenerpc.py +++ b/beemgrapheneapi/graphenerpc.py @@ -259,7 +259,12 @@ class GrapheneRPC(object): reply = self.ws_send(json.dumps(payload, ensure_ascii=False).encode('utf8')) else: reply = self.request_send(json.dumps(payload, ensure_ascii=False).encode('utf8')) - break + if reply == '': + self.error_cnt[self.url] += 1 + sleep_and_check_retries(self.num_retries_call, self.error_cnt_call, self.url, "Emply Reply") + self.rpcconnect() + else: + break except KeyboardInterrupt: raise except WebSocketConnectionClosedException: diff --git a/tests/beem/test_block.py b/tests/beem/test_block.py index ec6edf639acf821612b9740c7ff29dbe77228373..6e80684c3093c0208fc0c33be965e16b3b55f5e3 100644 --- a/tests/beem/test_block.py +++ b/tests/beem/test_block.py @@ -85,4 +85,3 @@ class Testcases(unittest.TestCase): exceptions.BlockDoesNotExistsException ): BlockHeader(0, steem_instance=bts) - diff --git a/tox.ini b/tox.ini index e2f2f2d3fd95c3773c446b040c3cc864a071c353..f55118a4ae8d375490bb26f65916d746f3133af3 100644 --- a/tox.ini +++ b/tox.ini @@ -42,6 +42,23 @@ commands = coverage report -m coverage xml +[testenv:py36short] +deps = + mock>=2.0.0 + pytest + pytest-mock + parameterized + coverage + cryptography + secp256k1 + scrypt +commands = + coverage run --parallel-mode -m pytest tests/beemapi tests/beembase tests/beemgraphene {posargs} + coverage combine + coverage report -m + coverage xml + + [testenv:flake8] deps= flake8