You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
pytest cannot run on a fresh clone (gitignored maintainer scripts, required server.port) #12
pytest does not run on a fresh clone. Two independent failures, plus a build-gated file, and no PR CI to catch them.
1. Collection crash on a gitignored path
tests/test_goodmem_maintainer_scripts.py imports two modules from scripts/.maintainer/goodmem/ at import time, but .gitignore excludes scripts/.maintainer/:
E FileNotFoundError: [Errno 2] No such file or directory:
.../scripts/.maintainer/goodmem/memory_retrieve.py
!!! Interrupted: 1 error during collection !!!
Anyone without the private maintainer scripts (i.e. every external contributor) cannot collect the suite.
2. Required server.port missing from config fixtures
ServerSettings.port is required, but several fixtures in tests/test_config_settings.py write a config.yml with no server section:
E pydantic_core._pydantic_core.ValidationError: 1 validation error for Settings
E server
E Field required
3. Mushaf asset tests need a built frontend
tests/test_asset_contracts.py asserts src/quran_mcp/apps/mcp/mushaf/dist/app.html exists, which only exists after make build-frontend. On an unbuilt checkout those two tests fail rather than explaining the missing prerequisite.
Reproduction
git clone https://github.com/quran/quran-mcp &&cd quran-mcp
uv sync --frozen --extra dev --python 3.14
.venv/bin/python -m pytest -q -m "not integration"# 1 collection error, then 10 failures once collection is unblocked
Expected
A clean clone can run the non-integration suite without private scripts, without .env, and without a built frontend.
Fix
PR #11 makes the suite runnable: it skips the maintainer-scripts module when the scripts are absent, gives the config fixtures the required server.port, skips the build-gated asset assertions with an explicit reason, and adds PR CI so this cannot rot again. Result on a clean clone: 1326 passed, 3 skipped.
Activity