Context
Borrowed from IBM/mcp-context-forge which validates generated output in CI.
We validate individual templates with ast.parse in unit tests, but never scaffold a full project and validate the result as a whole (imports resolve, ruff passes, no stubs remain, etc.).
What to do
- Add an e2e smoke test that:
faststack init blog --entities fixtures/blog.yaml (create a fixture YAML with 2-3 entities)
faststack add-entity Comment --fields "body:text:required"
faststack generate --all
faststack list
- Verify: all
.py files pass ast.parse, ruff check, black --check
- Verify:
dependencies.py exists with all providers, main.py has all routers
- Add this as a pytest test (marked
@pytest.mark.e2e)
- Optionally add
make smoke Makefile target
Acceptance criteria
- E2e test scaffolds a complete project and validates all generated code
- Test runs in CI as part of
make check
Context
Borrowed from IBM/mcp-context-forge which validates generated output in CI.
We validate individual templates with
ast.parsein unit tests, but never scaffold a full project and validate the result as a whole (imports resolve, ruff passes, no stubs remain, etc.).What to do
faststack init blog --entities fixtures/blog.yaml(create a fixture YAML with 2-3 entities)faststack add-entity Comment --fields "body:text:required"faststack generate --allfaststack list.pyfiles passast.parse,ruff check,black --checkdependencies.pyexists with all providers,main.pyhas all routers@pytest.mark.e2e)make smokeMakefile targetAcceptance criteria
make check