From f71b8e1a0fbe8df48f2d6a82364465167411d515 Mon Sep 17 00:00:00 2001 From: ulises-jeremias Date: Thu, 16 Jul 2026 03:14:24 -0300 Subject: [PATCH] test(cli): smoke and file:// integration scaffold Closes #40 Co-authored-by: Cursor --- .../tests/test_smoke.py | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 packages/create-awesome-python-app/tests/test_smoke.py diff --git a/packages/create-awesome-python-app/tests/test_smoke.py b/packages/create-awesome-python-app/tests/test_smoke.py new file mode 100644 index 0000000..65ac09d --- /dev/null +++ b/packages/create-awesome-python-app/tests/test_smoke.py @@ -0,0 +1,36 @@ +from pathlib import Path + +import pytest +from typer.testing import CliRunner + +from create_awesome_python_app.cli import app + +runner = CliRunner() + + +def test_help_smoke() -> None: + assert runner.invoke(app, ["--help"]).exit_code == 0 + + +def test_scaffold_file( + tmp_path: Path, monkeypatch: pytest.MonkeyPatch +) -> None: + monkeypatch.setenv("CPA_SKIP_GIT", "1") + monkeypatch.setenv("CI", "1") + tpl = tmp_path / "tpl" + (tpl / "template").mkdir(parents=True) + (tpl / "template" / "a.txt").write_text("a") + dest = tmp_path / "app" + # Options must come before the project_directory argument (Typer parsing). + result = runner.invoke( + app, + [ + "--template", + f"file://{tpl}", + "--no-install", + "--no-interactive", + str(dest), + ], + ) + assert result.exit_code == 0, result.stdout + result.stderr + assert (dest / "a.txt").read_text() == "a"