|
13 | 13 | RULE_DEFAULT_VALUE,
|
14 | 14 | RULE_NAME_KEY,
|
15 | 15 | RULES_KEY,
|
| 16 | + ConditionsValidator, |
16 | 17 | RuleAction,
|
17 | 18 | RulesValidator,
|
18 | 19 | SchemaValidator,
|
@@ -269,49 +270,64 @@ def test_valid_condition_all_actions():
|
269 | 270 |
|
270 | 271 | def test_validate_condition_invalid_condition_type():
|
271 | 272 | # GIVEN an invalid condition type of empty dict
|
272 |
| - validator = SchemaValidator(EMPTY_SCHEMA) |
273 |
| - condition = {} |
274 |
| - |
275 |
| - # WHEN calling _validate_condition |
276 |
| - with pytest.raises(ConfigurationError) as err: |
277 |
| - validator._validate_condition("foo", condition) |
| 273 | + rule_conditions = {"conditions": {}} |
| 274 | + condition = rule_conditions[CONDITIONS_KEY] |
| 275 | + rule_name = "dummy" |
278 | 276 |
|
| 277 | + # WHEN calling validate_condition |
279 | 278 | # THEN raise ConfigurationError
|
280 |
| - assert "invalid condition type" in str(err) |
| 279 | + with pytest.raises(ConfigurationError, match="Invalid condition type"): |
| 280 | + validator = ConditionsValidator(rule=rule_conditions, rule_name=rule_name) |
| 281 | + validator.validate_condition(condition=condition, rule_name=rule_name) |
281 | 282 |
|
282 | 283 |
|
283 | 284 | def test_validate_condition_invalid_condition_action():
|
284 | 285 | # GIVEN an invalid condition action of foo
|
285 |
| - validator = SchemaValidator(EMPTY_SCHEMA) |
286 |
| - condition = {"action": "foo"} |
287 |
| - |
288 |
| - # WHEN calling _validate_condition |
289 |
| - with pytest.raises(ConfigurationError) as err: |
290 |
| - validator._validate_condition("foo", condition) |
| 286 | + rule_conditions = { |
| 287 | + "conditions": [{"action": "INVALID", "key": "tenant_id", "value": "12345"}], |
| 288 | + } |
| 289 | + condition = rule_conditions[CONDITIONS_KEY][0] |
| 290 | + rule_name = "dummy" |
291 | 291 |
|
| 292 | + # WHEN calling validate_condition |
292 | 293 | # THEN raise ConfigurationError
|
293 |
| - assert "invalid action value" in str(err) |
| 294 | + with pytest.raises(ConfigurationError, match="Invalid action value"): |
| 295 | + validator = ConditionsValidator(rule=rule_conditions, rule_name=rule_name) |
| 296 | + validator.validate_condition_action(condition=condition, rule_name=rule_name) |
294 | 297 |
|
295 | 298 |
|
296 | 299 | def test_validate_condition_invalid_condition_key():
|
297 | 300 | # GIVEN a configuration with a missing "key"
|
298 |
| - validator = SchemaValidator(EMPTY_SCHEMA) |
299 |
| - condition = {"action": RuleAction.EQUALS.value} |
| 301 | + rule_conditions = { |
| 302 | + "conditions": [{"action": RuleAction.EQUALS.value, "value": "12345"}], |
| 303 | + } |
| 304 | + condition = rule_conditions[CONDITIONS_KEY][0] |
| 305 | + rule_name = "dummy" |
300 | 306 |
|
301 |
| - # WHEN calling _validate_condition |
| 307 | + # WHEN calling validate_condition |
302 | 308 | # THEN raise ConfigurationError
|
303 | 309 | with pytest.raises(ConfigurationError, match="Invalid key value"):
|
304 |
| - validator._validate_condition("foo", condition) |
| 310 | + validator = ConditionsValidator(rule=rule_conditions, rule_name=rule_name) |
| 311 | + validator.validate_condition_key(condition=condition, rule_name=rule_name) |
305 | 312 |
|
306 | 313 |
|
307 | 314 | def test_validate_condition_missing_condition_value():
|
308 | 315 | # GIVEN a configuration with a missing condition value
|
309 |
| - validator = SchemaValidator(EMPTY_SCHEMA) |
310 |
| - condition = {"action": RuleAction.EQUALS.value, "key": "Foo"} |
| 316 | + rule_conditions = { |
| 317 | + "conditions": [ |
| 318 | + { |
| 319 | + "action": RuleAction.EQUALS.value, |
| 320 | + "key": "tenant_id", |
| 321 | + } |
| 322 | + ], |
| 323 | + } |
| 324 | + condition = rule_conditions[CONDITIONS_KEY][0] |
| 325 | + rule_name = "dummy" |
311 | 326 |
|
312 |
| - # WHEN calling _validate_condition |
| 327 | + # WHEN calling validate_condition |
313 | 328 | with pytest.raises(ConfigurationError, match="Missing condition value"):
|
314 |
| - validator._validate_condition("foo", condition) |
| 329 | + validator = ConditionsValidator(rule=rule_conditions, rule_name=rule_name) |
| 330 | + validator.validate_condition_value(condition=condition, rule_name=rule_name) |
315 | 331 |
|
316 | 332 |
|
317 | 333 | def test_validate_rule_invalid_rule_name():
|
|
0 commit comments