@@ -257,6 +257,45 @@ def test_validate_string_whitespace_handling(self, config_module, sample_check):
257257 result = config_module .validate_string (sample_check , " test value " )
258258 assert result ["status" ] == TestStatus .SUCCESS .value
259259
260+ def test_validate_string_contains_mode_success (self , config_module , sample_check ):
261+ """Test string validation with match_mode contains"""
262+ sample_check .validator_args = {"expected" : "true" , "match_mode" : "contains" }
263+ result = config_module .validate_string (sample_check , "nic1: AcceleratedNetworking=true" )
264+ assert result ["status" ] == TestStatus .SUCCESS .value
265+
266+ def test_validate_string_contains_mode_failure (self , config_module , sample_check ):
267+ """Test string validation with match_mode contains"""
268+ sample_check .validator_args = {"expected" : "false" , "match_mode" : "contains" }
269+ sample_check .severity = TestSeverity .WARNING
270+ result = config_module .validate_string (sample_check , "nic1: AcceleratedNetworking=true" )
271+ assert result ["status" ] == TestStatus .WARNING .value
272+
273+ def test_validate_string_not_contains_mode_success (self , config_module , sample_check ):
274+ """Test string validation with match_mode not_contains"""
275+ sample_check .validator_args = {"expected" : "false" , "match_mode" : "not_contains" }
276+ result = config_module .validate_string (
277+ sample_check , "nic1: AcceleratedNetworking=true nic2: AcceleratedNetworking=true"
278+ )
279+ assert result ["status" ] == TestStatus .SUCCESS .value
280+
281+ def test_validate_string_not_contains_mode_failure (self , config_module , sample_check ):
282+ """Test string validation with match_mode not_contains"""
283+ sample_check .validator_args = {"expected" : "false" , "match_mode" : "not_contains" }
284+ sample_check .severity = TestSeverity .WARNING
285+ result = config_module .validate_string (
286+ sample_check , "nic1: AcceleratedNetworking=true nic2: AcceleratedNetworking=false"
287+ )
288+ assert result ["status" ] == TestStatus .WARNING .value
289+
290+ def test_validate_string_default_match_mode_is_exact (self , config_module , sample_check ):
291+ """Test that default match_mode is exact (backward compatible)"""
292+ sample_check .validator_args = {"expected" : "true" }
293+ result = config_module .validate_string (sample_check , "true" )
294+ assert result ["status" ] == TestStatus .SUCCESS .value
295+ sample_check .severity = TestSeverity .WARNING
296+ result = config_module .validate_string (sample_check , "nic: true" )
297+ assert result ["status" ] == TestStatus .WARNING .value
298+
260299 def test_validate_numeric_range_within_bounds (self , config_module , sample_check ):
261300 """Test numeric range validation within bounds"""
262301 sample_check .validator_args = {"min" : 10 , "max" : 100 }
0 commit comments