mirror of
https://github.com/wiltodelta/remove-ai-watermarks.git
synced 2026-08-06 22:18:36 +02:00
42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
"""Tests for the release-time conda recipe synchronizer."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
from scripts.sync_conda_recipe import update_recipe
|
|
|
|
_OLD_SHA = "a" * 64
|
|
_NEW_SHA = "b" * 64
|
|
_RECIPE = f"""\
|
|
schema_version: 1
|
|
|
|
context:
|
|
version: "1.2.3"
|
|
|
|
source:
|
|
sha256: {_OLD_SHA}
|
|
"""
|
|
|
|
|
|
def test_update_recipe_replaces_version_and_hash() -> None:
|
|
updated = update_recipe(_RECIPE, version="2.0.0", sha256=_NEW_SHA)
|
|
|
|
assert ' version: "2.0.0"' in updated
|
|
assert f" sha256: {_NEW_SHA}" in updated
|
|
assert "1.2.3" not in updated
|
|
assert _OLD_SHA not in updated
|
|
|
|
|
|
@pytest.mark.parametrize("sha256", ["", "A" * 64, "f" * 63, "not-a-hash"])
|
|
def test_update_recipe_rejects_invalid_hash(sha256: str) -> None:
|
|
with pytest.raises(ValueError, match="sha256"):
|
|
update_recipe(_RECIPE, version="2.0.0", sha256=sha256)
|
|
|
|
|
|
def test_update_recipe_rejects_ambiguous_recipe() -> None:
|
|
duplicate = _RECIPE + f"\nsource_two:\n sha256: {_OLD_SHA}\n"
|
|
|
|
with pytest.raises(ValueError, match="exactly one"):
|
|
update_recipe(duplicate, version="2.0.0", sha256=_NEW_SHA)
|