Skip to content

Commit a5aacb4

Browse files
test: raise common schema prompt coverage to 100%
Signed-off-by: Matthew Grigsby <38010437+MatthewGrigsby@users.noreply.github.com>
1 parent ca7a25b commit a5aacb4

2 files changed

Lines changed: 578 additions & 5 deletions

File tree

cforge/common.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -593,7 +593,7 @@ def _resolve_json_pointer(ref: str) -> Dict[str, Any]:
593593

594594
def _resolve_ref_schema(field_schema: Dict[str, Any], resolving: Tuple[str, ...] = ()) -> Dict[str, Any]:
595595
"""Resolve $ref in schema and merge sibling keys as overrides."""
596-
if not isinstance(field_schema, dict):
596+
if not isinstance(field_schema, dict): # pragma: no cover - defensive guard
597597
return {}
598598

599599
ref_value = field_schema.get("$ref")
@@ -840,14 +840,14 @@ def _prompt_array(
840840
if not typer.confirm("", default=False):
841841
break
842842
entry, include_entry = _prompt_field_value("item", item_schema, is_required=True, field_indent=nested_indent)
843-
if include_entry:
843+
if include_entry: # pragma: no branch - required items are either included or raise
844844
values.append(entry)
845845

846846
if values:
847847
return values, True
848848
if include_field or is_required:
849849
return [], True
850-
return [], False
850+
return [], False # pragma: no cover - optional arrays are skipped earlier when not included
851851

852852
def _prompt_object(field_schema: Dict[str, Any], prefilled: Optional[Dict[str, Any]], object_indent: str) -> Dict[str, Any]:
853853
"""Prompt for object fields recursively."""
@@ -872,7 +872,7 @@ def _prompt_object(field_schema: Dict[str, Any], prefilled: Optional[Dict[str, A
872872
if include_value:
873873
data[field_name] = value
874874
if field_name in required_fields and field_name not in data:
875-
raise CLIError(f"Field '{field_name}' is required")
875+
raise CLIError(f"Field '{field_name}' is required") # pragma: no cover - required field prompts already enforce this
876876

877877
additional_properties = field_schema.get("additionalProperties")
878878
if isinstance(additional_properties, dict) and prompt_optional:
@@ -887,7 +887,7 @@ def _prompt_object(field_schema: Dict[str, Any], prefilled: Optional[Dict[str, A
887887
console.print(f"{formatted_next_indent}Enter key", end="")
888888
key = typer.prompt("", type=str)
889889
value, include_value = _prompt_field_value(key, additional_properties_schema, is_required=True, field_indent=next_indent)
890-
if include_value:
890+
if include_value: # pragma: no branch - required additional fields are either included or raise
891891
data[key] = value
892892
elif additional_properties is True and prompt_optional:
893893
while True:

0 commit comments

Comments
 (0)