Merge pull request #2103 from freqtrade/since_int
Since arguments are in milliseconds integer throughout ccxt.
This commit is contained in:
		| @@ -725,7 +725,8 @@ class Exchange(object): | |||||||
|             return [] |             return [] | ||||||
|         try: |         try: | ||||||
|             # Allow 5s offset to catch slight time offsets (discovered in #1185) |             # Allow 5s offset to catch slight time offsets (discovered in #1185) | ||||||
|             my_trades = self._api.fetch_my_trades(pair, since.timestamp() - 5) |             # since needs to be int in milliseconds | ||||||
|  |             my_trades = self._api.fetch_my_trades(pair, int((since.timestamp() - 5) * 1000)) | ||||||
|             matched_trades = [trade for trade in my_trades if trade['order'] == order_id] |             matched_trades = [trade for trade in my_trades if trade['order'] == order_id] | ||||||
|  |  | ||||||
|             return matched_trades |             return matched_trades | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
| # pragma pylint: disable=protected-access | # pragma pylint: disable=protected-access | ||||||
| import copy | import copy | ||||||
| import logging | import logging | ||||||
| from datetime import datetime | from datetime import datetime, timezone | ||||||
| from random import randint | from random import randint | ||||||
| from unittest.mock import MagicMock, Mock, PropertyMock | from unittest.mock import MagicMock, Mock, PropertyMock | ||||||
|  |  | ||||||
| @@ -11,8 +11,8 @@ import ccxt | |||||||
| import pytest | import pytest | ||||||
| from pandas import DataFrame | from pandas import DataFrame | ||||||
|  |  | ||||||
| from freqtrade import (DependencyException, OperationalException, | from freqtrade import (DependencyException, InvalidOrderException, | ||||||
|                        TemporaryError, InvalidOrderException) |                        OperationalException, TemporaryError) | ||||||
| from freqtrade.exchange import Binance, Exchange, Kraken | from freqtrade.exchange import Binance, Exchange, Kraken | ||||||
| from freqtrade.exchange.exchange import API_RETRY_COUNT | from freqtrade.exchange.exchange import API_RETRY_COUNT | ||||||
| from freqtrade.resolvers.exchange_resolver import ExchangeResolver | from freqtrade.resolvers.exchange_resolver import ExchangeResolver | ||||||
| @@ -1361,7 +1361,7 @@ def test_name(default_conf, mocker, exchange_name): | |||||||
| @pytest.mark.parametrize("exchange_name", EXCHANGES) | @pytest.mark.parametrize("exchange_name", EXCHANGES) | ||||||
| def test_get_trades_for_order(default_conf, mocker, exchange_name): | def test_get_trades_for_order(default_conf, mocker, exchange_name): | ||||||
|     order_id = 'ABCD-ABCD' |     order_id = 'ABCD-ABCD' | ||||||
|     since = datetime(2018, 5, 5) |     since = datetime(2018, 5, 5, tzinfo=timezone.utc) | ||||||
|     default_conf["dry_run"] = False |     default_conf["dry_run"] = False | ||||||
|     mocker.patch('freqtrade.exchange.Exchange.exchange_has', return_value=True) |     mocker.patch('freqtrade.exchange.Exchange.exchange_has', return_value=True) | ||||||
|     api_mock = MagicMock() |     api_mock = MagicMock() | ||||||
| @@ -1391,6 +1391,13 @@ def test_get_trades_for_order(default_conf, mocker, exchange_name): | |||||||
|     orders = exchange.get_trades_for_order(order_id, 'LTC/BTC', since) |     orders = exchange.get_trades_for_order(order_id, 'LTC/BTC', since) | ||||||
|     assert len(orders) == 1 |     assert len(orders) == 1 | ||||||
|     assert orders[0]['price'] == 165 |     assert orders[0]['price'] == 165 | ||||||
|  |     assert api_mock.fetch_my_trades.call_count == 1 | ||||||
|  |     # since argument should be | ||||||
|  |     assert isinstance(api_mock.fetch_my_trades.call_args[0][1], int) | ||||||
|  |     assert api_mock.fetch_my_trades.call_args[0][0] == 'LTC/BTC' | ||||||
|  |     # Same test twice, hardcoded number and doing the same calculation | ||||||
|  |     assert api_mock.fetch_my_trades.call_args[0][1] == 1525478395000 | ||||||
|  |     assert api_mock.fetch_my_trades.call_args[0][1] == int(since.timestamp() - 5) * 1000 | ||||||
|  |  | ||||||
|     ccxt_exceptionhandlers(mocker, default_conf, api_mock, exchange_name, |     ccxt_exceptionhandlers(mocker, default_conf, api_mock, exchange_name, | ||||||
|                            'get_trades_for_order', 'fetch_my_trades', |                            'get_trades_for_order', 'fetch_my_trades', | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user