File: test_make_class_name.py

package info (click to toggle)
python-briefcase 0.3.22-2
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 7,296 kB
  • sloc: python: 59,405; makefile: 57
file content (41 lines) | stat: -rw-r--r-- 1,714 bytes parent folder | download | duplicates (2)
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
29
30
31
32
33
34
35
36
37
38
39
40
41
import pytest

from briefcase.config import make_class_name


@pytest.mark.parametrize(
    "formal_name, candidate",
    [
        # Some simple cases
        ("Hello World", "HelloWorld"),
        ("Hello World!", "HelloWorld"),
        ("Hello! World", "HelloWorld"),
        ("Hello_World", "Hello_World"),
        ("Hello-World", "HelloWorld"),
        # Startint with a number
        ("24 Jump Street", "_24JumpStreet"),  # Unicode category Nd
        # Starting with an underscore
        ("Hello_World", "Hello_World"),
        ("_Hello_World", "_Hello_World"),
        # Unicode names
        ("你好 世界", "你好世界"),
        ("Hallo Vögel", "HalloVögel"),
        ("Bonjour Garçon", "BonjourGarçon"),
        # Unicode codepoints that can be at the start of an identifier
        ("\u02ec World", "\u02ecWorld"),  # Unicode category Lm
        ("\u3006 World", "\u3006World"),  # Unicode category Lo
        ("\u3021 World", "\u3021World"),  # Unicode category Nl
        # ('\u2118 World', '\u2118World'),  # in Other_ID_Start
        # Unicode codepoints that cannot be at the start of an identifier
        ("\u20e1 World", "_\u20e1World"),  # Unicode Category Mn
        ("\u0903 World", "_\u0903World"),  # Unicode Category Mc
        ("\u2040 World", "_\u2040World"),  # Category Pc
        # ('\u00B7 World', '_\u00B7World'),  # in Other_ID_Continue
        # Characters that are converted by NFKC normalization
        ("\u2135 World", "\u05d0World"),  # Unicode category Lo
    ],
)
def test_make_class_name(formal_name, candidate):
    """A formal name can be converted into a valid class name."""
    class_name = make_class_name(formal_name)
    assert class_name == candidate