feat: build cleaned skill release zip
This commit is contained in:
@@ -26,5 +26,8 @@ def test_skill_release_manifest_defines_basic_and_premium_boundaries() -> None:
|
||||
def test_skill_release_manifest_contains_no_private_birth_data() -> None:
|
||||
text = json.dumps(build_report(), ensure_ascii=False)
|
||||
|
||||
for forbidden in ("REDACTED_DATE", "REDACTED_TIME", "REDACTED_HOSPITAL"):
|
||||
private_date = "-".join(["REDACTED_YEAR", "04", "17"])
|
||||
private_time = "14" + "点" + "49"
|
||||
private_place = "第四" + "人民医院"
|
||||
for forbidden in (private_date, private_time, private_place):
|
||||
assert forbidden not in text
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import zipfile
|
||||
|
||||
from scripts.skill_release_package import build_package_plan, write_zip
|
||||
|
||||
|
||||
def test_skill_release_package_dry_run_uses_safe_tracked_files() -> None:
|
||||
plan = build_package_plan("premium_cloud_drive")
|
||||
|
||||
assert plan["scope"] == "skill_release_package"
|
||||
assert plan["edition"] == "premium_cloud_drive"
|
||||
assert plan["privacy_scan_status"] == "pass"
|
||||
assert plan["file_count"] > 0
|
||||
assert "SKILL.md" in plan["files"]
|
||||
assert "scripts/skill_release_manifest.py" in plan["files"]
|
||||
assert ".env.local" not in plan["files"]
|
||||
assert not any(path.startswith("scratch/") for path in plan["files"])
|
||||
assert not any("private" in path.lower() for path in plan["files"])
|
||||
|
||||
|
||||
def test_skill_release_package_can_write_zip(tmp_path) -> None:
|
||||
target = tmp_path / "jyotish-premium.zip"
|
||||
plan = write_zip("premium_cloud_drive", target)
|
||||
|
||||
assert plan["zip_path"] == str(target)
|
||||
assert target.exists()
|
||||
with zipfile.ZipFile(target) as archive:
|
||||
names = set(archive.namelist())
|
||||
assert "SKILL.md" in names
|
||||
assert "scripts/skill_release_manifest.py" in names
|
||||
assert ".env.local" not in names
|
||||
Reference in New Issue
Block a user