Esempio n. 1
0
    def test_handle_data_when_user_code_raises_exception_logs_and_reraises(
            self):
        # Arrange
        actor = KaboomActor()
        actor.register_base(
            trader_id=self.trader_id,
            msgbus=self.msgbus,
            cache=self.cache,
            clock=self.clock,
            logger=self.logger,
        )

        actor.set_explode_on_start(False)
        actor.start()

        # Act, Assert
        with pytest.raises(RuntimeError):
            actor.handle_data(
                NewsEvent(
                    impact=NewsImpact.HIGH,
                    name="Unemployment Rate",
                    currency=USD,
                    ts_event=0,
                    ts_init=0,
                ), )
Esempio n. 2
0
    def test_start_when_user_code_raises_error_logs_and_reraises(self):
        # Arrange
        actor = KaboomActor()
        actor.register_base(
            trader_id=self.trader_id,
            msgbus=self.msgbus,
            cache=self.cache,
            clock=self.clock,
            logger=self.logger,
        )

        # Act, Assert
        with pytest.raises(RuntimeError):
            actor.start()
        assert actor.state == ComponentState.RUNNING
        assert actor.is_running
Esempio n. 3
0
    def test_handle_instrument_with_blow_up_logs_exception(self):
        # Arrange
        actor = KaboomActor()
        actor.register_base(
            trader_id=self.trader_id,
            msgbus=self.msgbus,
            cache=self.cache,
            clock=self.clock,
            logger=self.logger,
        )

        actor.set_explode_on_start(False)
        actor.start()

        # Act, Assert
        with pytest.raises(RuntimeError):
            actor.handle_instrument(AUDUSD_SIM)
Esempio n. 4
0
    def test_fault_when_user_code_raises_error_logs_and_reraises(self):
        # Arrange
        actor = KaboomActor()
        actor.register_base(
            trader_id=self.trader_id,
            msgbus=self.msgbus,
            cache=self.cache,
            clock=self.clock,
            logger=self.logger,
        )

        actor.set_explode_on_start(False)
        actor.start()

        # Act, Assert
        with pytest.raises(RuntimeError):
            actor.fault()
        assert actor.state == ComponentState.FAULTED
        assert actor.is_faulted
Esempio n. 5
0
    def test_handle_bar_when_user_code_raises_exception_logs_and_reraises(
            self):
        # Arrange
        actor = KaboomActor()
        actor.register_base(
            trader_id=self.trader_id,
            msgbus=self.msgbus,
            cache=self.cache,
            clock=self.clock,
            logger=self.logger,
        )

        actor.set_explode_on_start(False)
        actor.start()

        bar = TestStubs.bar_5decimal()

        # Act, Assert
        with pytest.raises(RuntimeError):
            actor.handle_bar(bar)
Esempio n. 6
0
    def test_handle_event_when_user_code_raises_exception_logs_and_reraises(
            self):
        # Arrange
        actor = KaboomActor()
        actor.register_base(
            trader_id=self.trader_id,
            msgbus=self.msgbus,
            cache=self.cache,
            clock=self.clock,
            logger=self.logger,
        )

        actor.set_explode_on_start(False)
        actor.start()

        event = TestStubs.event_cash_account_state(
            account_id=AccountId("TEST", "000"))

        # Act, Assert
        with pytest.raises(RuntimeError):
            actor.on_event(event)