setup.cfg
Rama main · réplica de lectura del repositorio original.
[tool:pytest]
testpaths = tests eval/tests
addopts = -v
markers =
integration: opt-in test requiring a live database (see tests/integration/test_executor_live.py). Skipped by default; set RUN_LIVE_DB_TESTS=1 to run.
domain_data: asserts a specific real IME domain value (a real table/column name, a real ring name, a real synonym, the eval golden set, ...) that project_config.example/ deliberately does not contain. Auto-skipped (see rootdir conftest.py's pytest_collection_modifyitems) whenever PROJECT_CONFIG_DIR resolves to project_config.example/; runs normally against the real project_config/.
[coverage:run]
branch = True
source = .
omit =
tests/*
eval/tests/*
scripts/*
web/*
.venv/*
*/__pycache__/*
# ── Interactive tooling: excluded by policy, not by neglect ──────────
# These are operator-driven wizards and CLI front-ends. Their value is
# in being run by a human, and unit-testing an interactive prompt flow
# buys close to nothing. Excluded so the gate below measures the engine.
setup_project.py
llm/wizard_llm.py
database/schema_inspector_cli.py
# ── Ratchet: still out of scope after Phase 4 ────────────────────────
# Phase 4 extracted and tested schema_data/{tables,columns,relationships}.py
# (now schema_data/registry.py, loading project_config/schema.yaml — see
# tests/test_schema_registry_loader.py and
# tests/test_schema_registry_snapshot.py). schema_inspector.py (275 stmts)
# and relationship_map.py (73 stmts) were NOT part of that phase's scope
# and remain untouched, untested, and at 0% today. Including them now
# would put the achievable gate at 74%, which would mean lowering the bar
# rather than holding it. They enter scope whenever a future phase
# extracts and tests them (relationship_map.py in particular is not
# currently imported by any application code — see its own module
# docstring), and the gate does not move down to accommodate them.
database/schema_inspector.py
database/relationship_map.py
[coverage:report]
show_missing = True
skip_covered = False
# Raised 85 -> 90 when the README started advertising the measured figure.
# A badge that says 92% with a gate at 85 is a number nobody is holding:
# coverage could fall seven points and every build would stay green while
# the README kept claiming otherwise. 90 leaves real headroom under the
# 92.84% measured at 4.10.1 without letting the claim rot silently.
fail_under = 90
exclude_also =
if TYPE_CHECKING:
raise NotImplementedError
\.\.\.$
if __name__ == .__main__.: