chore: Update CI workflow and testing setup with new dependencies and test plan documentation
CI / skip-ci-check (push) Successful in 1m27s
CI / lint-and-type-check (push) Has been cancelled
CI / python-lint (push) Has been cancelled
CI / test-backend (push) Has been cancelled
CI / build (push) Has been cancelled
CI / secret-scanning (push) Has been cancelled
CI / dependency-scan (push) Has been cancelled
CI / sast-scan (push) Has been cancelled
CI / workflow-summary (push) Has been cancelled
CI / skip-ci-check (pull_request) Successful in 1m27s
CI / lint-and-type-check (pull_request) Successful in 2m5s
CI / python-lint (pull_request) Successful in 1m51s
CI / test-backend (pull_request) Successful in 2m44s
CI / build (pull_request) Successful in 2m24s
CI / secret-scanning (pull_request) Successful in 1m39s
CI / dependency-scan (pull_request) Successful in 1m33s
CI / sast-scan (pull_request) Successful in 2m45s
CI / workflow-summary (pull_request) Successful in 1m26s

This commit enhances the CI workflow by adding steps to create test databases and install new testing dependencies, including `pytest`, `httpx`, and `pytest-cov`. Additionally, comprehensive test plan documentation is introduced to outline the structure and best practices for backend API tests. These changes improve the testing environment and contribute to a more robust CI process.
This commit is contained in:
Tanya
2026-01-07 14:53:26 -05:00
parent 8f8aa33503
commit 77ffbdcc50
15 changed files with 2347 additions and 2224 deletions
+23 -2
View File
@@ -184,7 +184,7 @@ jobs:
run: |
apt-get update && apt-get install -y postgresql-client
pip install --no-cache-dir -r requirements.txt
pip install --no-cache-dir pytest httpx
pip install --no-cache-dir pytest httpx pytest-cov
- name: Audit Python dependencies
run: |
@@ -192,10 +192,19 @@ jobs:
pip-audit --desc || true
continue-on-error: true
- name: Create test databases
run: |
export PGPASSWORD=postgres
psql -h postgres -U postgres -c "CREATE DATABASE punimtag_test;" || true
psql -h postgres -U postgres -c "CREATE DATABASE punimtag_auth_test;" || true
echo "✅ Test databases ready"
- name: Initialize database schemas
run: |
export PYTHONPATH=$(pwd)
echo "🗃️ Initializing main database schema..."
python -c "from backend.db.models import Base; from backend.db.session import engine; Base.metadata.create_all(bind=engine)"
echo "✅ Main database schema initialized"
python << 'EOF'
# Initialize auth database schema without importing worker (avoids DeepFace/TensorFlow imports)
from backend.db.session import auth_engine
@@ -365,8 +374,20 @@ jobs:
- name: Run backend tests
run: |
export PYTHONPATH=$(pwd)
python -m pytest tests/ -v || true
echo "🧪 Running all backend API tests..."
python -m pytest tests/ -v --tb=short --cov=backend --cov-report=term-missing --cov-report=xml --junit-xml=test-results.xml || true
continue-on-error: true
- name: Test results summary
if: always()
run: |
echo "## 📊 Test Results Summary" >> $GITHUB_STEP_SUMMARY || true
echo "" >> $GITHUB_STEP_SUMMARY || true
if [ -f test-results.xml ]; then
echo "✅ Test results generated (JUnit XML)" >> $GITHUB_STEP_SUMMARY || true
fi
echo "" >> $GITHUB_STEP_SUMMARY || true
echo "Run \`pytest tests/ -v\` locally to see detailed results." >> $GITHUB_STEP_SUMMARY || true
build:
needs: skip-ci-check