1414 ConnectionConfig ,
1515 LocalStateStoreConfig ,
1616 LogConsoleHandlerConfig ,
17+ LogFileHandlerConfig ,
18+ LogHandlerConfig ,
1719 LogLevel ,
1820 RawStateStoreConfig ,
1921 StateStoreConfig ,
@@ -36,32 +38,38 @@ def get_checkin_worker(connection_config: ConnectionConfig) -> CheckinWorker:
3638
3739
3840@pytest .mark .parametrize (
39- "config_level , override_level, expected_logs, unexpected_logs" ,
41+ "log_handlers , override_level, expected_logs, unexpected_logs" ,
4042 [
4143 (
42- " INFO" ,
44+ [ LogConsoleHandlerConfig ( type = "console" , level = LogLevel ( " INFO"))] ,
4345 None ,
4446 ["This is an info message." , "This is a warning message." ],
4547 ["This is a debug message." ],
4648 ),
4749 (
48- " INFO" ,
50+ [ LogConsoleHandlerConfig ( type = "console" , level = LogLevel ( " INFO"))] ,
4951 "DEBUG" ,
5052 ["This is a debug message." , "This is an info message." , "This is a warning message." ],
5153 [],
5254 ),
5355 (
54- " INFO" ,
56+ [ LogConsoleHandlerConfig ( type = "console" , level = LogLevel ( " INFO"))] ,
5557 "WARNING" ,
5658 ["This is a warning message." ],
5759 ["This is a debug message." , "This is an info message." ],
5860 ),
61+ (
62+ [LogFileHandlerConfig (type = "file" , level = LogLevel ("INFO" ), path = Path ("non-existing/test.log" ))],
63+ "WARNING" ,
64+ ["This is a warning message." ],
65+ ["Falling back to console logging." , "This is a debug message." , "This is an info message." ],
66+ ),
5967 ],
6068)
6169def test_log_level_override (
6270 capsys : pytest .CaptureFixture [str ],
6371 connection_config : ConnectionConfig ,
64- config_level : str ,
72+ log_handlers : list [ LogHandlerConfig ] ,
6573 override_level : str | None ,
6674 expected_logs : list [str ],
6775 unexpected_logs : list [str ],
@@ -73,7 +81,7 @@ def test_log_level_override(
7381 app_config = TestConfig (
7482 parameter_one = 1 ,
7583 parameter_two = "a" ,
76- log_handlers = [ LogConsoleHandlerConfig ( type = "console" , level = LogLevel ( config_level ))] ,
84+ log_handlers = log_handlers ,
7785 )
7886
7987 full_config = FullConfig (
@@ -163,7 +171,7 @@ def test_local_state_store_integration(local_state_file: Path, connection_config
163171
164172
165173@pytest .fixture (scope = "function" )
166- def raw_db_table_name () -> str :
174+ def raw_db_table_name () -> tuple [ str , str ] :
167175 """Provides a unique database name for a single test function run."""
168176 test_id = random .randint (0 , int (1e9 ))
169177 return f"test_db_{ test_id } " , f"test_table_{ test_id } "
0 commit comments