Amirhossein Khalili ff99130938 test: migrate backend suites to pytest with module coverage gate
Split backend tests into unit and integration suites, add isolated fixtures and coverage enforcement, and update CI and test documentation. Cover current authentication, content, notification, payment, media, and admin flows; fix behaviors revealed by the new tests. Validate both suites and the per-module gate against local PostgreSQL.
2026-09-26 16:50:29 +03:30
2026-05-19 20:53:08 +03:30
2026-05-19 20:53:08 +03:30
2026-05-19 20:53:08 +03:30
2026-05-19 20:53:08 +03:30

Guilan ACE Backend

Stack

  • Django 5 with Ninja API routers
  • PostgreSQL, Redis, Celery, Gunicorn
  • Prometheus instrumentation through django-prometheus

Layout

guilan-ace-backend/
  apps/
    users/
    blog/
    gallery/
    events/
    communications/
    payments/
    certificates/
  core/
  config/
  static/
  templates/
  manage.py

Local setup

python -m venv .venv
.venv\\Scripts\\activate
pip install -r requirements.txt
cp .env.example .env
python manage.py migrate
python manage.py runserver

Tests

Install test dependencies, then run the two pytest suites:

python -m pip install -r requirements-test.txt
python -m pytest -m unit
python -m pytest -m integration

CI uses PostgreSQL for integration tests and combines branch coverage from both suites. The same coverage gate can be run locally after configuring the test database:

python -m coverage run -m pytest -m unit
python -m coverage run --append -m pytest -m integration
python -m coverage json -o coverage.json
python scripts/check_coverage.py coverage.json --minimum 80

Coverage includes executable modules in apps, core, and config. The fixed exclusions are migrations, tests, __init__.py, apps.py, config/settings, ASGI/WSGI entrypoints, and constant-only service config modules (location, notifications, and zarinpal). Every included module must reach 80% combined statement and branch coverage.

Notes

  • Domain routers live under apps/<domain>/api.
  • Shared auth helpers live in core/authentication.py.
  • Shared base models, admin helpers, choices, and template tags live under core/.

Project-local skills

Backend implementation guidance is vendored in .agents/skills/: api-and-interface-design, deprecation-and-migration, and test-driven-development. Shared team guidance is also included: grill-me, grilling, planning-and-task-breakdown, documentation-and-adrs, and git-workflow-and-versioning. These directories are part of this repository so they are available after cloning it.

Description
No description provided
Readme 1.9 MiB
Languages
Python 93.5%
HTML 4.8%
JavaScript 1.1%
CSS 0.6%