Skip to content

Commit a4f57ef

Browse files
author
Adam Gray
authored
Allow unknown string format properties (#65)
1 parent 121cfae commit a4f57ef

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

openapi_python_client/openapi_parser/properties.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -364,16 +364,14 @@ def _string_based_property(
364364
) -> Union[StringProperty, DateProperty, DateTimeProperty, FileProperty]:
365365
""" Construct a Property from the type "string" """
366366
string_format = data.get("format")
367-
if string_format is None:
368-
return StringProperty(name=name, default=data.get("default"), required=required, pattern=data.get("pattern"))
369367
if string_format == "date-time":
370368
return DateTimeProperty(name=name, required=required, default=data.get("default"))
371369
elif string_format == "date":
372370
return DateProperty(name=name, required=required, default=data.get("default"))
373371
elif string_format == "binary":
374372
return FileProperty(name=name, required=required, default=data.get("default"))
375373
else:
376-
raise ParseError(data=data, message=f'Unsupported string format:{data["format"]}')
374+
return StringProperty(name=name, default=data.get("default"), required=required, pattern=data.get("pattern"))
377375

378376

379377
def property_from_dict(name: str, required: bool, data: Dict[str, Any]) -> Property:

tests/test_openapi_parser/test_properties.py

+17-2
Original file line numberDiff line numberDiff line change
@@ -640,8 +640,23 @@ def test__string_based_property_unsupported_format(self, mocker):
640640
"type": "string",
641641
"format": mocker.MagicMock(),
642642
}
643+
StringProperty = mocker.patch(f"{MODULE_NAME}.StringProperty")
643644

644645
from openapi_python_client.openapi_parser.properties import _string_based_property
645646

646-
with pytest.raises(ValueError):
647-
_string_based_property(name=name, required=required, data=data)
647+
p = _string_based_property(name=name, required=required, data=data)
648+
649+
StringProperty.assert_called_once_with(name=name, required=required, pattern=None, default=None)
650+
assert p == StringProperty.return_value
651+
652+
# Test optional values
653+
StringProperty.reset_mock()
654+
data["default"] = mocker.MagicMock()
655+
data["pattern"] = mocker.MagicMock()
656+
657+
_string_based_property(
658+
name=name, required=required, data=data,
659+
)
660+
StringProperty.assert_called_once_with(
661+
name=name, required=required, pattern=data["pattern"], default=data["default"]
662+
)

0 commit comments

Comments
 (0)