Skip to content

Commit f2a9d5a

Browse files
authored
Merge pull request #36 from bcdev/forman-user_RuleTest_expected
Make use of `RuleTest.expected`
2 parents 083b699 + 1b29a69 commit f2a9d5a

26 files changed

+240
-128
lines changed

CHANGES.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@
1111
- Now supporting xcube multi-level datasets `*.levels`:
1212
- Added xcube plugin processor `"xcube/multi-level-dataset"` that is used
1313
inside the predefined xcube configurations "all" and "recommended".
14-
- Directories that are recognized by file patterns associated with a non-empty
15-
configuration object are no longer recursively
16-
traversed.
1714
- Introduced method `Plugin.define_config` which defines a named plugin
1815
configuration. It takes a name and a configuration object or list of
1916
configuration objects.
@@ -24,11 +21,13 @@
2421
- The returned value should be a list of values that can be
2522
converted into configuration objects: mixed `Config` instances,
2623
dictionary, or a name that refers to a named configuration of a plugin.
27-
- Node path names now contain the dataset index if a file path
28-
has been opened by a processor produced multiple
29-
datasets to validate.
3024

3125
- Other changes:
26+
- Directories that are recognized by file patterns associated with a non-empty
27+
configuration object are no longer recursively traversed.
28+
- Node path names now contain the dataset index if a file path
29+
has been opened by a processor produced multiple
30+
datasets to validate.
3231
- Changed type of `Plugin.configs` from `dict[str, Config]` to
3332
`dict[str, list[Config]]`.
3433
- Inbuilt plugin rules now import their `plugin` instance from
@@ -37,7 +36,8 @@
3736
serializes property values that are also default values.
3837
- Pinned zarr dependency to be >=2.18, <3 until test
3938
`tests.plugins.xcube.processors.test_mldataset.MultiLevelDatasetProcessorTest`
40-
is adjusted or fsspec's memory filesystem is updated.
39+
is adjusted or `fsspec`'s memory filesystem is updated.
40+
- Now making use of the `expected` property of `RuleTest`.
4141

4242
## Version 0.3.0 (from 2025-01-20)
4343

docs/todo.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,10 @@
1616
- project logo
1717
- add some more tests so we reach 99% coverage
1818
- apply rule op args/kwargs validation schema
19-
- support `RuleTest.expected`, it is currently unused
2019
- provide core rule that checks for configurable list of std attributes
2120
- measure time it takes to open a dataset and pass time into rule context
2221
so we can write a configurable rule that checks the opening time
23-
- allow outputting suggestions that me be included in rule results
22+
- allow outputting suggestions, if any, that emitted by some rules
2423

2524
## Nice to have
2625

examples/rule_testing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def dataset(self, ctx: RuleContext, node: DatasetNode):
3636
"good-title",
3737
GoodTitle,
3838
valid=[RuleTest(dataset=valid_dataset)],
39-
invalid=[RuleTest(dataset=invalid_dataset)],
39+
invalid=[RuleTest(dataset=invalid_dataset, expected=1)],
4040
)
4141

4242
# or define a test class derived from unitest.TestCase

tests/plugins/core/rules/test_coords_for_dims.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@
2020
RuleTest(dataset=valid_dataset_2),
2121
],
2222
invalid=[
23-
RuleTest(dataset=invalid_dataset_2),
23+
RuleTest(dataset=invalid_dataset_2, expected=1),
2424
],
2525
)

tests/plugins/core/rules/test_dataset_title_attr.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
RuleTest(dataset=valid_dataset_2),
1818
],
1919
invalid=[
20-
RuleTest(dataset=invalid_dataset_1),
21-
RuleTest(dataset=invalid_dataset_2),
20+
RuleTest(dataset=invalid_dataset_1, expected=1),
21+
RuleTest(dataset=invalid_dataset_2, expected=1),
2222
],
2323
)

tests/plugins/core/rules/test_flags.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,13 @@
8383
RuleTest(dataset=valid_dataset_3),
8484
],
8585
invalid=[
86-
RuleTest(dataset=invalid_dataset_0),
87-
RuleTest(dataset=invalid_dataset_1),
88-
RuleTest(dataset=invalid_dataset_2),
89-
RuleTest(dataset=invalid_dataset_3),
90-
RuleTest(dataset=invalid_dataset_4),
91-
RuleTest(dataset=invalid_dataset_5),
92-
RuleTest(dataset=invalid_dataset_6),
93-
RuleTest(dataset=invalid_dataset_7),
86+
RuleTest(dataset=invalid_dataset_0, expected=2),
87+
RuleTest(dataset=invalid_dataset_1, expected=1),
88+
RuleTest(dataset=invalid_dataset_2, expected=1),
89+
RuleTest(dataset=invalid_dataset_3, expected=1),
90+
RuleTest(dataset=invalid_dataset_4, expected=1),
91+
RuleTest(dataset=invalid_dataset_5, expected=1),
92+
RuleTest(dataset=invalid_dataset_6, expected=1),
93+
RuleTest(dataset=invalid_dataset_7, expected=1),
9494
],
9595
)

tests/plugins/core/rules/test_grid_mappings.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,9 @@ def make_dataset():
6060
RuleTest(dataset=valid_dataset_2),
6161
],
6262
invalid=[
63-
RuleTest(dataset=invalid_dataset_1),
64-
RuleTest(dataset=invalid_dataset_2),
65-
RuleTest(dataset=invalid_dataset_3),
66-
RuleTest(dataset=invalid_dataset_4),
63+
RuleTest(dataset=invalid_dataset_1, expected=1),
64+
RuleTest(dataset=invalid_dataset_2, expected=1),
65+
RuleTest(dataset=invalid_dataset_3, expected=1),
66+
RuleTest(dataset=invalid_dataset_4, expected=1),
6767
],
6868
)

tests/plugins/core/rules/test_lat_lon_coordinate.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,9 @@
8484
RuleTest(dataset=invalid_lon_dataset_2),
8585
],
8686
invalid=[
87-
RuleTest(dataset=invalid_lat_dataset_0),
88-
RuleTest(dataset=invalid_lat_dataset_1),
89-
RuleTest(dataset=invalid_lat_dataset_2),
87+
RuleTest(dataset=invalid_lat_dataset_0, expected=1),
88+
RuleTest(dataset=invalid_lat_dataset_1, expected=1),
89+
RuleTest(dataset=invalid_lat_dataset_2, expected=2),
9090
],
9191
)
9292

@@ -104,8 +104,8 @@
104104
RuleTest(dataset=invalid_lat_dataset_2),
105105
],
106106
invalid=[
107-
RuleTest(dataset=invalid_lon_dataset_0),
108-
RuleTest(dataset=invalid_lon_dataset_1),
109-
RuleTest(dataset=invalid_lon_dataset_2),
107+
RuleTest(dataset=invalid_lon_dataset_0, expected=1),
108+
RuleTest(dataset=invalid_lon_dataset_1, expected=1),
109+
RuleTest(dataset=invalid_lon_dataset_2, expected=2),
110110
],
111111
)

tests/plugins/core/rules/test_no_empty_attrs.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
RuleTest(dataset=valid_dataset_2),
2626
],
2727
invalid=[
28-
RuleTest(dataset=invalid_dataset_1),
29-
RuleTest(dataset=invalid_dataset_2),
30-
RuleTest(dataset=invalid_dataset_3),
28+
RuleTest(dataset=invalid_dataset_1, expected=1),
29+
RuleTest(dataset=invalid_dataset_2, expected=1),
30+
RuleTest(dataset=invalid_dataset_3, expected=1),
3131
],
3232
)

tests/plugins/core/rules/test_no_empty_chunks.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,6 @@
3636
RuleTest(dataset=valid_dataset_3),
3737
],
3838
invalid=[
39-
RuleTest(dataset=invalid_dataset_0),
39+
RuleTest(dataset=invalid_dataset_0, expected=1),
4040
],
4141
)

0 commit comments

Comments
 (0)