Skip to content

Commit d22226f

Browse files
committed
refactor(tests): use public methods
1 parent 3b50664 commit d22226f

File tree

2 files changed

+48
-32
lines changed

2 files changed

+48
-32
lines changed

aws_lambda_powertools/utilities/feature_flags/schema.py

+10-10
Original file line numberDiff line numberDiff line change
@@ -116,30 +116,30 @@ def validate(self):
116116
raise ConfigurationError(f"Invalid condition, rule_name={self.rule_name}")
117117

118118
for condition in self.conditions:
119-
self._validate_condition(rule_name=self.rule_name, condition=condition)
119+
self.validate_condition(rule_name=self.rule_name, condition=condition)
120120

121-
def _validate_condition(self, rule_name: str, condition: Dict[str, str]) -> None:
121+
def validate_condition(self, rule_name: str, condition: Dict[str, str]) -> None:
122122
if not condition or not isinstance(condition, dict):
123-
raise ConfigurationError(f"invalid condition type, not a dictionary, rule_name={rule_name}")
123+
raise ConfigurationError(f"Invalid condition type, not a dictionary, rule_name={rule_name}")
124124

125-
self._validate_condition_action(condition=condition, rule_name=rule_name)
126-
self._validate_condition_key(condition=condition, rule_name=rule_name)
127-
self._validate_condition_value(condition=condition, rule_name=rule_name)
125+
self.validate_condition_action(condition=condition, rule_name=rule_name)
126+
self.validate_condition_key(condition=condition, rule_name=rule_name)
127+
self.validate_condition_value(condition=condition, rule_name=rule_name)
128128

129129
@staticmethod
130-
def _validate_condition_action(condition: Dict[str, Any], rule_name: str):
130+
def validate_condition_action(condition: Dict[str, Any], rule_name: str):
131131
action = condition.get(CONDITION_ACTION, "")
132132
if action not in RuleAction.__members__:
133-
raise ConfigurationError(f"invalid action value, rule_name={rule_name}, action={action}")
133+
raise ConfigurationError(f"Invalid action value, rule_name={rule_name}, action={action}")
134134

135135
@staticmethod
136-
def _validate_condition_key(condition: Dict[str, Any], rule_name: str):
136+
def validate_condition_key(condition: Dict[str, Any], rule_name: str):
137137
key = condition.get(CONDITION_KEY, "")
138138
if not key or not isinstance(key, str):
139139
raise ConfigurationError(f"Invalid key value, key has to be a non empty string, rule_name={rule_name}")
140140

141141
@staticmethod
142-
def _validate_condition_value(condition: Dict[str, Any], rule_name: str):
142+
def validate_condition_value(condition: Dict[str, Any], rule_name: str):
143143
value = condition.get(CONDITION_VALUE, "")
144144
if not value:
145145
raise ConfigurationError(f"Missing condition value, rule_name={rule_name}")

tests/functional/feature_toggles/test_schema_validation.py

+38-22
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
RULE_DEFAULT_VALUE,
1414
RULE_NAME_KEY,
1515
RULES_KEY,
16+
ConditionsValidator,
1617
RuleAction,
1718
RulesValidator,
1819
SchemaValidator,
@@ -269,49 +270,64 @@ def test_valid_condition_all_actions():
269270

270271
def test_validate_condition_invalid_condition_type():
271272
# 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"
278276

277+
# WHEN calling validate_condition
279278
# 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)
281282

282283

283284
def test_validate_condition_invalid_condition_action():
284285
# 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"
291291

292+
# WHEN calling validate_condition
292293
# 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)
294297

295298

296299
def test_validate_condition_invalid_condition_key():
297300
# 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"
300306

301-
# WHEN calling _validate_condition
307+
# WHEN calling validate_condition
302308
# THEN raise ConfigurationError
303309
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)
305312

306313

307314
def test_validate_condition_missing_condition_value():
308315
# 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"
311326

312-
# WHEN calling _validate_condition
327+
# WHEN calling validate_condition
313328
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)
315331

316332

317333
def test_validate_rule_invalid_rule_name():

0 commit comments

Comments
 (0)