Skip to content

Commit a6a0eab

Browse files
committed
Upgrade database_service unittests
These test cases use MagicMock for convenience, rather than using a mocked AnalysisResult. However, now added result entry is internally converted into dataframe format and the input object is discarded after add_analysis_results call. So it's no longer possible to track method call or evaluate identity of input object. Since user will never store MagicMock to experiment data, this change to unittest should not introduce any edge case and should not decrease the practical test coverage.
1 parent becca9b commit a6a0eab

File tree

1 file changed

+22
-7
lines changed

1 file changed

+22
-7
lines changed

test/database_service/test_db_experiment_data.py

+22-7
Original file line numberDiff line numberDiff line change
@@ -436,28 +436,43 @@ def test_add_get_analysis_result(self):
436436
"""Test adding and getting analysis results."""
437437
exp_data = ExperimentData(experiment_type="qiskit_test")
438438
results = []
439-
for idx in range(5):
439+
result_ids = list(map(str, range(5)))
440+
for idx in result_ids:
440441
res = mock.MagicMock()
441442
res.result_id = idx
442443
results.append(res)
443444
exp_data.add_analysis_results(res)
444445

445-
self.assertEqual(results, exp_data.analysis_results())
446-
self.assertEqual(results[1], exp_data.analysis_results(1))
447-
self.assertEqual(results[2:4], exp_data.analysis_results(slice(2, 4)))
448-
self.assertEqual(results[4], exp_data.analysis_results(results[4].result_id))
446+
# We cannot compare results with exp_data.analysis_results()
447+
# This test is too hacky since it tris to compare MagicMock with AnalysisResult.
448+
self.assertEqual(
449+
[res.result_id for res in exp_data.analysis_results()],
450+
result_ids,
451+
)
452+
self.assertEqual(
453+
exp_data.analysis_results(1).result_id,
454+
result_ids[1],
455+
)
456+
self.assertEqual(
457+
[res.result_id for res in exp_data.analysis_results(slice(2, 4))],
458+
result_ids[2:4],
459+
)
449460

450461
def test_add_get_analysis_results(self):
451462
"""Test adding and getting a list of analysis results."""
452463
exp_data = ExperimentData(experiment_type="qiskit_test")
453464
results = []
454-
for idx in range(5):
465+
result_ids = list(map(str, range(5)))
466+
for idx in result_ids:
455467
res = mock.MagicMock()
456468
res.result_id = idx
457469
results.append(res)
458470
exp_data.add_analysis_results(results)
471+
get_result_ids = [res.result_id for res in exp_data.analysis_results()]
459472

460-
self.assertEqual(results, exp_data.analysis_results())
473+
# We cannot compare results with exp_data.analysis_results()
474+
# This test is too hacky since it tris to compare MagicMock with AnalysisResult.
475+
self.assertEqual(get_result_ids, result_ids)
461476

462477
def test_delete_analysis_result(self):
463478
"""Test deleting analysis result."""

0 commit comments

Comments
 (0)