Upstream Test Inventory¶
This inventory ranks the vendored GeoPandas contract slices by expected implementation leverage, optional dependency pressure, and collected pytest weight. Use it to choose which upstream groups to promote next.
Intent¶
Map the highest-value upstream test groups to:
actual collected node weight when available
required or optional dependencies
expected runtime tier for local smoke versus broader coverage
the implementation-order epic they most directly unlock
Request Signals¶
upstream tests
inventory
contract slices
collect-only
runtime weight
dependency groups
promotion order
Open First¶
docs/testing/upstream-inventory.md
tests/upstream/README.md
pyproject.toml
tests/upstream/geopandas/conftest.py
Verify¶
uv run python scripts/check_docs.py --checkuv run python scripts/intake.py "inventory upstream tests by weight dependency group and runtime"uv run pytest --collect-only -q tests/upstream/geopandas/tests/test_extension_array.py
Risks¶
Collected node counts do not measure wall-clock runtime directly.
Optional-dependency groups can appear artificially light when collection is skipped.
Promoting high-weight slices too early can hide narrower kernel milestones.
Ranking¶
Rank |
Slice |
Collected nodes |
Dependency group |
Runtime weight |
Target epic |
|---|---|---|---|---|---|
1 |
|
504 |
default |
heavy |
Phase 6a / |
2 |
|
459 |
default, |
heavy |
Phase 3 / |
3 |
|
405 |
default, |
heavy |
Phase 6a / |
4 |
|
409 |
|
heavy |
Phase 6b / |
5 |
|
335 |
default, |
heavy |
Phase 4 / |
6 |
|
219 |
default, |
medium-heavy |
Phase 5 / |
7 |
|
114 |
default, |
medium |
Phase 2 / |
8 |
|
skipped without |
|
heavy when enabled |
Phase 6b / |
9 |
|
42 |
|
medium |
Phase 6b / SQL fallback adapters, Phase 7 / |
10 |
|
27 |
default |
light |
Phase 6b fallback and compatibility bridges |
Notes¶
Collected node counts came from
uv run pytest --collect-only -qagainst the vendored files on this repo checkout.test_arrow.pyandtest_geoarrow.pyare currently gated entirely by the missingpyarrowextra, so their weight is known conceptually but not yet collected in this environment.test_file.pyandtest_file_geom_types_drivers.pyare disproportionately large because they cross product engines, drivers, geometry mixes, and file suffixes.test_extension_array.pyis the largest single compatibility slice and is the best denominator for Phase 6a progress because it stresses pandas alignment, dtype behavior, reshaping, casting, and groupby semantics.test_sindex.pyplustest_sjoin.pyform the clearest bridge from Phase 3 indexing kernels into user-visible GeoPandas behavior.
Recommended Promotion Order¶
test_config.pyremains the smoke gate for vendored import health.test_array.pyshould be the first geometry-buffer contract slice promoted once Phase 2 starts because it is core, medium-sized, and default-deps only.test_extension_array.pyshould be the first major Phase 6a promotion target because it is large but still free of heavyweight I/O extras.test_sindex.pyandtest_sjoin.pyshould anchor Phase 3 and 4 promotion.test_overlay.py,test_clip.py, andtest_geom_methods.pyshould stay behind Phase 4 and 5 kernel milestones.Arrow/GeoArrow and SQL slices should remain explicitly optional until the
upstream-optionaldependency group is installed in CI or local benches.
Runtime Tiers¶
light: under 50 collected nodes or no external system dependencymedium: 50 to 150 collected nodes, mostly default dependenciesmedium-heavy: 150 to 300 nodes or moderate fixture/data pressureheavy: 300+ nodes, strong parametrization, or optional/external stack needs
Verification¶
Use these commands to refresh the inventory when vendored tests or dependency groups change:
uv run pytest --collect-only -q tests/upstream/geopandas/tests/test_extension_array.py
uv run pytest --collect-only -q tests/upstream/geopandas/tests/test_sindex.py tests/upstream/geopandas/tools/tests/test_sjoin.py
uv run pytest --collect-only -q tests/upstream/geopandas/tests/test_overlay.py tests/upstream/geopandas/tools/tests/test_clip.py
uv run pytest --collect-only -q tests/upstream/geopandas/io/tests/test_file.py tests/upstream/geopandas/io/tests/test_file_geom_types_drivers.py