Skip to content

Commit 1ceeb02

Browse files
authored
Merge pull request #89 from MarketSquare/83_prevent_trailing_underscores_in_keyword_method_names
Prevent training underscores in keyword method names
2 parents 1ae8484 + d18085c commit 1ceeb02

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

src/openapi_libgen/parsing_utils.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
from typing import Generator
22

33

4-
def remove_unsafe_characters_from_string(string: str) -> str:
4+
def remove_unsafe_characters_from_string(unsafe_string: str) -> str:
55
def _remove_unsafe_characters_from_string(
6-
string: str,
6+
string_: str,
77
) -> Generator[str, None, None]:
8-
string_iterator = iter(string)
8+
string_iterator = iter(string_)
99
capitalize_next_character = False
1010

1111
# The first character must be A-z or _
@@ -27,4 +27,7 @@ def _remove_unsafe_characters_from_string(
2727
capitalize_next_character = True
2828
yield "_"
2929

30-
return "".join(_remove_unsafe_characters_from_string(string=string))
30+
unsafe_string = unsafe_string.strip()
31+
safe_string = "".join(_remove_unsafe_characters_from_string(string_=unsafe_string))
32+
without_trailing_underscore = safe_string.rstrip("_")
33+
return without_trailing_underscore or "_"

tests/libgen/unittests/test_parsing_utils.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,16 @@ def test_capitalize_next_alpha_after_removed_char(self) -> None:
3838
result = remove_unsafe_characters_from_string(path)
3939
self.assertEqual(result, "my_Path_Part_2a")
4040

41+
def test_whitespace_is_stripped(self) -> None:
42+
description = "\tAdd a new user\n\r"
43+
result = remove_unsafe_characters_from_string(description)
44+
self.assertEqual(result, "Add_A_New_User")
45+
46+
def test_trailing_underscore_is_stripped(self) -> None:
47+
description = "Add a new user."
48+
result = remove_unsafe_characters_from_string(description)
49+
self.assertEqual(result, "Add_A_New_User")
50+
4151

4252
if __name__ == "__main__":
4353
unittest.main()

0 commit comments

Comments
 (0)