for market_config, user_id in helper.main_fetch_markets(pg_config, args.user):
try:
- market_config["apiKey"] = market_config.pop("key")
user_market = market.Market.from_config(market_config, debug=args.debug)
helper.main_process_market(user_market, args.action, before=args.before, after=args.after)
except Exception as e:
from decimal import Decimal as D, ROUND_DOWN
from json import JSONDecodeError
from simplejson.errors import JSONDecodeError as SimpleJSONDecodeError
-from ccxt import ExchangeError, ExchangeNotAvailable
+from ccxt import ExchangeError, ExchangeNotAvailable, InvalidOrder
import requests
# FIXME: correctly handle web call timeouts
else:
try:
self.results.append(self.market.ccxt.create_order(symbol, 'limit', self.action, amount, price=self.rate, account=self.account))
- except ExchangeNotAvailable:
+ except (ExchangeNotAvailable, InvalidOrder):
# Impossible to honor the order (dust amount)
self.status = "closed"
self.mark_finished_order()
ccxt.poloniexE.return_value = self.ccxt
self.ccxt.session.request.return_value = "response"
- m = market.Market.from_config("config")
+ m = market.Market.from_config({"key": "key", "secred": "secret"})
self.assertEqual(self.ccxt, m.ccxt)
m.report.log_http_request.assert_called_with('GET', 'URL', 'data',
'headers', 'response')
- m = market.Market.from_config("config", debug=True)
+ m = market.Market.from_config({"key": "key", "secred": "secret"}, debug=True)
self.assertEqual(True, m.debug)
def test_get_ticker(self):
self.assertEqual("closed", order.status)
mark_finished_order.assert_called_once()
+ self.m.ccxt.create_order.reset_mock()
+ with self.subTest(dust_amount_exception=True),\
+ mock.patch.object(portfolio.Order, "mark_finished_order") as mark_finished_order:
+ order = portfolio.Order("buy", portfolio.Amount("ETH", 0.001),
+ D("0.1"), "BTC", "long", self.m, "trade")
+ self.m.ccxt.create_order.side_effect = portfolio.InvalidOrder
+ order.run()
+ self.m.ccxt.create_order.assert_called_once()
+ self.assertEqual(0, len(order.results))
+ self.assertEqual("closed", order.status)
+ mark_finished_order.assert_called_once()
+
@unittest.skipUnless("unit" in limits, "Unit skipped")
class MouvementTest(WebMockTestCase):