2626from .helpers import abs_data_path
2727from .common import btc_pair , btc_pair_info
2828from basana .backtesting import errors , exchange , fees , helpers as bt_helpers , orders
29- from basana .core import bar , dt , event
29+ from basana .core import bar , dt , event , logs
3030from basana .core .enums import OrderOperation
3131from basana .core .pair import Pair , PairInfo
3232from basana .external .yahoo import bars
@@ -174,3 +174,27 @@ async def impl():
174174 assert ask == Decimal ("118.41" )
175175
176176 asyncio .run (impl ())
177+
178+
179+ def test_backtesting_log_mode (backtesting_dispatcher , caplog ):
180+ caplog .set_level (logging .INFO )
181+
182+ async def on_event (event : event .Event ):
183+ logging .info ("test_backtesting_log_mode" ) # Should have the even'ts datetime
184+
185+ async def impl ():
186+ event_source = event .FifoQueueEventSource (events = [
187+ event .Event (dt .local_datetime (2000 , 1 , 1 )),
188+ ])
189+ backtesting_dispatcher .subscribe (event_source , on_event )
190+
191+ logging .info ("test_backtesting_log_mode" )
192+ with logs .backtesting_log_mode (backtesting_dispatcher ):
193+ logging .info ("test_backtesting_log_mode" )
194+ await backtesting_dispatcher .run ()
195+ logging .info ("test_backtesting_log_mode" ) # Should have the even'ts datetime
196+
197+ assert caplog .text .count ("test_backtesting_log_mode" ) == 4
198+ assert caplog .text .count ("2000-01-01" ) == 2
199+
200+ asyncio .run (impl ())
0 commit comments