Skip to content

Commit 5824117

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 25fe1d6 commit 5824117

File tree

1 file changed

+22
-8
lines changed

1 file changed

+22
-8
lines changed

test/database_service/test_db_experiment_data.py

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -435,28 +435,43 @@ def test_add_get_analysis_result(self):
435435
"""Test adding and getting analysis results."""
436436
exp_data = ExperimentData(experiment_type="qiskit_test")
437437
results = []
438-
for idx in range(5):
438+
result_ids = list(map(str, range(5)))
439+
for idx in result_ids:
439440
res = mock.MagicMock()
440441
res.result_id = idx
441442
results.append(res)
442443
exp_data.add_analysis_results(res)
443444

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

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

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

461476
def test_delete_analysis_result(self):
462477
"""Test deleting analysis result."""
@@ -494,7 +509,6 @@ def test_save(self):
494509
exp_data.save()
495510
service.create_or_update_experiment.assert_called_once()
496511
service.create_or_update_figure.assert_called_once()
497-
analysis_result.save.assert_called_once()
498512

499513
def test_save_delete(self):
500514
"""Test saving all deletion."""

0 commit comments

Comments
 (0)