aboutsummaryrefslogtreecommitdiff
path: root/scripts/test_release.py
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-09-16 18:43:23 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-09-16 18:43:23 +0300
commit3f78f172d9f9fe1a9422334c5ae03cd5ac685ebd (patch)
tree3f6a141652b4480a4934fc6b85032a5c9a5eb158 /scripts/test_release.py
parent36db8ff3f4bee21b06f3208422be7cf91c7d3e40 (diff)
fix: address release promotion review findings
Diffstat (limited to 'scripts/test_release.py')
-rw-r--r--scripts/test_release.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/scripts/test_release.py b/scripts/test_release.py
index ba5cfb85..f495c89c 100644
--- a/scripts/test_release.py
+++ b/scripts/test_release.py
@@ -22,6 +22,9 @@ class ReleaseTests(unittest.TestCase):
self.put("Cargo.toml", '[package]\nname = "herdr"\nversion = "1.0.0"\n[dependencies]\nserde = "1"\n')
self.put("Cargo.lock", 'version = 4\n[[package]]\nname = "herdr"\nversion = "1.0.0"\n[[package]]\nname = "serde"\nversion = "1.0.0"\n')
self.put("src/main.rs", "fn main() {}\n")
+ self.put("docs/next/CHANGELOG.md", "# Changelog\n")
+ self.put("skills/herdr/SKILL.md", "Stable skill\n")
+ self.put("docs/next/website/src/content/docs/obsolete.mdx", "Old page\n")
self.put("distribution/latest.json", json.dumps({"version": "1.0.0"}))
self.put("scripts/release.py", "# promotion tooling\n")
self.put(".github/workflows/release.yml", "run: python3 scripts/release.py check-tag\n")
@@ -94,6 +97,18 @@ class ReleaseTests(unittest.TestCase):
with self.assertRaisesRegex(ValueError, "regular files"):
release.validate_diff(self.preview, self.commit("symlink"))
+ def test_required_release_files_cannot_be_deleted_but_website_pages_can(self):
+ for path in ("docs/next/CHANGELOG.md", "skills/herdr/SKILL.md"):
+ with self.subTest(path=path):
+ self.git("reset", "--hard", self.preview)
+ self.git("rm", path)
+ candidate = self.commit("delete required release file")
+ with self.assertRaisesRegex(ValueError, "regular files"):
+ release.validate_diff(self.preview, candidate)
+ self.git("reset", "--hard", self.preview)
+ self.git("rm", "docs/next/website/src/content/docs/obsolete.mdx")
+ release.validate_diff(self.preview, self.commit("remove obsolete website page"))
+
def test_preview_source_accepts_master_history_and_rejects_unpublished_branch(self):
self.assertEqual(release.select_preview(self.preview), self.preview)
self.assertEqual(release.select_preview("v1.0.0"), self.git("rev-parse", "v1.0.0"))