catch MIN_TRADE_REQUIREMENT_NOT_MET as non-critical exception (#237)

* add MIN_TRADE_REQUIREMENT_NOT_MET to response validation

* implement test
This commit is contained in:
Michael Egger 2017-12-26 09:39:29 +01:00 committed by GitHub
parent de33d69eed
commit a514b92dcf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 38 additions and 2 deletions

View File

@ -45,8 +45,12 @@ class Bittrex(Exchange):
Validates the given bittrex response
and raises a ContentDecodingError if a non-fatal issue happened.
"""
if response['message'] == 'NO_API_RESPONSE':
raise ContentDecodingError('Unable to decode bittrex response')
temp_error_messages = [
'NO_API_RESPONSE',
'MIN_TRADE_REQUIREMENT_NOT_MET',
]
if response['message'] in temp_error_messages:
raise ContentDecodingError('Got {}'.format(response['message']))
@property
def fee(self) -> float:

View File

@ -0,0 +1,32 @@
# pragma pylint: disable=missing-docstring,C0103
import pytest
from requests.exceptions import ContentDecodingError
from freqtrade.exchange import Bittrex
def test_validate_response_success():
response = {
'message': '',
'result': [],
}
Bittrex._validate_response(response)
def test_validate_response_no_api_response():
response = {
'message': 'NO_API_RESPONSE',
'result': None,
}
with pytest.raises(ContentDecodingError, match=r'.*NO_API_RESPONSE.*'):
Bittrex._validate_response(response)
def test_validate_response_min_trade_requirement_not_met():
response = {
'message': 'MIN_TRADE_REQUIREMENT_NOT_MET',
'result': None,
}
with pytest.raises(ContentDecodingError, match=r'.*MIN_TRADE_REQUIREMENT_NOT_MET.*'):
Bittrex._validate_response(response)