Python QA automation for the GameForgeStudio ecosystem.
This repo tests the apps as products:
- GameForgeStudio platform backend
- Buttonz backend
- GFS to Buttonz auth-code launch flow
The suite is local-first for now. It does not start the apps for you; start the app backends first, then run pytest.
- GFS health endpoint responds.
- Buttonz health endpoint responds.
- GFS logged-out
/api/user/currentreturns401. - Buttonz logged-out
/api/user/currentreturns401. - Buttonz config exposes the expected GFS public URL.
- GFS can create a Buttonz launch URL with a one-time code.
- Buttonz can exchange that code and create its own session.
Confirm you are using a normal Python install:
where python
python --versionIf where python points at a bundled app runtime, install Python from python.org or the Microsoft Store and put it on PATH before installing dependencies.
Install Python dependencies:
python -m pip install -r requirements.txtCreate a local QA env file:
copy .env.example .envThen fill in:
GFS_TEST_USERNAME=your-real-local-test-user
GFS_TEST_PASSWORD=your-real-local-test-passwordDo not commit .env.
Start the backends before running the QA suite.
GameForgeStudio:
cd "../gameforgestudio-platform"
npm run dev:serverButtonz:
cd "../buttonz"
npm run dev:serverDefault API URLs:
GFS_API_URL=http://127.0.0.1:5000
BUTTONZ_API_URL=http://127.0.0.1:5001
GFS_PUBLIC_URL=http://localhost:5173The tests use 127.0.0.1 for backend calls to avoid Windows/WSL localhost weirdness.
Run everything:
python -m pytest -vRun smoke tests only:
python -m pytest tests/test_smoke.py -vRun cross-app launch tests only:
python -m pytest tests/test_cross_app_launch.py -vIf GFS_TEST_USERNAME or GFS_TEST_PASSWORD is missing, the cross-app auth test is skipped. That is intentional so basic smoke checks can still run without secrets.
- Add role-access tests for Developer vs Gamer API behavior.
- Add GitHub Actions once local QA stabilizes.
- Split reusable fixtures for seeded Developer and Gamer accounts.
- Add deployment smoke checks when GFS and Buttonz have hosted environments.