7
7
from openapi_python_client import Config , GeneratorError
8
8
from openapi_python_client .parser .errors import ParseError
9
9
from openapi_python_client .parser .openapi import Endpoint , EndpointCollection
10
- from openapi_python_client .parser .properties import IntProperty , Parameters , Schemas
10
+ from openapi_python_client .parser .properties import IntProperty , Parameters , Schemas , RequestBodies
11
11
12
12
MODULE_NAME = "openapi_python_client.parser.openapi"
13
13
@@ -18,6 +18,7 @@ def test_from_dict(self, mocker, model_property_factory, enum_property_factory):
18
18
19
19
build_schemas = mocker .patch (f"{ MODULE_NAME } .build_schemas" )
20
20
build_parameters = mocker .patch (f"{ MODULE_NAME } .build_parameters" )
21
+ build_request_bodies = mocker .patch (f"{ MODULE_NAME } .build_request_bodies" )
21
22
EndpointCollection = mocker .patch (f"{ MODULE_NAME } .EndpointCollection" )
22
23
schemas = mocker .MagicMock ()
23
24
schemas .classes_by_name = {
@@ -48,6 +49,7 @@ def test_from_dict(self, mocker, model_property_factory, enum_property_factory):
48
49
data = openapi .paths ,
49
50
schemas = build_schemas .return_value ,
50
51
parameters = build_parameters .return_value ,
52
+ request_bodies = build_request_bodies .return_value ,
51
53
config = config ,
52
54
)
53
55
assert generator_data .title == openapi .info .title
@@ -279,8 +281,13 @@ def test_add_body_no_data(self, mocker):
279
281
parse_request_form_body = mocker .patch .object (Endpoint , "parse_request_form_body" )
280
282
endpoint = self .make_endpoint ()
281
283
schemas = Schemas ()
282
-
283
- Endpoint ._add_body (endpoint = endpoint , data = oai .Operation .construct (), schemas = schemas , config = MagicMock ())
284
+ Endpoint ._add_body (
285
+ endpoint = endpoint ,
286
+ data = oai .Operation .construct (),
287
+ schemas = schemas ,
288
+ request_bodies = RequestBodies (),
289
+ config = MagicMock (),
290
+ )
284
291
285
292
parse_request_form_body .assert_not_called ()
286
293
@@ -299,6 +306,7 @@ def test_add_body_bad_json_data(self, mocker):
299
306
endpoint = endpoint ,
300
307
data = oai .Operation .construct (requestBody = request_body ),
301
308
schemas = schemas ,
309
+ request_bodies = (RequestBodies ()),
302
310
config = MagicMock (),
303
311
)
304
312
@@ -328,6 +336,7 @@ def test_add_body_bad_form_data(self, enum_property_factory):
328
336
)
329
337
),
330
338
schemas = schemas ,
339
+ request_bodies = RequestBodies (),
331
340
config = Config (),
332
341
)
333
342
@@ -356,6 +365,7 @@ def test_add_body_bad_multipart_data(self, mocker):
356
365
endpoint = endpoint ,
357
366
data = oai .Operation .construct (requestBody = request_body ),
358
367
schemas = schemas ,
368
+ request_bodies = RequestBodies (),
359
369
config = MagicMock (),
360
370
)
361
371
@@ -406,6 +416,7 @@ def test_add_body_happy(self, mocker):
406
416
endpoint = endpoint ,
407
417
data = oai .Operation .construct (requestBody = request_body ),
408
418
schemas = initial_schemas ,
419
+ request_bodies = RequestBodies (),
409
420
config = config ,
410
421
)
411
422
@@ -984,6 +995,7 @@ def test_from_data_bad_params(self, mocker):
984
995
tag = "default" ,
985
996
schemas = initial_schemas ,
986
997
parameters = parameters ,
998
+ request_bodies = RequestBodies (),
987
999
config = config ,
988
1000
)
989
1001
@@ -1019,6 +1031,7 @@ def test_from_data_bad_responses(self, mocker):
1019
1031
tag = "default" ,
1020
1032
schemas = initial_schemas ,
1021
1033
parameters = initial_parameters ,
1034
+ request_bodies = RequestBodies (),
1022
1035
config = config ,
1023
1036
)
1024
1037
@@ -1051,6 +1064,7 @@ def test_from_data_standard(self, mocker):
1051
1064
)
1052
1065
initial_schemas = mocker .MagicMock ()
1053
1066
initial_parameters = mocker .MagicMock ()
1067
+ request_bodies = RequestBodies ()
1054
1068
config = MagicMock ()
1055
1069
1056
1070
mocker .patch ("openapi_python_client.utils.remove_string_escapes" , return_value = data .description )
@@ -1062,6 +1076,7 @@ def test_from_data_standard(self, mocker):
1062
1076
tag = "default" ,
1063
1077
schemas = initial_schemas ,
1064
1078
parameters = initial_parameters ,
1079
+ request_bodies = request_bodies ,
1065
1080
config = config ,
1066
1081
)
1067
1082
@@ -1086,7 +1101,11 @@ def test_from_data_standard(self, mocker):
1086
1101
endpoint = param_endpoint , data = data .responses , schemas = param_schemas , config = config
1087
1102
)
1088
1103
_add_body .assert_called_once_with (
1089
- endpoint = response_endpoint , data = data , schemas = response_schemas , config = config
1104
+ endpoint = response_endpoint ,
1105
+ data = data ,
1106
+ schemas = response_schemas ,
1107
+ request_bodies = request_bodies ,
1108
+ config = config ,
1090
1109
)
1091
1110
1092
1111
def test_from_data_no_operation_id (self , mocker ):
@@ -1111,9 +1130,17 @@ def test_from_data_no_operation_id(self, mocker):
1111
1130
mocker .patch ("openapi_python_client.utils.remove_string_escapes" , return_value = data .description )
1112
1131
config = MagicMock ()
1113
1132
parameters = mocker .MagicMock ()
1133
+ request_bodies = mocker .MagicMock ()
1114
1134
1115
1135
endpoint , return_schemas , return_params = Endpoint .from_data (
1116
- data = data , path = path , method = method , tag = "default" , schemas = schemas , parameters = parameters , config = config
1136
+ data = data ,
1137
+ path = path ,
1138
+ method = method ,
1139
+ tag = "default" ,
1140
+ schemas = schemas ,
1141
+ parameters = parameters ,
1142
+ request_bodies = request_bodies ,
1143
+ config = config ,
1117
1144
)
1118
1145
1119
1146
assert (endpoint , return_schemas ) == _add_body .return_value
@@ -1140,7 +1167,11 @@ def test_from_data_no_operation_id(self, mocker):
1140
1167
config = config ,
1141
1168
)
1142
1169
_add_body .assert_called_once_with (
1143
- endpoint = _add_responses .return_value [0 ], data = data , schemas = _add_responses .return_value [1 ], config = config
1170
+ endpoint = _add_responses .return_value [0 ],
1171
+ data = data ,
1172
+ schemas = _add_responses .return_value [1 ],
1173
+ request_bodies = request_bodies ,
1174
+ config = config ,
1144
1175
)
1145
1176
1146
1177
def test_from_data_no_security (self , mocker ):
@@ -1164,10 +1195,18 @@ def test_from_data_no_security(self, mocker):
1164
1195
mocker .patch ("openapi_python_client.utils.remove_string_escapes" , return_value = data .description )
1165
1196
schemas = mocker .MagicMock ()
1166
1197
parameters = mocker .MagicMock ()
1198
+ request_bodies = mocker .MagicMock ()
1167
1199
config = MagicMock ()
1168
1200
1169
1201
Endpoint .from_data (
1170
- data = data , path = path , method = method , tag = "a" , schemas = schemas , parameters = parameters , config = config
1202
+ data = data ,
1203
+ path = path ,
1204
+ method = method ,
1205
+ tag = "a" ,
1206
+ schemas = schemas ,
1207
+ parameters = parameters ,
1208
+ request_bodies = request_bodies ,
1209
+ config = config ,
1171
1210
)
1172
1211
1173
1212
add_parameters .assert_called_once_with (
@@ -1192,7 +1231,11 @@ def test_from_data_no_security(self, mocker):
1192
1231
config = config ,
1193
1232
)
1194
1233
_add_body .assert_called_once_with (
1195
- endpoint = _add_responses .return_value [0 ], data = data , schemas = _add_responses .return_value [1 ], config = config
1234
+ endpoint = _add_responses .return_value [0 ],
1235
+ data = data ,
1236
+ schemas = _add_responses .return_value [1 ],
1237
+ request_bodies = request_bodies ,
1238
+ config = config ,
1196
1239
)
1197
1240
1198
1241
@pytest .mark .parametrize (
@@ -1261,9 +1304,12 @@ def test_from_data(self, mocker):
1261
1304
)
1262
1305
schemas = mocker .MagicMock ()
1263
1306
parameters = mocker .MagicMock ()
1307
+ request_bodies = mocker .MagicMock ()
1264
1308
config = MagicMock ()
1265
1309
1266
- result = EndpointCollection .from_data (data = data , schemas = schemas , parameters = parameters , config = config )
1310
+ result = EndpointCollection .from_data (
1311
+ data = data , schemas = schemas , parameters = parameters , request_bodies = request_bodies , config = config
1312
+ )
1267
1313
1268
1314
endpoint_from_data .assert_has_calls (
1269
1315
[
@@ -1274,6 +1320,7 @@ def test_from_data(self, mocker):
1274
1320
tag = "default" ,
1275
1321
schemas = schemas ,
1276
1322
parameters = parameters ,
1323
+ request_bodies = request_bodies ,
1277
1324
config = config ,
1278
1325
),
1279
1326
mocker .call (
@@ -1283,6 +1330,7 @@ def test_from_data(self, mocker):
1283
1330
tag = "tag_2" ,
1284
1331
schemas = schemas_1 ,
1285
1332
parameters = parameters_1 ,
1333
+ request_bodies = request_bodies ,
1286
1334
config = config ,
1287
1335
),
1288
1336
mocker .call (
@@ -1292,6 +1340,7 @@ def test_from_data(self, mocker):
1292
1340
tag = "default" ,
1293
1341
schemas = schemas_2 ,
1294
1342
parameters = parameters_2 ,
1343
+ request_bodies = request_bodies ,
1295
1344
config = config ,
1296
1345
),
1297
1346
],
@@ -1328,6 +1377,7 @@ def test_from_data_overrides_path_item_params_with_operation_params(self):
1328
1377
data = data ,
1329
1378
schemas = Schemas (),
1330
1379
parameters = Parameters (),
1380
+ request_bodies = RequestBodies (),
1331
1381
config = Config (),
1332
1382
)
1333
1383
collection : EndpointCollection = collections ["default" ]
@@ -1349,6 +1399,7 @@ def test_from_data_errors(self, mocker):
1349
1399
parameters_1 = mocker .MagicMock ()
1350
1400
parameters_2 = mocker .MagicMock ()
1351
1401
parameters_3 = mocker .MagicMock ()
1402
+ request_bodies = mocker .MagicMock ()
1352
1403
endpoint_from_data = mocker .patch .object (
1353
1404
Endpoint ,
1354
1405
"from_data" ,
@@ -1363,7 +1414,11 @@ def test_from_data_errors(self, mocker):
1363
1414
config = MagicMock ()
1364
1415
1365
1416
result , result_schemas , result_parameters = EndpointCollection .from_data (
1366
- data = data , schemas = schemas , config = config , parameters = parameters
1417
+ data = data ,
1418
+ schemas = schemas ,
1419
+ config = config ,
1420
+ parameters = parameters ,
1421
+ request_bodies = request_bodies ,
1367
1422
)
1368
1423
1369
1424
endpoint_from_data .assert_has_calls (
@@ -1375,6 +1430,7 @@ def test_from_data_errors(self, mocker):
1375
1430
tag = "default" ,
1376
1431
schemas = schemas ,
1377
1432
parameters = parameters ,
1433
+ request_bodies = request_bodies ,
1378
1434
config = config ,
1379
1435
),
1380
1436
mocker .call (
@@ -1384,6 +1440,7 @@ def test_from_data_errors(self, mocker):
1384
1440
tag = "tag_2" ,
1385
1441
schemas = schemas_1 ,
1386
1442
parameters = parameters_1 ,
1443
+ request_bodies = request_bodies ,
1387
1444
config = config ,
1388
1445
),
1389
1446
mocker .call (
@@ -1393,6 +1450,7 @@ def test_from_data_errors(self, mocker):
1393
1450
tag = "default" ,
1394
1451
schemas = schemas_2 ,
1395
1452
parameters = parameters_2 ,
1453
+ request_bodies = request_bodies ,
1396
1454
config = config ,
1397
1455
),
1398
1456
],
@@ -1434,9 +1492,12 @@ def test_from_data_tags_snake_case_sanitizer(self, mocker):
1434
1492
)
1435
1493
schemas = mocker .MagicMock ()
1436
1494
parameters = mocker .MagicMock ()
1495
+ request_bodies = mocker .MagicMock ()
1437
1496
config = MagicMock ()
1438
1497
1439
- result = EndpointCollection .from_data (data = data , schemas = schemas , parameters = parameters , config = config )
1498
+ result = EndpointCollection .from_data (
1499
+ data = data , schemas = schemas , parameters = parameters , request_bodies = request_bodies , config = config
1500
+ )
1440
1501
1441
1502
endpoint_from_data .assert_has_calls (
1442
1503
[
@@ -1447,6 +1508,7 @@ def test_from_data_tags_snake_case_sanitizer(self, mocker):
1447
1508
tag = "default" ,
1448
1509
schemas = schemas ,
1449
1510
parameters = parameters ,
1511
+ request_bodies = request_bodies ,
1450
1512
config = config ,
1451
1513
),
1452
1514
mocker .call (
@@ -1456,6 +1518,7 @@ def test_from_data_tags_snake_case_sanitizer(self, mocker):
1456
1518
tag = "amf_subscription_info_document" ,
1457
1519
schemas = schemas_1 ,
1458
1520
parameters = parameters_1 ,
1521
+ request_bodies = request_bodies ,
1459
1522
config = config ,
1460
1523
),
1461
1524
mocker .call (
@@ -1465,6 +1528,7 @@ def test_from_data_tags_snake_case_sanitizer(self, mocker):
1465
1528
tag = "tag3_abc" ,
1466
1529
schemas = schemas_2 ,
1467
1530
parameters = parameters_2 ,
1531
+ request_bodies = request_bodies ,
1468
1532
config = config ,
1469
1533
),
1470
1534
],
0 commit comments