Skip to content

Commit 8e344bd

Browse files
committed
Fix Session.delete() handling in gap analysis cleanup (#826)
1 parent c9f0308 commit 8e344bd

2 files changed

Lines changed: 30 additions & 3 deletions

File tree

application/database/db.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1531,10 +1531,16 @@ def delete_gapanalysis_results_for(self, node_name):
15311531
.filter(GapAnalysisResults.cache_key.like(f"%{node_name}%"))
15321532
.all()
15331533
)
1534+
deleted_count = 0
15341535
for r in res:
1535-
result = self.session.delete(r)
1536-
if result:
1537-
logger.info(f"deleted {result.rowcount} objects")
1536+
self.session.delete(r)
1537+
deleted_count += 1
1538+
if deleted_count:
1539+
logger.info(
1540+
"deleted %s gap analysis result objects for node %s",
1541+
deleted_count,
1542+
node_name,
1543+
)
15381544
self.session.commit()
15391545
self.session.flush()
15401546
return res

application/tests/db_test.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2158,6 +2158,27 @@ def test_get_standard_names(self):
21582158
self.collection.standards(),
21592159
)
21602160

2161+
def test_delete_gapanalysis_results_for_deletes_and_logs_count(self):
2162+
node_name = "BarStand"
2163+
key_1 = f"cache-{node_name}-1"
2164+
key_2 = f"cache-{node_name}-2"
2165+
unrelated_key = "cache-unrelated"
2166+
2167+
self.collection.add_gap_analysis_result(key_1, "{}")
2168+
self.collection.add_gap_analysis_result(key_2, "{}")
2169+
self.collection.add_gap_analysis_result(unrelated_key, "{}")
2170+
2171+
with patch.object(db.logger, "info") as logger_info:
2172+
deleted = self.collection.delete_gapanalysis_results_for(node_name)
2173+
2174+
self.assertEqual(2, len(deleted))
2175+
self.assertFalse(self.collection.gap_analysis_exists(key_1))
2176+
self.assertFalse(self.collection.gap_analysis_exists(key_2))
2177+
self.assertTrue(self.collection.gap_analysis_exists(unrelated_key))
2178+
logger_info.assert_any_call(
2179+
"deleted %s gap analysis result objects for node %s", 2, node_name
2180+
)
2181+
21612182
def test_all_cres_with_pagination(self):
21622183
""""""
21632184
cres = []

0 commit comments

Comments
 (0)