import importlib.util import json import zipfile from pathlib import Path def _load_packager(): path = Path(__file__).resolve().parents[1] / "scripts" / "package_extension.py" spec = importlib.util.spec_from_file_location("package_extension", path) module = importlib.util.module_from_spec(spec) assert spec.loader is not None spec.loader.exec_module(module) return module def test_webstore_package_strips_manifest_key(tmp_path): packager = _load_packager() out = packager.package_extension(webstore=True, out=tmp_path / "webstore.zip") with zipfile.ZipFile(out) as zf: manifest = json.loads(zf.read("manifest.json")) names = set(zf.namelist()) assert "key" not in manifest assert "background.js" in names assert "content-dispatch.js" in names assert "content.js" in names assert "icons/icon-128.png" in names def test_local_package_keeps_manifest_key(tmp_path): packager = _load_packager() out = packager.package_extension(webstore=False, out=tmp_path / "local.zip") with zipfile.ZipFile(out) as zf: manifest = json.loads(zf.read("manifest.json")) assert "key" in manifest