66from xrlint .config import Config , ConfigObject
77from xrlint .constants import CORE_PLUGIN_NAME , NODE_ROOT_NAME
88from xrlint .linter import Linter , new_linter
9- from xrlint .node import AttrNode , AttrsNode , DataArrayNode , DatasetNode
9+ from xrlint .node import AttrNode , AttrsNode , VariableNode , DatasetNode
1010from xrlint .plugin import new_plugin
1111from xrlint .processor import ProcessorOp
1212from xrlint .result import Message , Result
@@ -50,34 +50,34 @@ def test_new_linter_all(self):
5050 self .assertIn ("coords-for-dims" , config_obj_1 .rules )
5151
5252
53- class LinterVerifyConfigTest (TestCase ):
53+ class LinterValidateWithConfigTest (TestCase ):
5454 def test_config_with_config_list (self ):
5555 linter = new_linter ()
56- result = linter .verify_dataset (
56+ result = linter .validate (
5757 xr .Dataset (),
5858 config = Config .from_value ([{"rules" : {"no-empty-attrs" : 2 }}]),
5959 )
6060 self .assert_result_ok (result , "Missing metadata, attributes are empty." )
6161
6262 def test_config_with_list_of_config (self ):
6363 linter = new_linter ()
64- result = linter .verify_dataset (
64+ result = linter .validate (
6565 xr .Dataset (),
6666 config = [{"rules" : {"no-empty-attrs" : 2 }}],
6767 )
6868 self .assert_result_ok (result , "Missing metadata, attributes are empty." )
6969
7070 def test_config_with_config_obj (self ):
7171 linter = new_linter ()
72- result = linter .verify_dataset (
72+ result = linter .validate (
7373 xr .Dataset (),
7474 config = {"rules" : {"no-empty-attrs" : 2 }},
7575 )
7676 self .assert_result_ok (result , "Missing metadata, attributes are empty." )
7777
7878 def test_no_config (self ):
7979 linter = Linter ()
80- result = linter .verify_dataset (
80+ result = linter .validate (
8181 xr .Dataset (),
8282 )
8383 self .assert_result_ok (result , "No configuration given or matches '<dataset>'." )
@@ -89,27 +89,27 @@ def assert_result_ok(self, result: Result, expected_message: str):
8989 self .assertEqual (expected_message , result .messages [0 ].message )
9090
9191
92- class LinterVerifyTest (TestCase ):
92+ class LinterValidateTest (TestCase ):
9393 def setUp (self ):
9494 plugin = new_plugin (name = "test" )
9595
9696 @plugin .define_rule ("no-space-in-attr-name" )
9797 class AttrVer (RuleOp ):
98- def attr (self , ctx : RuleContext , node : AttrNode ):
98+ def validate_attr (self , ctx : RuleContext , node : AttrNode ):
9999 if " " in node .name :
100100 ctx .report (f"Attribute name with space: { node .name !r} " )
101101
102102 @plugin .define_rule ("no-empty-attrs" )
103103 class AttrsVer (RuleOp ):
104- def attrs (self , ctx : RuleContext , node : AttrsNode ):
104+ def validate_attrs (self , ctx : RuleContext , node : AttrsNode ):
105105 if not node .attrs :
106106 ctx .report ("Empty attributes" )
107107
108108 @plugin .define_rule ("data-var-dim-must-have-coord" )
109109 class DataArrayVer (RuleOp ):
110- def data_array (self , ctx : RuleContext , node : DataArrayNode ):
110+ def validate_variable (self , ctx : RuleContext , node : VariableNode ):
111111 if node .in_data_vars ():
112- for dim_name in node .data_array .dims :
112+ for dim_name in node .array .dims :
113113 if dim_name not in ctx .dataset .coords :
114114 ctx .report (
115115 f"Dimension { dim_name !r} "
@@ -119,7 +119,7 @@ def data_array(self, ctx: RuleContext, node: DataArrayNode):
119119
120120 @plugin .define_rule ("dataset-without-data-vars" )
121121 class DatasetVer (RuleOp ):
122- def dataset (self , ctx : RuleContext , node : DatasetNode ):
122+ def validate_dataset (self , ctx : RuleContext , node : DatasetNode ):
123123 if len (node .dataset .data_vars ) == 0 :
124124 ctx .report ("Dataset does not have data variables" )
125125 raise RuleExit # no need to traverse further
@@ -157,7 +157,7 @@ def test_rules_are_ok(self):
157157 )
158158
159159 def test_linter_respects_rule_severity_error (self ):
160- result = self .linter .verify_dataset (
160+ result = self .linter .validate (
161161 xr .Dataset (), rules = {"test/dataset-without-data-vars" : 2 }
162162 )
163163 self .assertEqual (
@@ -182,7 +182,7 @@ def test_linter_respects_rule_severity_error(self):
182182 )
183183
184184 def test_linter_respects_rule_severity_warn (self ):
185- result = self .linter .verify_dataset (
185+ result = self .linter .validate (
186186 xr .Dataset (), rules = {"test/dataset-without-data-vars" : 1 }
187187 )
188188 self .assertEqual (
@@ -207,7 +207,7 @@ def test_linter_respects_rule_severity_warn(self):
207207 )
208208
209209 def test_linter_respects_rule_severity_off (self ):
210- result = self .linter .verify_dataset (
210+ result = self .linter .validate (
211211 xr .Dataset (), rules = {"test/dataset-without-data-vars" : 0 }
212212 )
213213 self .assertEqual (
@@ -225,9 +225,7 @@ def test_linter_respects_rule_severity_off(self):
225225 )
226226
227227 def test_linter_recognized_unknown_rule (self ):
228- result = self .linter .verify_dataset (
229- xr .Dataset (), rules = {"test/dataset-is-fast" : 2 }
230- )
228+ result = self .linter .validate (xr .Dataset (), rules = {"test/dataset-is-fast" : 2 })
231229 self .assertEqual (
232230 [
233231 Message (
@@ -266,7 +264,7 @@ def test_linter_real_life_scenario(self):
266264 )
267265 dataset .encoding ["source" ] = "chl-tsm.zarr"
268266
269- result = self .linter .verify_dataset (
267+ result = self .linter .validate (
270268 dataset ,
271269 config = {
272270 "rules" : {
@@ -325,7 +323,7 @@ def test_linter_real_life_scenario(self):
325323 )
326324
327325 def test_processor_ok (self ):
328- result = self .linter .verify_dataset (
326+ result = self .linter .validate (
329327 "test.levels" ,
330328 config = {
331329 "processor" : "test/multi-level-dataset" ,
@@ -352,7 +350,7 @@ def test_processor_ok(self):
352350 )
353351
354352 def test_processor_fail (self ):
355- result = self .linter .verify_dataset (
353+ result = self .linter .validate (
356354 "bad.levels" ,
357355 config = {
358356 "processor" : "test/multi-level-dataset" ,
0 commit comments