spriteforge/tests/test_cli.py

22 lines
992 B
Python

from typer.testing import CliRunner
from spriteforge.cli import app
runner=CliRunner()
def test_validate_and_dry_run(tmp_path):
path=tmp_path/"assets.yaml"
path.write_text("floor:\n backend: procedural\n generator: floor\n tags: [environment]\n")
result=runner.invoke(app,["validate",str(path)])
assert result.exit_code==0 and "1 asset(s)" in result.stdout
result=runner.invoke(app,["build",str(path),"--tag","environment","--jobs","3","--dry-run"])
assert result.exit_code==0 and "floor\tprocedural" in result.stdout and "jobs=3" in result.stdout
def test_cli_reports_line(tmp_path):
path=tmp_path/"bad.yaml";path.write_text("Bad-ID:\n backend: import\n source: x.png\n")
result=runner.invoke(app,["validate",str(path)])
assert result.exit_code==1 and ":1:1:" in result.stderr
def test_missing_catalog_is_explicit():
result=runner.invoke(app,["stats","--build-dir","missing"])
assert result.exit_code==1 and "index.json" in result.stderr