"""Resume behavior tests; no Blender coverage claims.""" import copy import unittest from wbv2_autopilot import reset_resume_jobs class ScopedResumeTests(unittest.TestCase): def setUp(self): self.records = { "RIG": {"state": "blocked", "reason": "native failure", "attempts": 4}, "RNA": {"state": "blocked", "reason": "receipt missing", "attempts": 3}, "IO": {"state": "verified", "receipt": "prior.json"}, } def test_normal_resume_does_not_requeue_failures(self): before = copy.deepcopy(self.records) self.assertEqual(reset_resume_jobs(self.records), []) self.assertEqual(self.records, before) def test_scoped_retry_preserves_other_failures_and_evidence(self): before = copy.deepcopy(self.records) self.assertEqual(reset_resume_jobs(self.records, True, "RIG"), ["RIG"]) self.assertEqual(self.records["RIG"]["state"], "retry_pending") for job in ("RNA", "IO"): self.assertEqual(self.records[job], before[job]) def test_unknown_job_fails_before_mutating(self): before = copy.deepcopy(self.records) with self.assertRaises(ValueError): reset_resume_jobs(self.records, True, "UNKNOWN") self.assertEqual(self.records, before) def test_global_explicit_retry_preserves_verified(self): self.assertEqual(reset_resume_jobs(self.records, True), ["RIG", "RNA"]) self.assertEqual(self.records["IO"]["state"], "verified") if __name__ == "__main__": unittest.main()