def test_kwargs(self, mock_init_trade): default_trade_args, _ = TradeFactory.get_default_args() Trade.open_from_tick(tick=TickFactory(), ref="test", **default_trade_args) assert mock_init_trade.call_count == 1 assert mock_init_trade.call_args_list[0][1]["ref"] == "test"
def test_epic(self, mock_init_trade): tick = TickFactory() default_trade_args, _ = TradeFactory.get_default_args() Trade.open_from_tick(tick=tick, **default_trade_args) assert mock_init_trade.call_count == 1 assert (mock_init_trade.call_args_list[0][1]["epic"] == default_trade_args["epic"])
def test_open_datetime(self, mock_init_trade): tick_datetime = arrow.get("2020-01-01 12:34:56") tick = TickFactory(datetime=tick_datetime) default_trade_args, _ = TradeFactory.get_default_args() Trade.open_from_tick(tick=tick, **default_trade_args) assert mock_init_trade.call_count == 1 assert (mock_init_trade.call_args_list[0][1]["open_datetime"] == tick_datetime)
def test_valid_epic(self, mock_trade_open_from_tick): epic = EpicFactory() default_trade_args, _ = TradeFactory.get_default_args() default_trade_args["epic"] = epic Trade.open_from_epic(**default_trade_args) assert mock_trade_open_from_tick.call_args_list == [ call(tick=epic.last_tick, **default_trade_args) ]
def test_direction( self, mock_init_trade, direction, bid, ask, expected_open, expected_current, ): tick_datetime = arrow.get("2020-01-01 12:34:56") tick = TickFactory(bid=bid, ask=ask, datetime=tick_datetime) default_trade_args, _ = TradeFactory.get_default_args() default_trade_args["direction"] = direction Trade.open_from_tick(tick=tick, **default_trade_args) assert mock_init_trade.call_count == 1 assert mock_init_trade.call_args_list[0][1][ "direction"] == direction assert mock_init_trade.call_args_list[0][1][ "open_value"] == expected_open assert (mock_init_trade.call_args_list[0][1]["current_close_value"] == expected_current)
def test_invalid_direction(self): tick = TickFactory() default_trade_args, _ = TradeFactory.get_default_args() default_trade_args["direction"] = "invalid" with pytest.raises(TradeException): Trade.open_from_tick(tick=tick, **default_trade_args)