-from ccxt import ExchangeError, NotSupported, RequestTimeout, InvalidNonce
+from ccxt import AuthenticationError, ExchangeError, NotSupported, RequestTimeout, InvalidNonce
import ccxt_wrapper as ccxt
import time
import dbs
def process(self, actions, before=False, after=False):
try:
+ self.ccxt.check_required_credentials()
for action in actions:
if bool(before) is bool(after):
self.processor.process(action, steps="all")
self.processor.process(action, steps="before")
elif after:
self.processor.process(action, steps="after")
+ except AuthenticationError:
+ self.report.log_error("market_authentication", message="Impossible to authenticate to market")
except Exception as e:
import traceback
self.report.log_error("market_process", exception=e, message=traceback.format_exc())
store_report.assert_called_once()
log_error.assert_not_called()
+ process.reset_mock()
+ log_error.reset_mock()
+ store_report.reset_mock()
+ with self.subTest(authentication_error=True):
+ m.ccxt.check_required_credentials.side_effect = market.ccxt.AuthenticationError
+
+ m.process(["some_action"], before=True)
+ log_error.assert_called_with("market_authentication", message="Impossible to authenticate to market")
+ store_report.assert_called_once()
+
+ m.ccxt.check_required_credentials.side_effect = True
process.reset_mock()
log_error.reset_mock()
store_report.reset_mock()