llnl / llnl/thicket

Split test fixtures in test_filter_metadata.py

Open
#166 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area-tests priority-normal type-internal-cleanup
Dominant language
JavaScript
Stars
18
Forks
10
PR merge metrics
No merged PRs in 30d

Description

Minor issue that cropped up in the review of #164.

In `test_filter_metadata.py`, there are the following 3 functions:
* `filter_one_column`
* `filter_multiple_and`
* `filter_multiple_or`

These functions are essentially test fixtures, but, instead of being treated as fixtures, they are just functions that are combined into one fixture called `test_filter_metadata`. As a result of having this "super-fixture", we can't easily detect which of the 3 functions above actually failed.

This "super-fixture" should be split into 3 different fixtures to test these functions independently and simplify failure tracking.

Additionally, per the discussion in #164, these functions are (for some reason) also used in:
* `thicket/tests/test_concat_thickets.py`
* `thicket/tests/test_groupby.py`

As a result, these functions should be moved into some "testing utils" module. Then, `test_filter_metadata.py` should import the functions and use them in the 3 new fixtures, and the other two modules (listed above) should import the functions and use them as they currently are.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading test_filter_metadata.py and the usages in thicket/tests/test_concat_thickets.py and thicket/tests/test_groupby.py. Move the three named functions into a testing utils module, import them where needed, and split test_filter_metadata into three independent fixtures. Run the affected tests and confirm each fixture reports failures separately.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
testing-qa
Issue type
Refactor
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.