@@ -252,57 +252,28 @@ def test_get_type_imports(self, mocker):
252
252
253
253
254
254
class TestUnionProperty :
255
- def test_get_type_string (self , mocker ):
256
- from openapi_python_client .parser .properties import UnionProperty
257
-
258
- inner_property_1 = mocker .MagicMock ()
259
- inner_property_1 .get_type_string .return_value = "inner_type_string_1"
260
- inner_property_2 = mocker .MagicMock ()
261
- inner_property_2 .get_type_string .return_value = "inner_type_string_2"
262
- p = UnionProperty (
263
- name = "test" ,
264
- required = True ,
265
- default = None ,
266
- inner_properties = [inner_property_1 , inner_property_2 ],
267
- nullable = False ,
268
- )
269
-
270
- base_type_string = f"Union[inner_type_string_1, inner_type_string_2]"
271
-
272
- assert p .get_type_string () == base_type_string
273
-
274
- p = UnionProperty (
275
- name = "test" ,
276
- required = True ,
277
- default = None ,
278
- inner_properties = [inner_property_1 , inner_property_2 ],
279
- nullable = True ,
280
- )
281
- assert p .get_type_string () == f"Union[None, inner_type_string_1, inner_type_string_2]"
282
- assert p .get_type_string (no_optional = True ) == base_type_string
283
-
284
- base_type_string_with_unset = f"Union[Unset, inner_type_string_1, inner_type_string_2]"
285
- p = UnionProperty (
286
- name = "test" ,
287
- required = False ,
288
- default = None ,
289
- inner_properties = [inner_property_1 , inner_property_2 ],
290
- nullable = True ,
291
- )
292
- assert p .get_type_string () == f"Union[Unset, None, inner_type_string_1, inner_type_string_2]"
293
- assert p .get_type_string (no_optional = True ) == base_type_string
294
-
295
- p = UnionProperty (
296
- name = "test" ,
297
- required = False ,
298
- default = None ,
299
- inner_properties = [inner_property_1 , inner_property_2 ],
300
- nullable = False ,
301
- )
302
- assert p .get_type_string () == base_type_string_with_unset
303
- assert p .get_type_string (no_optional = True ) == base_type_string
304
-
305
- def test_get_type_string_query_parameter (self , mocker ):
255
+ @pytest .mark .parametrize (
256
+ "query_parameter,nullable,required,no_optional,expected" ,
257
+ [
258
+ (False , False , False , False , "Union[Unset, inner_type_string_1, inner_type_string_2]" ),
259
+ (False , False , False , True , "Union[inner_type_string_1, inner_type_string_2]" ),
260
+ (False , False , True , False , "Union[inner_type_string_1, inner_type_string_2]" ),
261
+ (False , False , True , True , "Union[inner_type_string_1, inner_type_string_2]" ),
262
+ (False , True , False , False , "Union[Unset, None, inner_type_string_1, inner_type_string_2]" ),
263
+ (False , True , False , True , "Union[inner_type_string_1, inner_type_string_2]" ),
264
+ (False , True , True , False , "Union[None, inner_type_string_1, inner_type_string_2]" ),
265
+ (False , True , True , True , "Union[inner_type_string_1, inner_type_string_2]" ),
266
+ (True , False , False , False , "Union[Unset, None, inner_type_string_1, inner_type_string_2]" ),
267
+ (True , False , False , True , "Union[inner_type_string_1, inner_type_string_2]" ),
268
+ (True , False , True , False , "Union[inner_type_string_1, inner_type_string_2]" ),
269
+ (True , False , True , True , "Union[inner_type_string_1, inner_type_string_2]" ),
270
+ (True , True , False , False , "Union[Unset, None, inner_type_string_1, inner_type_string_2]" ),
271
+ (True , True , False , True , "Union[inner_type_string_1, inner_type_string_2]" ),
272
+ (True , True , True , False , "Union[None, inner_type_string_1, inner_type_string_2]" ),
273
+ (True , True , True , True , "Union[inner_type_string_1, inner_type_string_2]" ),
274
+ ],
275
+ )
276
+ def test_get_type_string (self , mocker , query_parameter , nullable , required , no_optional , expected ):
306
277
from openapi_python_client .parser .properties import UnionProperty
307
278
308
279
inner_property_1 = mocker .MagicMock ()
@@ -311,48 +282,13 @@ def test_get_type_string_query_parameter(self, mocker):
311
282
inner_property_2 .get_type_string .return_value = "inner_type_string_2"
312
283
p = UnionProperty (
313
284
name = "test" ,
314
- required = True ,
315
- default = None ,
316
- inner_properties = [inner_property_1 , inner_property_2 ],
317
- nullable = False ,
318
- )
319
-
320
- base_type_string = f"Union[inner_type_string_1, inner_type_string_2]"
321
-
322
- assert p .get_type_string (query_parameter = True ) == base_type_string
323
-
324
- p = UnionProperty (
325
- name = "test" ,
326
- required = True ,
327
- default = None ,
328
- inner_properties = [inner_property_1 , inner_property_2 ],
329
- nullable = True ,
330
- )
331
- assert p .get_type_string (query_parameter = True ) == f"Union[None, inner_type_string_1, inner_type_string_2]"
332
- assert p .get_type_string (no_optional = True , query_parameter = True ) == base_type_string
333
-
334
- base_type_string_with_unset = f"Union[Unset, None, inner_type_string_1, inner_type_string_2]"
335
- p = UnionProperty (
336
- name = "test" ,
337
- required = False ,
285
+ required = required ,
338
286
default = None ,
339
287
inner_properties = [inner_property_1 , inner_property_2 ],
340
- nullable = True ,
341
- )
342
- assert (
343
- p .get_type_string (query_parameter = True ) == f"Union[Unset, None, inner_type_string_1, inner_type_string_2]"
288
+ nullable = nullable ,
344
289
)
345
- assert p .get_type_string (no_optional = True , query_parameter = True ) == base_type_string
346
290
347
- p = UnionProperty (
348
- name = "test" ,
349
- required = False ,
350
- default = None ,
351
- inner_properties = [inner_property_1 , inner_property_2 ],
352
- nullable = False ,
353
- )
354
- assert p .get_type_string (query_parameter = True ) == base_type_string_with_unset
355
- assert p .get_type_string (no_optional = True , query_parameter = True ) == base_type_string
291
+ assert p .get_type_string (query_parameter = query_parameter , no_optional = no_optional ) == expected
356
292
357
293
def test_get_imports (self , mocker ):
358
294
from openapi_python_client .parser .properties import UnionProperty
0 commit comments