diff --git a/end_to_end_tests/golden-record/my_test_api_client/models/validation_error.py b/end_to_end_tests/golden-record/my_test_api_client/models/validation_error.py index a0cd07b51..1ee784278 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/models/validation_error.py +++ b/end_to_end_tests/golden-record/my_test_api_client/models/validation_error.py @@ -11,20 +11,20 @@ class ValidationError: loc: List[str] msg: str - type: str + type_: str def to_dict(self) -> Dict[str, Any]: loc = self.loc msg = self.msg - type = self.type + type_ = self.type_ field_dict: Dict[str, Any] = {} field_dict.update( { "loc": loc, "msg": msg, - "type": type, + "type": type_, } ) @@ -37,12 +37,12 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: msg = d.pop("msg") - type = d.pop("type") + type_ = d.pop("type") validation_error = cls( loc=loc, msg=msg, - type=type, + type_=type_, ) return validation_error diff --git a/openapi_python_client/utils.py b/openapi_python_client/utils.py index d2d21a32b..6cdcb2119 100644 --- a/openapi_python_client/utils.py +++ b/openapi_python_client/utils.py @@ -1,3 +1,4 @@ +import builtins import re from keyword import iskeyword @@ -15,7 +16,7 @@ def fix_keywords(value: str) -> str: return value -RESERVED_WORDS = ("self",) +RESERVED_WORDS = set(dir(builtins)).union({"self"}) def fix_reserved_words(value: str) -> str: diff --git a/tests/test_utils.py b/tests/test_utils.py index 0dd8d7e70..64ed495d8 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -38,8 +38,11 @@ def test__fix_keywords(): assert utils.fix_keywords("None") == "None_" -def test__fix_reserved_words(): - assert utils.fix_reserved_words("self") == "self_" +@pytest.mark.parametrize( + "reserved_word, expected", [("self", "self_"), ("int", "int_"), ("dict", "dict_"), ("not_reserved", "not_reserved")] +) +def test__fix_reserved_words(reserved_word: str, expected: str): + assert utils.fix_reserved_words(reserved_word) == expected def test_to_valid_python_identifier():