Skip to content

Commit fa3249e

Browse files
committed
create function to format monitor name
1 parent 37ed428 commit fa3249e

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import re
2+
3+
4+
def format_monitor_name(monitor_name: str) -> str:
5+
"""Format the monitor name"""
6+
monitor_name = re.sub(r"[\. ]", "_", monitor_name.lower())
7+
monitor_name = re.sub(r"[^\w_]", "", monitor_name)
8+
return re.sub(r"_{2,}", "_", monitor_name).strip("_")
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import pytest
2+
3+
import components.http_server.format_monitor_name as format_monitor_name
4+
5+
6+
@pytest.mark.parametrize(
7+
"input_name, expected_output",
8+
[
9+
("simple_monitor", "simple_monitor"),
10+
("UPPERCASE", "uppercase"),
11+
("MixedCase", "mixedcase"),
12+
("monitor.name", "monitor_name"),
13+
("a.b.c.d", "a_b_c_d"),
14+
("monitor name", "monitor_name"),
15+
("monitor._name", "monitor_name"),
16+
("monitor_._name", "monitor_name"),
17+
("monitor____name", "monitor_name"),
18+
("_monitor_", "monitor"),
19+
("__monitor__", "monitor"),
20+
("___monitor___", "monitor"),
21+
("My.Monitor-Name@123", "my_monitorname123"),
22+
("Service.Monitor_v2.1", "service_monitor_v2_1"),
23+
("test...monitor", "test_monitor"),
24+
("Monitor--.--Name", "monitor_name"),
25+
("API_Gateway.Health-Check@v1", "api_gateway_healthcheckv1"),
26+
("", ""),
27+
(".", ""),
28+
("..", ""),
29+
("...", ""),
30+
("___", ""),
31+
("123", "123"),
32+
("monitor123", "monitor123"),
33+
("123monitor", "123monitor"),
34+
]
35+
)
36+
def test_format_monitor_name(input_name, expected_output):
37+
"""'format_monitor_name' should format the monitor name correctly"""
38+
assert format_monitor_name.format_monitor_name(input_name) == expected_output

0 commit comments

Comments
 (0)