arc/scheduler_test.py::TestScheduler::test_initialize_output_dict fails intermittently in CI, on main and on PRs that do not touch the scheduler at all.
FAILED arc/scheduler_test.py::TestScheduler::test_initialize_output_dict - AssertionError: False is not true
The assertion is self.assertTrue(self.sched1._does_output_dict_contain_info()) (arc/scheduler_test.py:350).
Evidence that it is order-dependent, not a real defect
Suspected cause
self.sched1 is built in setUpClass, and _does_output_dict_contain_info() reads state that other tests in the class populate. A likely contributor is global mutation of default_job_types: initialize_job_types() aliases and dels the module-level global, so a test that calls it changes what a later Scheduler sees. PR #926 carries a commit "Stop initialize_job_types from mutating the global default_job_types", which may remove the cause; worth re-checking this test's stability once that lands.
Suggested fix
Make the test self-sufficient rather than dependent on sibling tests — populate the output dict it asserts on inside the test (or in setUp), so it passes under -p no:randomly, in isolation, and on any xdist shard.
arc/scheduler_test.py::TestScheduler::test_initialize_output_dictfails intermittently in CI, onmainand on PRs that do not touch the scheduler at all.The assertion is
self.assertTrue(self.sched1._does_output_dict_contain_info())(arc/scheduler_test.py:350).Evidence that it is order-dependent, not a real defect
main: the nightly run of 2026-08-10 (4a63d1aa) failed on this test — https://github.com/ReactionMechanismGenerator/ARC/actions/runs/31349161224 — with green nightlies on 08-11, 08-12 and 08-13 either side of it, and no relevant change in between.yaml_bool_smiles_fix) failed the same way — https://github.com/ReactionMechanismGenerator/ARC/actions/runs/31736868393/job/94570512325 — reported bygw4at 1% of the run. That branch only touchesarc/common.pyandarc/species/species.py(plus their tests) and never goes near the scheduler.main's content:pytest-xdistthe shard that receives it may not have run them, which is why it surfaces sporadically rather than always.Suspected cause
self.sched1is built insetUpClass, and_does_output_dict_contain_info()reads state that other tests in the class populate. A likely contributor is global mutation ofdefault_job_types:initialize_job_types()aliases anddels the module-level global, so a test that calls it changes what a laterSchedulersees. PR #926 carries a commit "Stopinitialize_job_typesfrom mutating the globaldefault_job_types", which may remove the cause; worth re-checking this test's stability once that lands.Suggested fix
Make the test self-sufficient rather than dependent on sibling tests — populate the output dict it asserts on inside the test (or in
setUp), so it passes under-p no:randomly, in isolation, and on any xdist shard.