def test_cancel_jobs(self): """Test canceling experiment jobs.""" event = threading.Event() cancel_count = 0 def _job_result(): event.wait(timeout=15) raise ValueError("Job was cancelled.") def _job_cancel(): nonlocal cancel_count cancel_count += 1 event.set() exp_data = DbExperimentData(experiment_type="qiskit_test") event = threading.Event() self.addCleanup(event.set) job = mock.create_autospec(Job, instance=True) job.job_id.return_value = "1234" job.cancel = _job_cancel job.result = _job_result job.status = lambda: JobStatus.CANCELLED if event.is_set() else JobStatus.RUNNING exp_data.add_jobs(job) with self.assertLogs("qiskit_experiments", "WARNING"): exp_data.cancel_jobs() self.assertEqual(cancel_count, 1) self.assertEqual(exp_data.job_status(), JobStatus.CANCELLED) self.assertEqual(exp_data.status(), ExperimentStatus.CANCELLED)
def test_cancel_jobs(self): """Test canceling experiment jobs.""" def _job_result(): event.wait(timeout=15) raise ValueError("Job was cancelled.") exp_data = DbExperimentData(experiment_type="qiskit_test") event = threading.Event() self.addCleanup(event.set) job = mock.create_autospec(Job, instance=True) job.result = _job_result exp_data.add_jobs(job) exp_data.cancel_jobs() job.cancel.assert_called_once() # Cleanup with self.assertLogs("qiskit_experiments", "WARNING"): event.set() exp_data.block_for_results()