Skip to content

Commit f18901e

Browse files
committed
test: Add unit tests for new ClassName processing
1 parent c33b5f0 commit f18901e

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

openapi_python_client/utils.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ def __new__(cls, value: str, prefix: str) -> "ClassName":
2727
new_value = fix_reserved_words(pascal_case(sanitize(value)))
2828

2929
if not new_value.isidentifier():
30-
new_value = f"{prefix}{new_value}"
30+
value = f"{prefix}{new_value}"
31+
new_value = fix_reserved_words(pascal_case(sanitize(value)))
3132
return str.__new__(cls, new_value)
3233

3334
def __deepcopy__(self, _: Any) -> "ClassName":

tests/test_utils.py

+17
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,23 @@ def test_empty_is_prefixed(self):
2020
assert utils.PythonIdentifier(value="", prefix="something") == "something"
2121

2222

23+
class TestClassName:
24+
def test_valid_is_not_changed(self):
25+
assert utils.ClassName(value="ValidClass", prefix="field") == "ValidClass"
26+
27+
def test_numbers_are_prefixed(self):
28+
assert utils.ClassName(value="1", prefix="field") == "Field1"
29+
30+
def test_invalid_symbols_are_stripped(self):
31+
assert utils.ClassName(value="$abc", prefix="prefix") == "Abc"
32+
33+
def test_keywords_are_postfixed(self):
34+
assert utils.ClassName(value="none", prefix="prefix") == "None_"
35+
36+
def test_empty_is_prefixed(self):
37+
assert utils.ClassName(value="", prefix="something") == "Something"
38+
39+
2340
@pytest.mark.parametrize(
2441
"before, after",
2542
[

0 commit comments

Comments
 (0)