improve error messages, fix invalid value for TELEMETRY_ENABLED

This commit is contained in:
Benedikt Bartscher 2024-10-21 22:56:17 +02:00
parent 4ddc014d28
commit 27edea4320
No known key found for this signature in database
2 changed files with 16 additions and 10 deletions

View File

@ -157,11 +157,12 @@ def get_default_value_for_field(field: dataclasses.Field) -> Any:
) )
def interpret_boolean_env(value: str) -> bool: def interpret_boolean_env(value: str, field_name: str) -> bool:
"""Interpret a boolean environment variable value. """Interpret a boolean environment variable value.
Args: Args:
value: The environment variable value. value: The environment variable value.
field_name: The field name.
Returns: Returns:
The interpreted value. The interpreted value.
@ -176,14 +177,15 @@ def interpret_boolean_env(value: str) -> bool:
return True return True
elif value.lower() in false_values: elif value.lower() in false_values:
return False return False
raise EnvironmentVarValueError(f"Invalid boolean value: {value}") raise EnvironmentVarValueError(f"Invalid boolean value: {value} for {field_name}")
def interpret_int_env(value: str) -> int: def interpret_int_env(value: str, field_name: str) -> int:
"""Interpret an integer environment variable value. """Interpret an integer environment variable value.
Args: Args:
value: The environment variable value. value: The environment variable value.
field_name: The field name.
Returns: Returns:
The interpreted value. The interpreted value.
@ -194,14 +196,17 @@ def interpret_int_env(value: str) -> int:
try: try:
return int(value) return int(value)
except ValueError as ve: except ValueError as ve:
raise EnvironmentVarValueError(f"Invalid integer value: {value}") from ve raise EnvironmentVarValueError(
f"Invalid integer value: {value} for {field_name}"
) from ve
def interpret_path_env(value: str) -> Path: def interpret_path_env(value: str, field_name: str) -> Path:
"""Interpret a path environment variable value. """Interpret a path environment variable value.
Args: Args:
value: The environment variable value. value: The environment variable value.
field_name: The field name.
Returns: Returns:
The interpreted value. The interpreted value.
@ -211,7 +216,7 @@ def interpret_path_env(value: str) -> Path:
""" """
path = Path(value) path = Path(value)
if not path.exists(): if not path.exists():
raise EnvironmentVarValueError(f"Path does not exist: {path}") raise EnvironmentVarValueError(f"Path does not exist: {path} for {field_name}")
return path return path
@ -239,13 +244,13 @@ def interpret_env_var_value(
) )
if field_type is bool: if field_type is bool:
return interpret_boolean_env(value) return interpret_boolean_env(value, field_name)
elif field_type is str: elif field_type is str:
return value return value
elif field_type is int: elif field_type is int:
return interpret_int_env(value) return interpret_int_env(value, field_name)
elif field_type is Path: elif field_type is Path:
return interpret_path_env(value) return interpret_path_env(value, field_name)
else: else:
raise ValueError( raise ValueError(

View File

@ -249,7 +249,8 @@ class AppHarness:
return textwrap.dedent(source) return textwrap.dedent(source)
def _initialize_app(self): def _initialize_app(self):
os.environ["TELEMETRY_ENABLED"] = "" # disable telemetry reporting for tests # disable telemetry reporting for tests
os.environ["TELEMETRY_ENABLED"] = "true"
self.app_path.mkdir(parents=True, exist_ok=True) self.app_path.mkdir(parents=True, exist_ok=True)
if self.app_source is not None: if self.app_source is not None:
app_globals = self._get_globals_from_signature(self.app_source) app_globals = self._get_globals_from_signature(self.app_source)