File size: 881 Bytes
44c1e10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# tests/test_utils.py
"""Tests for core/utils.py utilities."""
from core.utils import derive_part_name


class TestDerivePartName:
    def test_basic_text(self):
        assert derive_part_name("servo bracket") == "servo_bracket"

    def test_strips_special_chars(self):
        assert derive_part_name("my part! @#$%") == "my_part_"

    def test_truncates_to_max_chars(self):
        result = derive_part_name("a" * 100, max_chars=10)
        assert len(result) <= 10

    def test_empty_string_returns_part(self):
        assert derive_part_name("") == "part"

    def test_special_chars_only_returns_part(self):
        assert derive_part_name("@#$%^&*") == "part"

    def test_lowercases(self):
        assert derive_part_name("My Bracket") == "my_bracket"

    def test_preserves_underscores(self):
        assert derive_part_name("servo_bracket_v2") == "servo_bracket_v2"