From 8cafb817dc4e68bb78e0372ff825f96342a7ef7d Mon Sep 17 00:00:00 2001 From: Andre Brait Date: Fri, 2 Oct 2026 07:01:35 +0000 Subject: [PATCH] tests: pin the kept edge build and dependency byte for byte The stale-edge prune test checked that 4.0.0.a1 and its dependency are still listed, but a publish that replaced either file with a different valid archive under the same name still passed. Capture both before the leftover is seeded and require identical bytes after the stable publish. Addresses CodeRabbit feedback on #36. Refs pfBlockerNG/pfBlockerNG#3390 --- tests/test_publish_release.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tests/test_publish_release.py b/tests/test_publish_release.py index bce784b..aaea10f 100644 --- a/tests/test_publish_release.py +++ b/tests/test_publish_release.py @@ -3897,12 +3897,17 @@ def test_stable_build_prunes_a_stale_version_from_a_newer_family_edge( """Given stable and testing list 3.3.10, and edge lists 4.0.0.a1 (with its dependency) next to a leftover 3.3.10, When stable 3.3.11 is published to stable+testing+edge, - Then edge is rewritten to list 4.0.0.a1 only and keeps the dependency, + Then edge is rewritten to list 4.0.0.a1 only, keeps the 4.0.0.a1 build and + its dependency byte for byte, and stable and testing list 3.3.11.""" self._publish("v3.3.10", "stable", self._ALL) self._publish( "v4.0.0.a1", "edge", '["edge"]', rows=(ROW_CE,), include_dependency=True ) + kept = { + name: (self._catalogue("edge") / name).read_bytes() + for name in ("pfSense-pkg-pfBlockerNG-4.0.0.a1.pkg", _CHARSET_PKG) + } self._seed("edge", "v3.3.10", "stable") ca.regenerate_catalogue(self.pkg_repo / "docs", "edge", "ce-2.8") self.assertEqual(self._listed("edge")["packagesite"], ["3.3.10", "4.0.0.a1"]) @@ -3915,6 +3920,8 @@ def test_stable_build_prunes_a_stale_version_from_a_newer_family_edge( self.assertEqual(report.skipped, (("edge", "ce-2.8", "3.3.11", "4.0.0.a1"),)) self._assert_lists_only("edge", "4.0.0.a1") self._assert_carries_dependency("edge") + for name, data in kept.items(): + self.assertEqual((self._catalogue("edge") / name).read_bytes(), data, name) self._assert_lists_only("stable", "3.3.11") self._assert_lists_only("testing", "3.3.11")