Skip to content

Commit 515493a

Browse files
committed
[ExchangeTests] add test_is_valid_account
1 parent 1a3c511 commit 515493a

21 files changed

+78
-0
lines changed

additional_tests/exchanges_tests/abstract_authenticated_exchange_tester.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ class AbstractAuthenticatedExchangeTester:
8686
EXPECTED_INVALID_ORDERS_QUANTITY = [] # orders with known invalid quantity exchange order id (usually legacy)
8787
CHECK_EMPTY_ACCOUNT = False # set True when the account to check has no funds. Warning: does not check order
8888
# parse/create/fill/cancel or portfolio & trades parsing
89+
IS_BROKER_ENABLED_ACCOUNT = True # set False when this test account can't generate broker fees
8990

9091
# Implement all "test_[name]" methods, call super() to run the test, pass to ignore it.
9192
# Override the "inner_test_[name]" method to override a test content.
@@ -209,6 +210,21 @@ async def inner_test_get_not_found_order(self):
209210
non_existing_order = await self.exchange_manager.exchange.get_order(self.VALID_ORDER_ID, self.SYMBOL)
210211
assert non_existing_order is None
211212

213+
async def test_is_valid_account(self):
214+
async with self.local_exchange_manager():
215+
await self.inner_test_is_valid_account()
216+
217+
async def inner_test_is_valid_account(self):
218+
is_compatible, error = await self.exchange_manager.exchange_backend.is_valid_account(
219+
always_check_key_rights=True
220+
)
221+
assert is_compatible is self.IS_BROKER_ENABLED_ACCOUNT
222+
if is_compatible:
223+
assert error is None
224+
else:
225+
assert isinstance(error, str)
226+
assert len(error) > 0
227+
212228
async def test_create_and_cancel_limit_orders(self):
213229
async with self.local_exchange_manager():
214230
await self.inner_test_create_and_cancel_limit_orders()

additional_tests/exchanges_tests/test_ascendex.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ async def test_missing_trading_api_key_permissions(self):
5757
async def test_get_not_found_order(self):
5858
await super().test_get_not_found_order()
5959

60+
async def test_is_valid_account(self):
61+
await super().test_is_valid_account()
62+
6063
async def test_create_and_cancel_limit_orders(self):
6164
await super().test_create_and_cancel_limit_orders()
6265

additional_tests/exchanges_tests/test_binance.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ class TestBinanceAuthenticatedExchange(
3838
'7457313043',
3939
'7457370420',
4040
]
41+
IS_BROKER_ENABLED_ACCOUNT = False
4142

4243
async def test_get_portfolio(self):
4344
await super().test_get_portfolio()
@@ -60,6 +61,9 @@ async def test_missing_trading_api_key_permissions(self):
6061
async def test_get_not_found_order(self):
6162
await super().test_get_not_found_order()
6263

64+
async def test_is_valid_account(self):
65+
await super().test_is_valid_account()
66+
6367
async def test_create_and_cancel_limit_orders(self):
6468
await super().test_create_and_cancel_limit_orders()
6569

additional_tests/exchanges_tests/test_binance_futures.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@ async def test_get_and_set_margin_type(self):
8080
async def test_get_and_set_leverage(self):
8181
await super().test_get_and_set_leverage()
8282

83+
async def test_is_valid_account(self):
84+
await super().test_is_valid_account()
85+
8386
async def test_create_and_cancel_limit_orders(self):
8487
await super().test_create_and_cancel_limit_orders()
8588

additional_tests/exchanges_tests/test_bingx.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ async def test_missing_trading_api_key_permissions(self):
5858
async def test_get_not_found_order(self):
5959
await super().test_get_not_found_order()
6060

61+
async def test_is_valid_account(self):
62+
await super().test_is_valid_account()
63+
6164
async def test_create_and_cancel_limit_orders(self):
6265
await super().test_create_and_cancel_limit_orders()
6366

additional_tests/exchanges_tests/test_bitget.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ async def test_missing_trading_api_key_permissions(self):
5959
async def test_get_not_found_order(self):
6060
await super().test_get_not_found_order()
6161

62+
async def test_is_valid_account(self):
63+
await super().test_is_valid_account()
64+
6265
async def test_create_and_cancel_limit_orders(self):
6366
await super().test_create_and_cancel_limit_orders()
6467

additional_tests/exchanges_tests/test_bitmart.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ async def test_missing_trading_api_key_permissions(self):
5757
async def test_get_not_found_order(self):
5858
await super().test_get_not_found_order()
5959

60+
async def test_is_valid_account(self):
61+
await super().test_is_valid_account()
62+
6063
async def test_create_and_cancel_limit_orders(self):
6164
await super().test_create_and_cancel_limit_orders()
6265

additional_tests/exchanges_tests/test_bybit.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ async def test_missing_trading_api_key_permissions(self):
6161
async def test_get_not_found_order(self):
6262
await super().test_get_not_found_order()
6363

64+
async def test_is_valid_account(self):
65+
await super().test_is_valid_account()
66+
6467
async def test_create_and_cancel_limit_orders(self):
6568
await super().test_create_and_cancel_limit_orders()
6669

additional_tests/exchanges_tests/test_bybit_futures.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ async def test_get_and_set_margin_type(self):
7373
async def test_get_and_set_leverage(self):
7474
await super().test_get_and_set_leverage()
7575

76+
async def test_is_valid_account(self):
77+
await super().test_is_valid_account()
78+
7679
async def test_create_and_cancel_limit_orders(self):
7780
await super().test_create_and_cancel_limit_orders()
7881

additional_tests/exchanges_tests/test_coinbase.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ class TestCoinbaseAuthenticatedExchange(
3434
VALID_ORDER_ID = "8bb80a81-27f7-4415-aa50-911ea46d841c"
3535
USE_ORDER_OPERATION_TO_CHECK_API_KEY_RIGHTS = True # set True when api key rights can't be checked using a
3636
EXPECT_MISSING_FEE_IN_CANCELLED_ORDERS = False
37+
IS_BROKER_ENABLED_ACCOUNT = False
3738

3839
async def test_get_portfolio(self):
3940
await super().test_get_portfolio()
@@ -56,6 +57,9 @@ async def test_missing_trading_api_key_permissions(self):
5657
async def test_get_not_found_order(self):
5758
await super().test_get_not_found_order()
5859

60+
async def test_is_valid_account(self):
61+
await super().test_is_valid_account()
62+
5963
async def test_create_and_cancel_limit_orders(self):
6064
await super().test_create_and_cancel_limit_orders()
6165

0 commit comments

Comments
 (0)