--- a/tests/test_runner.py +++ b/tests/test_runner.py @@ -133,12 +133,19 @@ self.recovery_fixture() for task_id in ("P13-01", "P13-02"): with self.subTest(task_id=task_id): - self.r.add(dict(self.contract, id=task_id)) - self.r.state(task_id, "blocked", "scope_violation: fixture.txt") - with self.assertRaisesRegex(GateError, "blocked reason"): - self.r.submit(task_id) - self.assertEqual(self.r.task(task_id)["repairs"], 0) - self.assertEqual(self.r.task(task_id)["state"], "blocked") + isolated = Runner.init("reject-" + task_id, self.repo, + self.r.baseline, self.r.config["validations"], + policy=self.r.config["policy"], state_root=self.root / "rejection-state") + try: + isolated.add(dict(self.contract, id=task_id)) + isolated.state(task_id, "blocked", "scope_violation: fixture.txt") + with self.assertRaisesRegex(GateError, "blocked reason"): + isolated.submit(task_id) + self.assertEqual(isolated.task(task_id)["repairs"], 0) + self.assertEqual(isolated.task(task_id)["state"], "blocked") + self.assertIsNone(isolated.task(task_id)["submitted"]) + finally: + isolated.db.close() def test_p13_recovery_accepts_matching_forward_hashes(self): _, artifact, _ = self.recovery_fixture()