def _rules_pass(obj, rules, compare=operator.eq):
for key, expected_value in rules.items():
if isinstance(expected_value, dict):
if key.endswith('NotEqual'):
nested_compare = operator.ne
key = key[:-len('NotEqual')]
else:
nested_compare = compare
nested_rules_passed = _rules_pass(
obj=obj.get(key) or {},
rules=expected_value,
compare=nested_compare,
)
if not nested_rules_passed:
return False
elif not compare(obj.get(key), expected_value):
return False
return True
评论列表
文章目录