Skip to content
This repository was archived by the owner on Jun 9, 2025. It is now read-only.

Commit e51a542

Browse files
committed
Add test
1 parent 12850f8 commit e51a542

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

tests/test_casing.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
def test_snake_case() -> None:
2+
from betterproto2_compiler.casing import snake_case
3+
4+
# Simple renaming
5+
assert snake_case("methodName") == "method_name"
6+
assert snake_case("MethodName") == "method_name"
7+
8+
# Don't break acronyms
9+
assert snake_case("HTTPRequest") == "http_request"
10+
assert snake_case("RequestHTTP") == "request_http"
11+
assert snake_case("HTTPRequest2") == "http_request_2"
12+
assert snake_case("RequestHTTP2") == "request_http_2"
13+
assert snake_case("GetAResponse") == "get_a_response"
14+
15+
# Split digits
16+
assert snake_case("Get2025Results") == "get_2025_results"
17+
assert snake_case("Get10yResults") == "get_10y_results"
18+
19+
# If the name already contains an underscore or is lowercase, don't change it at all.
20+
# There is a risk of breaking names otherwise.
21+
assert snake_case("aaa_123_bbb") == "aaa_123_bbb"
22+
assert snake_case("aaa_123bbb") == "aaa_123bbb"
23+
assert snake_case("aaa123_bbb") == "aaa123_bbb"
24+
assert snake_case("get_HTTP_response") == "get_HTTP_response"
25+
assert snake_case("_methodName") == "_methodName"
26+
assert snake_case("make_gRPC_request") == "make_gRPC_request"
27+
28+
assert snake_case("value1") == "value1"
29+
assert snake_case("value1string") == "value1string"
30+
31+
# It is difficult to cover all the cases with a simple algorithm...
32+
# "GetValueAsUInt32" -> "get_value_as_u_int_32"

0 commit comments

Comments
 (0)