@@ -56,6 +56,7 @@ class AbstractAuthenticatedExchangeTester:
56
56
SYMBOL = f"{ ORDER_CURRENCY } /{ SETTLEMENT_CURRENCY } "
57
57
TIME_FRAME = "1h"
58
58
VALID_ORDER_ID = "8bb80a81-27f7-4415-aa50-911ea46d841c"
59
+ ALLOW_0_MAKER_FEES = False
59
60
SPECIAL_ORDER_TYPES_BY_EXCHANGE_ID : dict [
60
61
str , (
61
62
str , # symbol
@@ -357,6 +358,8 @@ def assert_has_at_least_one_authenticated_call(calls):
357
358
amount = self .get_order_size (
358
359
portfolio , price , symbol = self .SYMBOL , settlement_currency = self .SETTLEMENT_CURRENCY
359
360
) * 100000
361
+ if amount == 0 :
362
+ amount = 100000
360
363
if self .CHECK_EMPTY_ACCOUNT :
361
364
amount = 10
362
365
# (amount is too large, creating buy order will fail)
@@ -561,7 +564,7 @@ async def inner_test_create_and_cancel_limit_orders(self, symbol=None, settlemen
561
564
open_orders = await self .get_open_orders (exchange_data )
562
565
cancelled_orders = await self .get_cancelled_orders (exchange_data )
563
566
if self .CHECK_EMPTY_ACCOUNT :
564
- assert size == trading_constants .ZERO
567
+ assert size >= trading_constants . ZERO if enable_min_size_check else size == trading_constants .ZERO
565
568
assert open_orders == []
566
569
assert cancelled_orders == []
567
570
return
@@ -1007,7 +1010,7 @@ def check_parsed_closed_order(
1007
1010
assert order .fee is None
1008
1011
else :
1009
1012
try :
1010
- assert order .fee
1013
+ assert order .fee , f"Unexpected missing fee: { order . to_dict () } "
1011
1014
assert isinstance (order .fee [trading_enums .FeePropertyColumns .COST .value ], decimal .Decimal )
1012
1015
has_paid_fees = order .fee [trading_enums .FeePropertyColumns .COST .value ] > trading_constants .ZERO
1013
1016
if has_paid_fees :
@@ -1024,7 +1027,12 @@ def check_parsed_closed_order(
1024
1027
else :
1025
1028
assert order .fee [trading_enums .FeePropertyColumns .IS_FROM_EXCHANGE .value ] is True
1026
1029
except AssertionError :
1027
- if allow_incomplete_fees and self .EXPECT_MISSING_ORDER_FEES_DUE_TO_ORDERS_TOO_OLD_FOR_RECENT_TRADES :
1030
+ if (
1031
+ not order .fee and self .ALLOW_0_MAKER_FEES and
1032
+ order .taker_or_maker == trading_enums .ExchangeConstantsOrderColumns .MAKER .value
1033
+ ):
1034
+ incomplete_fee_orders .append (order )
1035
+ elif allow_incomplete_fees and self .EXPECT_MISSING_ORDER_FEES_DUE_TO_ORDERS_TOO_OLD_FOR_RECENT_TRADES :
1028
1036
incomplete_fee_orders .append (order )
1029
1037
else :
1030
1038
raise
@@ -1310,7 +1318,9 @@ def check_portfolio_changed(self, previous_portfolio, updated_portfolio, has_inc
1310
1318
def _check_order (self , order , size , side ):
1311
1319
if self .CONVERTS_ORDER_SIZE_BEFORE_PUSHING_TO_EXCHANGES :
1312
1320
# actual origin_quantity may vary due to quantity conversion for market orders
1313
- assert size * decimal .Decimal ("0.8" ) <= order .origin_quantity <= size * decimal .Decimal ("1.2" )
1321
+ assert size * decimal .Decimal ("0.8" ) <= order .origin_quantity <= size * decimal .Decimal ("1.2" ), (
1322
+ f"FALSE: { size * decimal .Decimal ('0.8' )} <= { order .origin_quantity } <= { size * decimal .Decimal ('1.2' )} "
1323
+ )
1314
1324
else :
1315
1325
assert order .origin_quantity == size
1316
1326
assert order .side is side
0 commit comments