File: test_text.py

package info (click to toggle)
python-xsdata 24.1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 2,936 kB
  • sloc: python: 29,257; xml: 404; makefile: 27; sh: 6
file content (167 lines) | stat: -rw-r--r-- 7,998 bytes parent folder | download
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
import string
from unittest import TestCase

from xsdata.utils.text import (
    StringType,
    alnum,
    camel_case,
    capitalize,
    classify,
    kebab_case,
    mixed_case,
    mixed_pascal_case,
    mixed_snake_case,
    original_case,
    pascal_case,
    screaming_snake_case,
    snake_case,
    split_words,
    variable,
)


class TextTests(TestCase):
    def test_original_case(self):
        self.assertEqual("p00p", original_case("p00p", foobar=True))
        self.assertEqual("p00p", original_case("p00p"))
        self.assertEqual("USERName", original_case("USERName"))
        self.assertEqual("UserNAME", original_case("UserNAME"))
        self.assertEqual("USER_name", original_case("USER_name"))
        self.assertEqual("USER-NAME", original_case("USER-NAME"))
        self.assertEqual("User_Name", original_case("User_Name"))
        self.assertEqual("user_name", original_case("user_name"))
        self.assertEqual("SUserNAME", original_case("SUserNAME"))

    def test_snake_case(self):
        self.assertEqual("p00p", snake_case("p00p", foobar=True))
        self.assertEqual("p00p", snake_case("p00p"))
        self.assertEqual("username", snake_case("USERName"))
        self.assertEqual("user_name", snake_case("UserNAME"))
        self.assertEqual("user_name", snake_case("USER_name"))
        self.assertEqual("user_name", snake_case("USER-NAME"))
        self.assertEqual("user_name", snake_case("User_Name"))
        self.assertEqual("user_name", snake_case("user_name"))
        self.assertEqual("suser_name", snake_case("SUserNAME"))

    def test_screaming_snake_case(self):
        self.assertEqual("P00P", screaming_snake_case("p00p", foobar=True))
        self.assertEqual("P00P", screaming_snake_case("p00p"))
        self.assertEqual("USERNAME", screaming_snake_case("USERName"))
        self.assertEqual("USER_NAME", screaming_snake_case("UserNAME"))
        self.assertEqual("USER_NAME", screaming_snake_case("USER_name"))
        self.assertEqual("USER_NAME", screaming_snake_case("USER-NAME"))
        self.assertEqual("USER_NAME", screaming_snake_case("User_Name"))
        self.assertEqual("USER_NAME", screaming_snake_case("user_name"))
        self.assertEqual("SUSER_NAME", screaming_snake_case("SUserNAME"))

    def test_pascal_case(self):
        self.assertEqual("P00P", pascal_case("p00p", foobar=True))
        self.assertEqual("P00P", pascal_case("p00p"))
        self.assertEqual("Username", pascal_case("USERName"))
        self.assertEqual("UserName", pascal_case("UserNAME"))
        self.assertEqual("UserName", pascal_case("USER_name"))
        self.assertEqual("UserName", pascal_case("USER-NAME"))
        self.assertEqual("UserName", pascal_case("User_Name"))
        self.assertEqual("UserName", pascal_case("user_name"))
        self.assertEqual("SuserName", pascal_case("SUserNAME"))

    def test_camel_case(self):
        self.assertEqual("p00P", camel_case("p00p", foobar=True))
        self.assertEqual("p00P", camel_case("p00p"))
        self.assertEqual("username", camel_case("USERName"))
        self.assertEqual("userName", camel_case("UserNAME"))
        self.assertEqual("userName", camel_case("USER_name"))
        self.assertEqual("userName", camel_case("USER-NAME"))
        self.assertEqual("userName", camel_case("User_Name"))
        self.assertEqual("userName", camel_case("user_name"))
        self.assertEqual("suserName", camel_case("SUserNAME"))

    def test_mixed_case(self):
        self.assertEqual("p00p", mixed_case("p00p", foobar=True))
        self.assertEqual("p00p", mixed_case("p00p"))
        self.assertEqual("USERName", mixed_case("USERName"))
        self.assertEqual("UserNAME", mixed_case("UserNAME"))
        self.assertEqual("USERname", mixed_case("USER_name"))
        self.assertEqual("USERNAME", mixed_case("USER-NAME"))
        self.assertEqual("UserName", mixed_case("User_Name"))
        self.assertEqual("username", mixed_case("user_name"))
        self.assertEqual("SUserNAME", mixed_case("SUserNAME"))

    def test_mixed_pascal_case(self):
        self.assertEqual("P00p", mixed_pascal_case("p00p", foobar=True))
        self.assertEqual("P00p", mixed_pascal_case("p00p"))
        self.assertEqual("USERName", mixed_pascal_case("USERName"))
        self.assertEqual("UserNAME", mixed_pascal_case("UserNAME"))
        self.assertEqual("USERname", mixed_pascal_case("USER_name"))
        self.assertEqual("USERNAME", mixed_pascal_case("USER-NAME"))
        self.assertEqual("UserName", mixed_pascal_case("User_Name"))
        self.assertEqual("Username", mixed_pascal_case("user_name"))
        self.assertEqual("SUserNAME", mixed_pascal_case("SUserNAME"))

    def test_mixed_snake_case(self):
        self.assertEqual("p00p", mixed_snake_case("p00p", foobar=True))
        self.assertEqual("p00p", mixed_snake_case("p00p"))
        self.assertEqual("USERName", mixed_snake_case("USERName"))
        self.assertEqual("User_NAME", mixed_snake_case("UserNAME"))
        self.assertEqual("USER_name", mixed_snake_case("USER_name"))
        self.assertEqual("USER_NAME", mixed_snake_case("USER-NAME"))
        self.assertEqual("User_Name", mixed_snake_case("User_Name"))
        self.assertEqual("user_name", mixed_snake_case("user_name"))
        self.assertEqual("SUser_NAME", mixed_snake_case("SUserNAME"))

    def test_kebab_case(self):
        self.assertEqual("p00p", kebab_case("p00p", foobar=True))
        self.assertEqual("p00p", kebab_case("p00p"))
        self.assertEqual("USERName", kebab_case("USERName"))
        self.assertEqual("User-NAME", kebab_case("UserNAME"))
        self.assertEqual("USER-name", kebab_case("USER_name"))
        self.assertEqual("USER-NAME", kebab_case("USER-NAME"))
        self.assertEqual("User-Name", kebab_case("User_Name"))
        self.assertEqual("user-name", kebab_case("user_name"))
        self.assertEqual("SUser-NAME", kebab_case("SUserNAME"))

    def test_capitalize(self):
        self.assertEqual("UserName", capitalize("userName"))
        self.assertEqual(".userName", capitalize(".userName"))

    def test_split_words(self):
        self.assertEqual(["user", "Name"], split_words("userName"))
        self.assertEqual(["User", "Name"], split_words("User.Name"))
        self.assertEqual(["User", "Name"], split_words("UserName"))
        self.assertEqual(["USER", "NAME"], split_words("USER_NAME"))
        self.assertEqual(["user", "name"], split_words("user_name"))
        self.assertEqual(["user", "name"], split_words("user__name"))
        self.assertEqual(["common", "v48", "0"], split_words("common_v48_0"))
        self.assertEqual(["user"], split_words("user"))
        self.assertEqual(["user"], split_words("_user"))
        self.assertEqual(["user"], split_words("__user"))
        self.assertEqual(["TMessage", "DB"], split_words("TMessageDB"))
        self.assertEqual(["GLOBAL", "REF"], split_words("GLOBAL-REF"))
        self.assertEqual(["book"], split_words("βιβλιο-book"))

    def test_alnum(self):
        self.assertEqual("foo1", alnum("foo 1"))
        self.assertEqual("foo1", alnum(" foo_1 "))
        self.assertEqual("foo1", alnum("\tfoo*1"))
        self.assertEqual("foo1", alnum(" foo*1"))
        self.assertEqual("1", alnum(" βιβλίο*1"))

    def test_variable(self):
        self.assertEqual("foO1", variable("foO1"))
        self.assertEqual("foo_1", variable("foo_1"))
        self.assertEqual("foo1", variable("foo-1"))
        self.assertEqual("foo1", variable("@foo1"))
        self.assertEqual("foo1", variable("1foo1"))

    def test_classify(self):
        for ltr in string.ascii_uppercase:
            self.assertEqual(StringType.UPPER, classify(ltr))

        for ltr in string.ascii_lowercase:
            self.assertEqual(StringType.LOWER, classify(ltr))

        for ltr in string.digits:
            self.assertEqual(StringType.NUMERIC, classify(ltr))

        for ltr in "~!@#$%^&*()_+β":
            self.assertEqual(StringType.OTHER, classify(ltr))