Back to Langflow

Dynamic Coverage Configuration

scripts/generate_coverage_config.md

1.10.0.dev201.4 KB
Original Source

Dynamic Coverage Configuration

This script generates a custom .coveragerc file for backend testing that excludes:

  1. Bundled components - Components listed in SIDEBAR_BUNDLES from src/frontend/src/utils/styleUtils.ts
  2. Legacy components - Python files containing legacy = True

How it works

  1. Reads frontend config: Parses styleUtils.ts to extract bundled component names
  2. Scans backend files: Finds all .py files in src/backend/base/langflow/components/ with legacy = True
  3. Generates .coveragerc: Creates exclusion patterns for pytest-cov

Usage

Local development

bash
# Generate config and run tests
python3 scripts/generate_coverage_config.py
cd src/backend && python -m pytest --cov=src/backend/base/langflow --cov-config=.coveragerc

CI Integration

The script runs automatically in CI before backend tests via .github/workflows/python_test.yml.

Files affected

  • Input: src/frontend/src/utils/styleUtils.ts (SIDEBAR_BUNDLES)
  • Input: src/backend/base/langflow/components/**/*.py (legacy components)
  • Output: src/backend/.coveragerc (auto-generated, in .gitignore)

Benefits

  • Accurate coverage: Focuses on actively maintained core code
  • Dynamic updates: Automatically adapts when bundles/legacy components change
  • Codecov compatible: Generated config works with both local testing and Codecov reporting