diff --git a/tests/test_packaging.py b/tests/test_packaging.py index a476ccc..21fbf3d 100644 --- a/tests/test_packaging.py +++ b/tests/test_packaging.py @@ -66,6 +66,21 @@ class TestArchPackaging(unittest.TestCase): self.assertIn("--cleanbuild", script) +def _git_worktree_dirty() -> int: + """Mirror the dirty computation in release-artifacts.sh so the assertion + holds whether the tree is clean (work committed) or dirty (mid-change).""" + def q(*args: str) -> subprocess.CompletedProcess: + return subprocess.run(["git", *args], cwd=ROOT, + capture_output=True, text=True) + if q("diff", "--quiet").returncode != 0: + return 1 + if q("diff", "--cached", "--quiet").returncode != 0: + return 1 + if q("ls-files", "--others", "--exclude-standard").stdout.strip(): + return 1 + return 0 + + class TestReleaseArtifacts(unittest.TestCase): def test_release_script_generates_checksummed_artifacts(self): with tempfile.TemporaryDirectory() as d: @@ -99,7 +114,7 @@ class TestReleaseArtifacts(unittest.TestCase): data = json.loads(manifest.read_text()) self.assertEqual(data["project"], "enodia-sentinel") self.assertEqual(data["version"], version) - self.assertEqual(data["dirty"], 1) + self.assertEqual(data["dirty"], _git_worktree_dirty()) self.assertIn(archive.name, data["artifacts"]) self.assertIn("SHA256SUMS", data["artifacts"])