@@ -208,3 +208,49 @@ def test_disabled_on_system_level(self, slurm_system: SlurmSystem) -> None:
208208 slurm_system .reports = {"sr1" : ReportConfig (enable = False )}
209209 generate_reports (slurm_system , TestScenario (name = "ts" , test_runs = []), slurm_system .output_path )
210210 assert MY_REPORT_CALLED == 0
211+
212+
213+ class TestGenerateReportPriority :
214+ @pytest .fixture (autouse = True )
215+ def setup (self ):
216+ reg = Registry ()
217+ orig_reports = copy .deepcopy (reg .scenario_reports )
218+ reg .scenario_reports .clear ()
219+
220+ global MY_REPORT_CALLED
221+ MY_REPORT_CALLED = 0
222+
223+ yield
224+
225+ reg .scenario_reports .clear ()
226+ reg .scenario_reports .update (orig_reports )
227+
228+ def test_non_registered_report_is_ignored (self , slurm_system : SlurmSystem ) -> None :
229+ generate_reports (slurm_system , TestScenario (name = "ts" , test_runs = []), slurm_system .output_path )
230+ assert MY_REPORT_CALLED == 0
231+
232+ def test_report_is_enabled_on_system_level (self , slurm_system : SlurmSystem ) -> None :
233+ Registry ().add_scenario_report ("sr1" , MyReporter , ReportConfig (enable = True ))
234+ slurm_system .reports = {"sr1" : ReportConfig (enable = True )}
235+ generate_reports (slurm_system , TestScenario (name = "ts" , test_runs = []), slurm_system .output_path )
236+ assert MY_REPORT_CALLED == 1
237+
238+ def test_report_is_enabled_on_scenario_level (self , slurm_system : SlurmSystem ) -> None :
239+ Registry ().add_scenario_report ("sr1" , MyReporter , ReportConfig (enable = True ))
240+ slurm_system .reports = {}
241+ generate_reports (
242+ slurm_system ,
243+ TestScenario (name = "ts" , test_runs = [], reports = {"sr1" : ReportConfig (enable = True )}),
244+ slurm_system .output_path ,
245+ )
246+ assert MY_REPORT_CALLED == 1
247+
248+ def test_report_scenario_has_highest_priority (self , slurm_system : SlurmSystem ) -> None :
249+ Registry ().add_scenario_report ("sr1" , MyReporter , ReportConfig (enable = True ))
250+ slurm_system .reports = {"sr1" : ReportConfig (enable = False )}
251+ generate_reports (
252+ slurm_system ,
253+ TestScenario (name = "ts" , test_runs = [], reports = {"sr1" : ReportConfig (enable = True )}),
254+ slurm_system .output_path ,
255+ )
256+ assert MY_REPORT_CALLED == 1
0 commit comments