Skip to content

Commit b500acb

Browse files
committed
refactor(tests): use public static methods
1 parent 6ed29ea commit b500acb

File tree

2 files changed

+17
-43
lines changed

2 files changed

+17
-43
lines changed

aws_lambda_powertools/utilities/feature_flags/schema.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,13 +115,14 @@ def validate(self):
115115
for condition in self.conditions:
116116
self.validate_condition(rule_name=self.rule_name, condition=condition)
117117

118-
def validate_condition(self, rule_name: str, condition: Dict[str, str]) -> None:
118+
@staticmethod
119+
def validate_condition(rule_name: str, condition: Dict[str, str]) -> None:
119120
if not condition or not isinstance(condition, dict):
120121
raise ConfigurationError(f"Invalid condition type, not a dictionary, rule_name={rule_name}")
121122

122-
self.validate_condition_action(condition=condition, rule_name=rule_name)
123-
self.validate_condition_key(condition=condition, rule_name=rule_name)
124-
self.validate_condition_value(condition=condition, rule_name=rule_name)
123+
ConditionsValidator.validate_condition_action(condition=condition, rule_name=rule_name)
124+
ConditionsValidator.validate_condition_key(condition=condition, rule_name=rule_name)
125+
ConditionsValidator.validate_condition_value(condition=condition, rule_name=rule_name)
125126

126127
@staticmethod
127128
def validate_condition_action(condition: Dict[str, Any], rule_name: str):

tests/functional/feature_toggles/test_schema_validation.py

Lines changed: 12 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -283,78 +283,51 @@ def test_valid_condition_all_actions():
283283

284284
def test_validate_condition_invalid_condition_type():
285285
# GIVEN an invalid condition type of empty dict
286-
rule_conditions = {"conditions": {}}
287-
condition = rule_conditions[CONDITIONS_KEY]
288-
rule_name = "dummy"
286+
condition = {}
289287

290288
# WHEN calling validate_condition
291289
# THEN raise ConfigurationError
292290
with pytest.raises(ConfigurationError, match="Invalid condition type"):
293-
validator = ConditionsValidator(rule=rule_conditions, rule_name=rule_name)
294-
validator.validate_condition(condition=condition, rule_name=rule_name)
291+
ConditionsValidator.validate_condition(condition=condition, rule_name="dummy")
295292

296293

297294
def test_validate_condition_invalid_condition_action():
298295
# GIVEN an invalid condition action of foo
299-
rule_conditions = {
300-
"conditions": [{"action": "INVALID", "key": "tenant_id", "value": "12345"}],
301-
}
302-
condition = rule_conditions[CONDITIONS_KEY][0]
303-
rule_name = "dummy"
296+
condition = {"action": "INVALID", "key": "tenant_id", "value": "12345"}
304297

305298
# WHEN calling validate_condition
306299
# THEN raise ConfigurationError
307300
with pytest.raises(ConfigurationError, match="Invalid action value"):
308-
validator = ConditionsValidator(rule=rule_conditions, rule_name=rule_name)
309-
validator.validate_condition_action(condition=condition, rule_name=rule_name)
301+
ConditionsValidator.validate_condition_action(condition=condition, rule_name="dummy")
310302

311303

312304
def test_validate_condition_invalid_condition_key():
313305
# GIVEN a configuration with a missing "key"
314-
rule_conditions = {
315-
"conditions": [{"action": RuleAction.EQUALS.value, "value": "12345"}],
316-
}
317-
condition = rule_conditions[CONDITIONS_KEY][0]
318-
rule_name = "dummy"
306+
condition = {"action": RuleAction.EQUALS.value, "value": "12345"}
319307

320308
# WHEN calling validate_condition
321309
# THEN raise ConfigurationError
322310
with pytest.raises(ConfigurationError, match="Invalid key value"):
323-
validator = ConditionsValidator(rule=rule_conditions, rule_name=rule_name)
324-
validator.validate_condition_key(condition=condition, rule_name=rule_name)
311+
ConditionsValidator.validate_condition_key(condition=condition, rule_name="dummy")
325312

326313

327314
def test_validate_condition_missing_condition_value():
328315
# GIVEN a configuration with a missing condition value
329-
rule_conditions = {
330-
"conditions": [
331-
{
332-
"action": RuleAction.EQUALS.value,
333-
"key": "tenant_id",
334-
}
335-
],
316+
condition = {
317+
"action": RuleAction.EQUALS.value,
318+
"key": "tenant_id",
336319
}
337-
condition = rule_conditions[CONDITIONS_KEY][0]
338-
rule_name = "dummy"
339320

340321
# WHEN calling validate_condition
341322
with pytest.raises(ConfigurationError, match="Missing condition value"):
342-
validator = ConditionsValidator(rule=rule_conditions, rule_name=rule_name)
343-
validator.validate_condition_value(condition=condition, rule_name=rule_name)
323+
ConditionsValidator.validate_condition_value(condition=condition, rule_name="dummy")
344324

345325

346326
def test_validate_rule_invalid_rule_name():
347327
# GIVEN a rule_name not in the rule dict
348-
feature = {
349-
"feature_default_value": True,
350-
"rules": [
351-
{"invalid_rule_name": "tenant id equals 345345435"},
352-
],
353-
}
354-
rule = feature[RULES_KEY][0]
328+
rule = {"invalid_rule_name": "tenant id equals 345345435"}
355329

356330
# WHEN calling _validate_rule
357331
# THEN raise ConfigurationError
358332
with pytest.raises(ConfigurationError, match="'rule_name' key must be present*"):
359-
rules_validator = RulesValidator(feature=feature, feature_name="my_feature")
360-
rules_validator.validate_rule_name(rule=rule, feature_name="my_feature")
333+
RulesValidator.validate_rule_name(rule=rule, feature_name="dummy")

0 commit comments

Comments
 (0)