@@ -1168,6 +1168,58 @@ def test__dry_is_price_crossed_without_orderbook_support(default_conf, mocker):
11681168 assert exchange .fetch_l2_order_book .call_count == 0
11691169
11701170
1171+ @pytest .mark .parametrize (
1172+ "crossed,immediate,side,amount,expected_status,expected_fee_rate,expected_calls,taker_or_maker" ,
1173+ [
1174+ (True , True , "buy" , 2.0 , "closed" , 0.005 , 1 , "taker" ),
1175+ (True , False , "sell" , 1.5 , "closed" , 0.005 , 1 , "maker" ),
1176+ (False , False , "sell" , 1.0 , "open" , None , 0 , None ),
1177+ ],
1178+ )
1179+ def test_check_dry_limit_order_filled_parametrized (
1180+ default_conf ,
1181+ mocker ,
1182+ crossed ,
1183+ immediate ,
1184+ side ,
1185+ amount ,
1186+ expected_status ,
1187+ expected_fee_rate ,
1188+ expected_calls ,
1189+ taker_or_maker ,
1190+ ):
1191+ exchange = get_patched_exchange (mocker , default_conf )
1192+ mocker .patch (f"{ EXMS } ._dry_is_price_crossed" , return_value = crossed )
1193+ fee_mock = mocker .patch (f"{ EXMS } .get_fee" , return_value = 0.005 )
1194+
1195+ order = {
1196+ "symbol" : "LTC/USDT" ,
1197+ "status" : "open" ,
1198+ "type" : "limit" ,
1199+ "side" : side ,
1200+ "price" : 25.0 ,
1201+ "amount" : amount ,
1202+ "filled" : 0.0 ,
1203+ "remaining" : amount ,
1204+ "cost" : 25.0 * amount ,
1205+ "fee" : None ,
1206+ }
1207+
1208+ result = exchange .check_dry_limit_order_filled (order , immediate = immediate )
1209+
1210+ assert result ["status" ] == expected_status
1211+ if crossed :
1212+ assert result ["filled" ] == amount
1213+ assert result ["remaining" ] == 0.0
1214+ assert result ["fee" ]["rate" ] == expected_fee_rate
1215+ fee_mock .assert_called_once_with ("LTC/USDT" , taker_or_maker = taker_or_maker )
1216+ else :
1217+ assert result ["filled" ] == 0.0
1218+ assert result ["remaining" ] == amount
1219+ assert result ["fee" ] is None
1220+ assert fee_mock .call_count == expected_calls
1221+
1222+
11711223@pytest .mark .parametrize (
11721224 "side,price,filled,converted" ,
11731225 [
0 commit comments