Resolver
Resolver
¶
get_override(self, name, default=None)
¶
Source code in testcase_maker/resolver.py
def get_override(self, name: str, default: Optional[Value] = None) -> "Value":
return self._override_name_values.get(name, default)
get_value(self, name)
¶
Source code in testcase_maker/resolver.py
def get_value(self, name: str) -> Optional[Any]:
if name not in self._resolved_values:
raise ValueError(f"No such resolved variable '{name}'.")
return self._resolved_values[name]
resolve(self, value, check_type=None)
¶
Source code in testcase_maker/resolver.py
def resolve(self, value: Union[Value, Any], check_type: type = None) -> Any:
if isinstance(value, NamedValue):
target_value = self.get_override(value.name, value.value)
resolved_value = self.resolve(target_value, check_type)
self._resolved_values[value.name] = resolved_value
return resolved_value
if isinstance(value, Value):
value = value.generate(self)
if check_type and not isinstance(value, check_type):
raise TypeError(f"Expected type '{check_type}', but got type '{type(value)}' instead.")
return value