13
13
14
14
15
15
class TestStringProperty :
16
+ def test_is_base_type (self , string_property_factory ):
17
+ assert string_property_factory ().is_base_type is True
18
+
16
19
@pytest .mark .parametrize (
17
20
"required, nullable, expected" ,
18
21
(
@@ -29,6 +32,9 @@ def test_get_type_string(self, string_property_factory, required, nullable, expe
29
32
30
33
31
34
class TestDateTimeProperty :
35
+ def test_is_base_type (self , date_time_property_factory ):
36
+ assert date_time_property_factory ().is_base_type is True
37
+
32
38
@pytest .mark .parametrize ("required" , (True , False ))
33
39
@pytest .mark .parametrize ("nullable" , (True , False ))
34
40
def test_get_imports (self , date_time_property_factory , required , nullable ):
@@ -51,6 +57,9 @@ def test_get_imports(self, date_time_property_factory, required, nullable):
51
57
52
58
53
59
class TestDateProperty :
60
+ def test_is_base_type (self , date_property_factory ):
61
+ assert date_property_factory ().is_base_type is True
62
+
54
63
@pytest .mark .parametrize ("required" , (True , False ))
55
64
@pytest .mark .parametrize ("nullable" , (True , False ))
56
65
def test_get_imports (self , date_property_factory , required , nullable ):
@@ -73,6 +82,9 @@ def test_get_imports(self, date_property_factory, required, nullable):
73
82
74
83
75
84
class TestFileProperty :
85
+ def test_is_base_type (self , file_property_factory ):
86
+ assert file_property_factory ().is_base_type is True
87
+
76
88
@pytest .mark .parametrize ("required" , (True , False ))
77
89
@pytest .mark .parametrize ("nullable" , (True , False ))
78
90
def test_get_imports (self , file_property_factory , required , nullable ):
@@ -93,7 +105,30 @@ def test_get_imports(self, file_property_factory, required, nullable):
93
105
assert p .get_imports (prefix = "..." ) == expected
94
106
95
107
108
+ class TestNoneProperty :
109
+ def test_is_base_type (self , none_property_factory ):
110
+ assert none_property_factory ().is_base_type is True
111
+
112
+
113
+ class TestBooleanProperty :
114
+ def test_is_base_type (self , boolean_property_factory ):
115
+ assert boolean_property_factory ().is_base_type is True
116
+
117
+
118
+ class TestAnyProperty :
119
+ def test_is_base_type (self , any_property_factory ):
120
+ assert any_property_factory ().is_base_type is True
121
+
122
+
123
+ class TestIntProperty :
124
+ def test_is_base_type (self , int_property_factory ):
125
+ assert int_property_factory ().is_base_type is True
126
+
127
+
96
128
class TestListProperty :
129
+ def test_is_base_type (self , list_property_factory ):
130
+ assert list_property_factory ().is_base_type is False
131
+
97
132
@pytest .mark .parametrize (
98
133
"required, nullable, expected" ,
99
134
(
@@ -103,11 +138,51 @@ class TestListProperty:
103
138
(False , True , "Union[Unset, None, List[str]]" ),
104
139
),
105
140
)
106
- def test_get_type_string (self , list_property_factory , required , nullable , expected ):
141
+ def test_get_type_string_base_inner (self , list_property_factory , required , nullable , expected ):
107
142
p = list_property_factory (required = required , nullable = nullable )
108
143
109
144
assert p .get_type_string () == expected
110
145
146
+ @pytest .mark .parametrize (
147
+ "required, nullable, expected" ,
148
+ (
149
+ (True , False , "List['MyClass']" ),
150
+ (True , True , "Optional[List['MyClass']]" ),
151
+ (False , False , "Union[Unset, List['MyClass']]" ),
152
+ (False , True , "Union[Unset, None, List['MyClass']]" ),
153
+ ),
154
+ )
155
+ def test_get_type_string_model_inner (
156
+ self , list_property_factory , model_property_factory , required , nullable , expected
157
+ ):
158
+ m = model_property_factory ()
159
+ p = list_property_factory (required = required , nullable = nullable , inner_property = m )
160
+
161
+ assert p .get_type_string () == expected
162
+
163
+ @pytest .mark .parametrize (
164
+ "quoted,expected" ,
165
+ [
166
+ (False , "List[str]" ),
167
+ (True , "List[str]" ),
168
+ ],
169
+ )
170
+ def test_get_base_type_string_base_inner (self , list_property_factory , quoted , expected ):
171
+ p = list_property_factory ()
172
+ assert p .get_base_type_string (quoted = quoted ) == expected
173
+
174
+ @pytest .mark .parametrize (
175
+ "quoted,expected" ,
176
+ [
177
+ (False , "List['MyClass']" ),
178
+ (True , "List['MyClass']" ),
179
+ ],
180
+ )
181
+ def test_get_base_type_string_model_inner (self , list_property_factory , model_property_factory , quoted , expected ):
182
+ m = model_property_factory ()
183
+ p = list_property_factory (inner_property = m )
184
+ assert p .get_base_type_string (quoted = quoted ) == expected
185
+
111
186
@pytest .mark .parametrize ("required" , (True , False ))
112
187
@pytest .mark .parametrize ("nullable" , (True , False ))
113
188
def test_get_type_imports (self , list_property_factory , date_time_property_factory , required , nullable ):
@@ -131,6 +206,9 @@ def test_get_type_imports(self, list_property_factory, date_time_property_factor
131
206
132
207
133
208
class TestUnionProperty :
209
+ def test_is_base_type (self , union_property_factory ):
210
+ assert union_property_factory ().is_base_type is False
211
+
134
212
@pytest .mark .parametrize (
135
213
"nullable,required,no_optional,json,expected" ,
136
214
[
@@ -173,18 +251,34 @@ def test_get_type_string(
173
251
174
252
assert p .get_type_string (no_optional = no_optional , json = json ) == expected
175
253
176
- def test_get_base_type_string (self , union_property_factory , date_time_property_factory , string_property_factory ):
254
+ def test_get_base_type_string_base_inners (
255
+ self , union_property_factory , date_time_property_factory , string_property_factory
256
+ ):
177
257
p = union_property_factory (inner_properties = [date_time_property_factory (), string_property_factory ()])
178
258
179
259
assert p .get_base_type_string () == "Union[datetime.datetime, str]"
180
260
181
- def test_get_base_type_string_one_element (self , union_property_factory , date_time_property_factory ):
261
+ def test_get_base_type_string_one_base_inner (self , union_property_factory , date_time_property_factory ):
182
262
p = union_property_factory (
183
263
inner_properties = [date_time_property_factory ()],
184
264
)
185
265
186
266
assert p .get_base_type_string () == "datetime.datetime"
187
267
268
+ def test_get_base_type_string_one_model_inner (self , union_property_factory , model_property_factory ):
269
+ p = union_property_factory (
270
+ inner_properties = [model_property_factory ()],
271
+ )
272
+
273
+ assert p .get_base_type_string () == "'MyClass'"
274
+
275
+ def test_get_base_type_string_model_inners (
276
+ self , union_property_factory , date_time_property_factory , model_property_factory
277
+ ):
278
+ p = union_property_factory (inner_properties = [date_time_property_factory (), model_property_factory ()])
279
+
280
+ assert p .get_base_type_string () == "Union['MyClass', datetime.datetime]"
281
+
188
282
def test_get_base_json_type_string (self , union_property_factory , date_time_property_factory ):
189
283
p = union_property_factory (
190
284
inner_properties = [date_time_property_factory ()],
@@ -216,6 +310,9 @@ def test_get_type_imports(self, union_property_factory, date_time_property_facto
216
310
217
311
218
312
class TestEnumProperty :
313
+ def test_is_base_type (self , enum_property_factory ):
314
+ assert enum_property_factory ().is_base_type is True
315
+
219
316
@pytest .mark .parametrize (
220
317
"required, nullable, expected" ,
221
318
(
0 commit comments