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, ), )
def test_handle_data_when_running_sends_to_on_data(self): # Arrange actor = MockActor() actor.register_base( trader_id=self.trader_id, msgbus=self.msgbus, cache=self.cache, clock=self.clock, logger=self.logger, ) actor.start() data = NewsEvent( impact=NewsImpact.HIGH, name="Unemployment Rate", currency=USD, ts_event=0, ts_init=0, ) # Act actor.handle_data(data) # Assert assert actor.calls == ["on_start", "on_data"] assert actor.object_storer.get_store()[0] == data
def test_data_instantiation(self): # Arrange, Act data_type = DataType(NewsEvent, {"publisher": "NEWS_WIRE"}) data = NewsEvent( impact=NewsImpact.HIGH, name="Unemployment Rate", currency=USD, ts_event=0, ts_init=0, ) generic_data = GenericData(data_type, data) # Assert assert generic_data.data_type == data_type assert generic_data.data == data
def test_data_instantiation(self): # Arrange # Act data_type = DataType(NewsEvent, {"publisher": "NEWS_WIRE"}) data = NewsEvent( impact=NewsImpact.HIGH, name="Unemployment Rate", currency=USD, ts_event_ns=0, ts_recv_ns=0, ) generic_data = GenericData(data_type, data) # Assert self.assertEqual(data_type, generic_data.data_type) self.assertEqual(data, generic_data.data)
def test_on_data_when_not_overridden_does_nothing(self): # Arrange actor = Actor(config=ActorConfig(component_id=self.component_id)) news_event = NewsEvent( impact=NewsImpact.HIGH, name="Unemployment Rate", currency=EUR, ts_event=0, ts_init=0, ) # Act actor.on_data(news_event) # Assert assert True # Exception not raised
def test_handle_data_sends_to_data_engine(self): # Arrange data_type = DataType(NewsEvent, {"Type": "NEWS_WIRE"}) data = NewsEvent( impact=NewsImpact.HIGH, name="Unemployment Rate", currency=USD, ts_event=0, ts_init=0, ) generic_data = GenericData(data_type, data) # Act self.client._handle_data_py(generic_data) # Assert assert self.data_engine.data_count == 1
def test_handle_data_response_sends_to_data_engine(self): # Arrange data_type = DataType(NewsEvent, {"Type": "NEWS_WIRE"}) data = NewsEvent( impact=NewsImpact.HIGH, name="Unemployment Rate", currency=USD, ts_event=0, ts_init=0, ) # Act self.client._handle_data_response_py(data_type, data, self.uuid_factory.generate()) # Assert assert self.data_engine.response_count == 1