Skip to content

TEST: Reuse I/O test fixtures - #24012

Merged
rapids-bot[bot] merged 9 commits into
NVIDIA:mainfrom
vyasr:codex/reuse-io-test-fixtures
Sep 7, 2026
Merged

TEST: Reuse I/O test fixtures#24012
rapids-bot[bot] merged 9 commits into
NVIDIA:mainfrom
vyasr:codex/reuse-io-test-fixtures

Conversation

@vyasr

@vyasr vyasr commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Description

Make shared I/O source data module-scoped, and construct the expensive ORC nested-list data only for the selected parameterized case.

The fixtures are read-only to surrounding tests; the two tests that mutate a pandas frame now copy it first. All original formats, assertions, and parameterized I/O cases remain executed unchanged.

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

@vyasr
vyasr requested a review from a team as a code owner September 6, 2026 23:42
@vyasr vyasr added tests Unit testing for project Python Affects Python cuDF API. Performance Performance related issue labels Sep 6, 2026
@vyasr
vyasr requested a review from wence- September 6, 2026 23:42
@vyasr vyasr added tests Unit testing for project Python Affects Python cuDF API. Performance Performance related issue labels Sep 6, 2026
@coderabbitai

coderabbitai Bot commented Sep 6, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 37134466-5168-4b76-9d6b-08734611c392

📥 Commits

Reviewing files that changed from the base of the PR and between a8ad204 and aa12784.

📒 Files selected for processing (8)
  • python/cudf/cudf/tests/input_output/test_csv.py
  • python/cudf/cudf/tests/input_output/test_dlpack.py
  • python/cudf/cudf/tests/input_output/test_feather.py
  • python/cudf/cudf/tests/input_output/test_hdf5.py
  • python/cudf/cudf/tests/input_output/test_json.py
  • python/cudf/cudf/tests/input_output/test_orc.py
  • python/cudf/cudf/tests/input_output/test_parquet.py
  • python/cudf/cudf/tests/input_output/test_s3.py

Included review availability: Your plan provides up to 12 included reviews per hour; 8 remain after this review.


📝 Summary

Summary by CodeRabbit

  • Tests

    • Improved input/output test efficiency by reusing shared test fixtures across modules.
    • Expanded ORC list-writer coverage for nested lists, nulls, empty elements, variable lengths, and large child collections.
    • Prevented test data mutations from affecting other cases by isolating copied inputs.
    • Added clarifying documentation for shared test data usage in DLPack and HDF5 tests.
  • Documentation

    • Updated copyright attribution details in selected test files.

Walkthrough

Changes

The input/output test modules now reuse module-scoped fixtures. JSON and Parquet tests isolate mutations by copying pandas inputs. ORC list tests use named data cases and a shared builder.

Input/output test maintenance

Layer / File(s) Summary
Module-scoped test fixtures
python/cudf/cudf/tests/input_output/test_csv.py, test_dlpack.py, test_feather.py, test_hdf5.py, test_json.py, test_parquet.py, test_s3.py, test_orc.py
Fixtures use module scope. Comments document shared or read-only fixture data. SPDX notices include updated attribution where changed.
Mutable test-input isolation
python/cudf/cudf/tests/input_output/test_json.py, test_parquet.py
Tests copy pandas inputs before removing columns or modifying them.
Named ORC list test cases
python/cudf/cudf/tests/input_output/test_orc.py
ORC list tests use named cases and _make_orc_list_data(case) for nested, null, empty, variable-length, and large-child datasets.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to aa127

This updates test-fixture reuse and lazy ORC test-data construction without changing product behavior or stated test coverage. No merge-blocking risk remains.

Suggested reviewers: mroeschke

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 32 functions across 8 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed The description clearly explains fixture reuse, lazy ORC test-data construction, copy-on-mutation changes, and preserved test coverage. It directly matches the changeset.
Title check ✅ Passed The title accurately summarizes the primary change: reusing I/O test fixtures through module scoping.
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@vyasr vyasr added improvement Improvement / enhancement to an existing function non-breaking Non-breaking change labels Sep 7, 2026
@bdice

bdice commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

/merge

@rapids-bot
rapids-bot Bot merged commit 8ce2221 into NVIDIA:main Sep 7, 2026
117 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in cuDF Python Sep 7, 2026
@vyasr
vyasr deleted the codex/reuse-io-test-fixtures branch September 7, 2026 21:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvement Improvement / enhancement to an existing function non-breaking Non-breaking change Performance Performance related issue Python Affects Python cuDF API. tests Unit testing for project

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants