@@ -55,19 +55,40 @@ async def test_set_mark_price(prices_manager):
55
55
assert prices_manager .mark_price == decimal .Decimal (10 )
56
56
check_event_is_set (prices_manager )
57
57
58
-
58
+
59
59
async def test_set_mark_price_for_exchange_source (prices_manager ):
60
+ prices_manager .set_mark_price (decimal .Decimal (15 ), MarkPriceSources .TICKER_CLOSE_PRICE .value )
61
+ assert prices_manager .mark_price == decimal .Decimal (15 )
62
+ check_event_is_set (prices_manager )
63
+ prices_manager .set_mark_price (decimal .Decimal (30 ), MarkPriceSources .RECENT_TRADE_AVERAGE .value )
64
+ assert prices_manager .mark_price == decimal .Decimal (15 ) # ignore first call
65
+ check_event_is_set (prices_manager )
66
+ prices_manager .set_mark_price (decimal .Decimal (30 ), MarkPriceSources .RECENT_TRADE_AVERAGE .value )
67
+ assert prices_manager .mark_price == decimal .Decimal (30 )
68
+ check_event_is_set (prices_manager )
60
69
prices_manager .set_mark_price (decimal .Decimal (10 ), MarkPriceSources .EXCHANGE_MARK_PRICE .value )
61
70
assert prices_manager .mark_price == decimal .Decimal (10 )
62
71
check_event_is_set (prices_manager )
63
72
prices_manager .set_mark_price (decimal .Decimal (25 ), MarkPriceSources .RECENT_TRADE_AVERAGE .value )
64
- assert prices_manager .mark_price == decimal .Decimal (10 ) # Drop first RT update
65
- prices_manager .set_mark_price (decimal .Decimal (30 ), MarkPriceSources .RECENT_TRADE_AVERAGE .value )
66
- assert prices_manager .mark_price == decimal .Decimal (30 )
73
+ assert prices_manager .mark_price == decimal .Decimal (10 ) # dont override valid exchange mark price
74
+ check_event_is_set (prices_manager )
67
75
prices_manager .set_mark_price (decimal .Decimal (20 ), MarkPriceSources .TICKER_CLOSE_PRICE .value )
68
- assert prices_manager .mark_price == decimal .Decimal (30 )
76
+ assert prices_manager .mark_price == decimal .Decimal (10 ) # dont override valid exchange mark price
77
+ check_event_is_set (prices_manager )
69
78
prices_manager .set_mark_price (decimal .Decimal (15 ), MarkPriceSources .EXCHANGE_MARK_PRICE .value )
70
79
assert prices_manager .mark_price == decimal .Decimal (15 )
80
+ check_event_is_set (prices_manager )
81
+ if not os .getenv ('CYTHON_IGNORE' ):
82
+ prices_manager .mark_price_from_sources = {}
83
+ prices_manager .set_mark_price (decimal .Decimal (10 ), MarkPriceSources .CANDLE_CLOSE_PRICE .value )
84
+ assert prices_manager .mark_price == decimal .Decimal (10 )
85
+ check_event_is_set (prices_manager )
86
+ prices_manager .set_mark_price (decimal .Decimal (22 ), MarkPriceSources .EXCHANGE_MARK_PRICE .value )
87
+ assert prices_manager .mark_price == decimal .Decimal (22 )
88
+ check_event_is_set (prices_manager )
89
+ prices_manager .set_mark_price (decimal .Decimal (15 ), MarkPriceSources .CANDLE_CLOSE_PRICE .value )
90
+ assert prices_manager .mark_price == decimal .Decimal (22 ) # dont override valid exchange mark price
91
+ check_event_is_set (prices_manager )
71
92
72
93
73
94
async def test_set_mark_price_for_ticker_source_only (prices_manager ):
0 commit comments