def validate_json_keys(name): keys = getattr(self, name) if not (type(keys) in (list, frozenset) and len(keys) > 0 and set(keys).issubset(JSON_KEYS)): raise ConfigValueError( name, f"non-empty array of strings in {list(JSON_KEYS)}")
def validate_number(name): value = getattr(self, name) if not (type(value) == int and 1 <= value <= 100): raise ConfigValueError(name, "an integer between 1 and 100")
def validate_string(name): if type(getattr(self, name)) != str: raise ConfigValueError(name, "a string")
def validate_boolean(name): if type(getattr(self, name)) != bool: raise ConfigValueError(name, "true or false")
def test_config_value_error() -> None: error = ConfigValueError("A", "B") assert str(error) == 'Bad value for configuration key "A" (expecting B)'