예제 #1
0
    def test_copy_metadata_pending_job(self):
        """Test copy metadata with a pending job."""
        event = threading.Event()
        self.addCleanup(event.set)
        job_results1 = self._get_job_result(1)
        job_results2 = self._get_job_result(1)

        def _job1_result():
            event.wait(timeout=15)
            return job_results1

        def _job2_result():
            event.wait(timeout=15)
            return job_results2

        exp_data = DbExperimentData(experiment_type="qiskit_test")
        job = mock.create_autospec(Job, instance=True)
        job.result = _job1_result
        exp_data.add_jobs(job)

        copied = exp_data.copy(copy_results=False)
        job2 = mock.create_autospec(Job, instance=True)
        job2.result = _job2_result
        copied.add_jobs(job2)
        event.set()

        exp_data.block_for_results()
        copied.block_for_results()

        self.assertEqual(1, len(exp_data.data()))
        self.assertEqual(2, len(copied.data()))
        self.assertIn(
            exp_data.data(0)["counts"], [copied.data(0)["counts"], copied.data(1)["counts"]]
        )
예제 #2
0
 def test_copy_metadata(self):
     """Test copy metadata."""
     exp_data = DbExperimentData(experiment_type="qiskit_test")
     exp_data.add_data(self._get_job_result(1))
     result = mock.MagicMock()
     exp_data.add_analysis_results(result)
     copied = exp_data.copy(copy_results=False)
     self.assertEqual(exp_data.data(), copied.data())
     self.assertFalse(copied.analysis_results())