diff options
Diffstat (limited to 'scripts/test_preview.py')
| -rw-r--r-- | scripts/test_preview.py | 58 |
1 files changed, 20 insertions, 38 deletions
diff --git a/scripts/test_preview.py b/scripts/test_preview.py index d3613d83..36dae3b4 100644 --- a/scripts/test_preview.py +++ b/scripts/test_preview.py @@ -11,21 +11,14 @@ import scripts.preview as preview class PreviewNotesTests(unittest.TestCase): - def test_humanize_groups_conventional_subjects(self): + def test_notes_contain_only_build_and_comparison_link(self): self.assertEqual( - preview.humanize_subject("feat(update): add preview channel"), - ("Added", "Add preview channel"), - ) - self.assertEqual( - preview.humanize_subject("fix: handle preview manifest"), - ("Fixed", "Handle preview manifest"), - ) - self.assertEqual( - preview.humanize_subject("not conventional"), - ("Other", "Not conventional"), + preview.build_notes("previous-sha", "current-sha", "2026-09-16-abcdef123456", "herdrdev/herdr"), + "Preview build 2026-09-16-abcdef123456\n\n" + "[View changes](https://github.com/herdrdev/herdr/compare/previous-sha...current-sha)\n", ) - def test_build_manifest_archives_current_assets(self): + def test_build_manifest_archives_assets_with_selected_source_generation(self): with tempfile.TemporaryDirectory() as tmp: output = Path(tmp) / "preview.json" notes = "Preview notes\n" @@ -44,13 +37,14 @@ class PreviewNotesTests(unittest.TestCase): "windows-x86_64": "a" * 64, }, retain=30, + endpoint_generation=77, ) data = json.loads(content) self.assertEqual(data["channel"], "preview") self.assertEqual(data["build_id"], "2026-06-02-abcdef123456") self.assertEqual( data["endpoint_generation"], - preview.read_endpoint_protocol_generation(), + 77, ) self.assertEqual( data["assets"]["linux-x86_64"]["sha256"], @@ -68,7 +62,7 @@ class PreviewNotesTests(unittest.TestCase): self.assertIn("2026-06-02-abcdef123456", data["builds"]) self.assertEqual( data["builds"]["2026-06-02-abcdef123456"]["endpoint_generation"], - preview.read_endpoint_protocol_generation(), + 77, ) def test_windows_preview_asset_requires_sha256(self): @@ -88,24 +82,6 @@ class PreviewNotesTests(unittest.TestCase): retain=1, ) - def test_hidden_subjects_include_preview_manifest_commits(self): - self.assertTrue(preview.hidden_subject("docs: update preview manifest")) - self.assertTrue(preview.hidden_subject("docs: update website manifest")) - self.assertTrue(preview.hidden_subject("docs: publish release distribution")) - self.assertFalse(preview.hidden_subject("release: v0.7.0")) - self.assertFalse(preview.hidden_subject("fix: repair preview manifest")) - - def test_latest_publishable_commit_keeps_release_commits(self): - output = "\n".join( - [ - "manifest\x00docs: update website manifest for v0.7.0", - "release\x00release: v0.7.0", - "feature\x00feat: add plugin v1 system", - ] - ) - with mock.patch.object(preview, "run_git", return_value=output): - self.assertEqual(preview.latest_publishable_commit("origin/master"), "release") - def test_preview_range_base_advances_to_stable_tag(self): with ( mock.patch.object(preview, "latest_stable_tag", return_value="v0.7.0"), @@ -118,7 +94,10 @@ class PreviewNotesTests(unittest.TestCase): def test_preview_range_base_keeps_previous_preview_for_unreleased_work(self): def is_ancestor(ancestor: str, descendant: str) -> bool: - return (ancestor, descendant) == ("v0.7.0", "new-feature") + return (ancestor, descendant) in { + ("v0.7.0", "new-feature"), + ("previous-preview", "new-feature"), + } with ( mock.patch.object(preview, "latest_stable_tag", return_value="v0.7.0"), @@ -129,7 +108,14 @@ class PreviewNotesTests(unittest.TestCase): "previous-preview", ) - def test_post_stable_history_selects_release_and_bases_range_on_stable_tag(self): + def test_hotfix_preview_uses_stable_base_instead_of_newer_master_preview(self): + with ( + mock.patch.object(preview, "latest_stable_tag", return_value="v0.7.0"), + mock.patch.object(preview, "git_is_ancestor", return_value=False), + ): + self.assertEqual(preview.preview_range_base("newer-master", "hotfix"), "v0.7.0") + + def test_post_stable_history_bases_range_on_stable_tag(self): with tempfile.TemporaryDirectory() as tmp: repo = Path(tmp) @@ -156,13 +142,9 @@ class PreviewNotesTests(unittest.TestCase): release = git("rev-parse", "HEAD") git("tag", "v0.7.0") - marker.write_text("manifest\n", encoding="utf-8") - git("commit", "-am", "docs: update website manifest for v0.7.0") - original_cwd = os.getcwd() try: os.chdir(repo) - self.assertEqual(preview.latest_publishable_commit("HEAD"), release) self.assertEqual( preview.preview_range_base(previous_preview, release), "v0.7.0", |
