Skip to content

Commit d27d810

Browse files
committed
✨ add test for valid identifier fct. move to utils
1 parent b7bde51 commit d27d810

File tree

3 files changed

+28
-10
lines changed

3 files changed

+28
-10
lines changed

src/vuegen/streamlit_reportview.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,6 @@
1212
from .utils import create_folder, generate_footer, is_url
1313

1414

15-
def make_valid_identifier(name: str) -> str:
16-
"""Create a valid Python identifier from a given name.
17-
18-
Used in streamlit report sections to build structure (pages).
19-
"""
20-
ret = re.sub(r"[^a-zA-Z0-9]", "_", name)
21-
if not ret[0].isalpha():
22-
ret = "_" + ret
23-
return ret
24-
2515

2616
class StreamlitReportView(r.WebAppReportView):
2717
"""

src/vuegen/utils/variables.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import re
2+
3+
4+
def make_valid_identifier(name: str) -> str:
5+
"""Create a valid Python identifier from a given name.
6+
7+
Used in streamlit report sections to build structure (pages).
8+
"""
9+
ret = re.sub(r"[^a-zA-Z0-9]", "_", name)
10+
if not ret[0].isalpha():
11+
ret = "_" + ret
12+
return ret

tests/utils/test_variables.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import pytest
2+
3+
from vuegen.utils.variables import make_valid_identifier
4+
5+
test_cases = [
6+
("a.non valid name", "a_non_valid_name"),
7+
("1.non valid name", "_1_non_valid_name"),
8+
("a_valid_name", "a_valid_name"),
9+
("test", "test"),
10+
]
11+
12+
13+
@pytest.mark.parametrize("var_name,expected", test_cases)
14+
def test_make_valid_identifier(var_name, expected):
15+
"""Test the make_valid_identifier function."""
16+
assert make_valid_identifier(var_name) == expected

0 commit comments

Comments
 (0)