44from hamcrest import assert_that , equal_to , instance_of
55
66from nodestream .pipeline .filters import (
7- EnforceSchema ,
87 ExcludeWhenValuesMatchPossibilities ,
98 Filter ,
10- Schema ,
119 SchemaEnforcer ,
1210 ValueMatchesRegexFilter ,
1311 ValuesMatchPossibilitiesFilter ,
14- WarnSchema ,
1512)
13+ from nodestream .schema .state import Schema
1614
1715from ..stubs import StubbedValueProvider
1816
1917PASSING_FILTER_CONFIGURATION = [
2018 {
2119 "value" : StubbedValueProvider ("test" ),
22- "possibilities" : [StubbedValueProvider ("A Miss" ), StubbedValueProvider ("test" )],
20+ "possibilities" : [
21+ StubbedValueProvider ("A Miss" ),
22+ StubbedValueProvider ("test" ),
23+ ],
2324 }
2425]
2526
@@ -84,7 +85,7 @@ async def filter_record(self, record):
8485 assert_that (results , equal_to ([]))
8586
8687
87- REGEX = r".*[\[\]\{\}\(\)\\\/~, ]+"
88+ REGEX = r".*[\[\]\{\}\(\)\\\/~]+"
8889REGEX_TEST_CASES = [
8990 {"value" : "[test]" , "include" : True , "expect" : False },
9091 {"value" : "test" , "include" : True , "expect" : True },
@@ -97,7 +98,9 @@ async def filter_record(self, record):
9798async def test_match_regex ():
9899 for test_case in REGEX_TEST_CASES :
99100 subject = ValueMatchesRegexFilter .from_file_data (
100- value = test_case ["value" ], regex = REGEX , include = test_case ["include" ]
101+ value = test_case ["value" ],
102+ regex = REGEX ,
103+ include = test_case ["include" ],
101104 )
102105 result = await subject .filter_record ({})
103106 assert_that (result , equal_to (test_case ["expect" ]))
@@ -116,9 +119,7 @@ async def test_schema_enforcer_with_fetch_schema(mocker, schema_dict):
116119 context = mocker .Mock ()
117120 context .object_store = object_store
118121
119- subject = SchemaEnforcer .from_file_data (
120- enforcement_policy = "enforce" , key = "test_key"
121- )
122+ subject = SchemaEnforcer (enforcement_policy = "enforce" , key = "test_key" )
122123 await subject .start (context )
123124
124125 record = {"name" : "test" }
@@ -138,7 +139,7 @@ async def test_schema_enforcer_with_infer_schema(mocker):
138139 context = mocker .Mock ()
139140 context .object_store = object_store
140141
141- subject = SchemaEnforcer . from_file_data (inference_sample_size = 2 )
142+ subject = SchemaEnforcer (inference_sample_size = 2 )
142143 await subject .start (context )
143144
144145 record = {"name" : "test" }
@@ -157,8 +158,8 @@ async def test_schema_enforcer_with_infer_schema(mocker):
157158async def test_schema_enforcement_modes (schema_dict ):
158159 schema = Schema (schema_dict )
159160
160- enforce_mode = EnforceSchema (schema )
161- warn_mode = WarnSchema (schema )
161+ enforce_mode = SchemaEnforcer (schema = schema , enforcement_policy = "enforce" )
162+ warn_mode = SchemaEnforcer (schema = schema , enforcement_policy = "warn" )
162163
163164 record = {"name" : "test" }
164165 assert_that (enforce_mode .should_filter (record ), equal_to (False ))
@@ -171,7 +172,7 @@ async def test_schema_enforcement_modes(schema_dict):
171172
172173@pytest .mark .asyncio
173174async def test_infer_mode_schema_already_exists (mocker , schema_dict ):
174- subject = SchemaEnforcer . from_file_data (inference_sample_size = 2 )
175+ subject = SchemaEnforcer (inference_sample_size = 2 )
175176
176177 context = mocker .Mock ()
177178 context .object_store .get_pickled .return_value = schema_dict
@@ -184,7 +185,7 @@ async def test_infer_mode_schema_already_exists(mocker, schema_dict):
184185
185186@pytest .mark .asyncio
186187async def test_enforce_mode_schema_not_present (mocker ):
187- subject = SchemaEnforcer . from_file_data (key = "test_key" )
188+ subject = SchemaEnforcer (key = "test_key" )
188189
189190 context = mocker .Mock ()
190191 context .object_store .get_pickled .return_value = None
@@ -197,7 +198,7 @@ async def test_enforce_mode_schema_not_present(mocker):
197198async def test_invalid_enforcement_policy (mocker , schema_dict ):
198199 context = mocker .Mock ()
199200 context .object_store .get_pickled .return_value = schema_dict
200- subject = SchemaEnforcer . from_file_data (
201+ subject = SchemaEnforcer (
201202 enforcement_policy = "invalid" , inference_sample_size = 2
202203 )
203204
@@ -209,12 +210,12 @@ async def test_invalid_enforcement_policy(mocker, schema_dict):
209210async def test_warn_policy (mocker ):
210211 context = mocker .Mock ()
211212 context .object_store .get_pickled .return_value = None
212- subject = SchemaEnforcer . from_file_data (
213+ subject = SchemaEnforcer (
213214 inference_sample_size = 0 , enforcement_policy = "warn"
214215 )
215216 await subject .start (context )
216217 assert_that (await subject .filter_record ({}), equal_to (False ))
217- assert_that (subject .mode , instance_of (WarnSchema ))
218+ assert_that (subject .mode , instance_of (SchemaEnforcer . WarnSchema ))
218219
219220
220221def test_filter_import_error (mocker ):
@@ -230,6 +231,6 @@ def test_filter_import_error(mocker):
230231 SchemaEnforcer ()
231232
232233 assert (
233- "SchemaEnforcer requires genson and jsonschema to be installed. Install the `validation` extra."
234+ "SchemaEnforcer requires genson and jsonschema to be installed." " Install the `validation` extra."
234235 in str (excinfo .value )
235236 )
0 commit comments