Development

Setting Up Development Environment

  1. Install dependencies including development tools:

    poetry install --with dev
    
  2. Run linting and type checking:

    make lint-check
    
  3. Fix linting issues automatically:

    make lint-fix
    

Running Tests

Unit Tests

Run all unit tests:

make unit-tests

Run unit tests without coverage markers:

make unit-tests-no-coverage

E2E Tests

Run end-to-end tests:

make e2e-tests

Run stress tests:

make e2e-stress-tests-generate-data
make e2e-stress-tests

Coverage

Generate coverage reports:

make coverage

Generate HTML coverage report:

make html-cov

Code Quality

The project uses:

  • black - Code formatting

  • ruff - Linting

  • pyright - Type checking

All checks are run with:

make lint-check

Internationalization

Extract translation strings:

make extract-translations

Translations are stored in goodmap/locale/ directory.

Data Validation

Validate JSON data files:

make verify-json-data JSON_DATA_FILE=path/to/data.json