feat: initial commit
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
"""Adaptery ekosystemów - wiedza deterministyczna, więc testowana punktowo."""
|
||||
|
||||
import json
|
||||
|
||||
import pytest
|
||||
|
||||
from agentic_codemod.adapters import (
|
||||
EcosystemNotDetected,
|
||||
MavenAdapter,
|
||||
NodeNpmAdapter,
|
||||
PythonPipAdapter,
|
||||
detect_adapter,
|
||||
)
|
||||
|
||||
|
||||
def test_wykrywanie_ekosystemu_python(acme_app):
|
||||
assert isinstance(detect_adapter(acme_app), PythonPipAdapter)
|
||||
|
||||
|
||||
def test_brak_rozpoznanego_ekosystemu_to_twardy_blad(tmp_path):
|
||||
with pytest.raises(EcosystemNotDetected):
|
||||
detect_adapter(tmp_path)
|
||||
|
||||
|
||||
def test_odczyt_i_podniesienie_wersji(acme_app):
|
||||
adapter = PythonPipAdapter(acme_app)
|
||||
assert adapter.read_declared_version("acme-sdk") == "==1.4.2"
|
||||
changed = adapter.set_declared_version("acme-sdk", "2.1.0")
|
||||
assert [p.name for p in changed] == ["pyproject.toml"]
|
||||
assert adapter.read_declared_version("acme-sdk") == "==2.1.0"
|
||||
|
||||
|
||||
def test_bump_nie_dotyka_prozy_zawierajacej_nazwe_pakietu(acme_app):
|
||||
"""Regresja: wzorzec bez wymaganego operatora podmieniał też opis projektu."""
|
||||
adapter = PythonPipAdapter(acme_app)
|
||||
adapter.set_declared_version("acme-sdk", "2.1.0")
|
||||
content = (acme_app / "pyproject.toml").read_text(encoding="utf-8")
|
||||
assert "acme-sdk 1.x - fixture" in content
|
||||
|
||||
|
||||
def test_bump_zachowuje_operator_porownania(tmp_path):
|
||||
(tmp_path / "requirements.txt").write_text("acme-sdk >= 1.4\nhttpx==0.27.0\n", encoding="utf-8")
|
||||
adapter = PythonPipAdapter(tmp_path)
|
||||
adapter.set_declared_version("acme-sdk", "2.1.0")
|
||||
assert (tmp_path / "requirements.txt").read_text(encoding="utf-8").startswith("acme-sdk >= 2.1.0")
|
||||
|
||||
|
||||
def test_adapter_maven_podnosi_wersje_zaleznosci(tmp_path):
|
||||
(tmp_path / "pom.xml").write_text(
|
||||
"<project><dependencies><dependency>"
|
||||
"<groupId>com.acme</groupId><artifactId>acme-sdk</artifactId><version>1.4.2</version>"
|
||||
"</dependency></dependencies></project>",
|
||||
encoding="utf-8",
|
||||
)
|
||||
adapter = MavenAdapter(tmp_path)
|
||||
assert adapter.read_declared_version("com.acme:acme-sdk") == "1.4.2"
|
||||
adapter.set_declared_version("com.acme:acme-sdk", "2.1.0")
|
||||
assert adapter.read_declared_version("com.acme:acme-sdk") == "2.1.0"
|
||||
|
||||
|
||||
def test_adapter_npm_zachowuje_prefiks_zakresu(tmp_path):
|
||||
(tmp_path / "package.json").write_text(json.dumps({"dependencies": {"acme-sdk": "^1.4.2"}}), encoding="utf-8")
|
||||
adapter = NodeNpmAdapter(tmp_path)
|
||||
adapter.set_declared_version("acme-sdk", "2.1.0")
|
||||
assert adapter.read_declared_version("acme-sdk") == "^2.1.0"
|
||||
Reference in New Issue
Block a user