Remove dead [tool.sqla_testing] from pyproject.toml (setup.cfg cannot migrate)
envgap__pyathena-dev__PyAthena-737
01 / FAILURE SIGNATURE
As reported upstream
No identifying execution failure has been captured.
Not a benchmark task.
- The project already builds and runs before the fix, so there is nothing to repair.
02 / ENVIRONMENT RECIPE
- Base commit
19a50f89b97e0718ed6208ffddf715c970512c2f- Manifest
pyproject.toml- Reproduce
Awaiting issue-specific recipe- Run under trace
Awaiting a meaningful runtime command
03 / ORIGINAL ISSUE TEXT
pyathena-dev/PyAthena #737 · read the original issue
## Summary
`pyproject.toml` contains a `[tool.sqla_testing]` block (lines 129-131) that duplicates `setup.cfg`, but **SQLAlchemy's test plugin never reads it** — it is dead configuration and should be removed. Conversely, `setup.cfg` **cannot** be migrated to `pyproject.toml` today, so it must stay.
## Investigation
SQLAlchemy's testing plugin hardcodes reading `setup.cfg` / `test.cfg` via `configparser` and has no TOML/pyproject support:
```python
# sqlalchemy/testing/plugin/plugin_base.py (2.0.46; identical on upstream main)
def read_config(root_path):
global file_config
file_config = configparser.ConfigParser()
file_config.read(
[str(root_path / "setup.cfg"), str(root_path / "test.cfg")]
)
```
- `requirement_cls` is read from `file_config.get("sqla_testing", "requirement_cls")` (CLI override `--requirements` exists).
- `profile_file` is read from `file_config.get("sqla_testing", "profile_file")` and has **no CLI override and no default** — it can only come from `setup.cfg`/`test.cfg`. Deleting `setup.cfg` breaks `just test sqla` / `sqla-async` with `configparser.NoSectionError`.
- Verified on the installed SQLAlchemy 2.0.46 and on upstream `main` — no released or unreleased version reads this config from `pyproject.toml`.
- Nothing else in the repo (justfile, CI workflows, docs) references `setup.cfg`; it exists solely for SQLAlchemy's test plugin.
## Action items
- [ ] Remove the never-read `[tool.sqla_testing]` block from `pyproject.toml` (lines 129-131) — no behavioral change.
- [ ] Add a comment at the top of `setup.cfg` explaining it exists solely for SQLAlchemy's compliance test plugin (`sqlalchemy.testing.plugin.plugin_base.read_config`) and cannot move to `pyproject.toml` until upstream SQLAlchemy supports it.
04 / LABELS
Labels from the report text only; not yet run
No supported category has been assigned.
Label rules and the text that matched
[]