Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b854ff1

Browse files
authored
Never make 'body' required. (googleapis#718)
1 parent b5d8755 commit b854ff1

File tree

2 files changed

+4
-15
lines changed

2 files changed

+4
-15
lines changed

googleapiclient/discovery.py

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@
9696
BODY_PARAMETER_DEFAULT_VALUE = {
9797
'description': 'The request body.',
9898
'type': 'object',
99-
'required': True,
10099
}
101100
MEDIA_BODY_PARAMETER_DEFAULT_VALUE = {
102101
'description': ('The filename of the media request body, or an instance '
@@ -494,9 +493,6 @@ def _fix_up_parameters(method_desc, root_desc, http_method, schema):
494493
if http_method in HTTP_PAYLOAD_METHODS and 'request' in method_desc:
495494
body = BODY_PARAMETER_DEFAULT_VALUE.copy()
496495
body.update(method_desc['request'])
497-
# Make body optional for requests with no parameters.
498-
if not _methodProperties(method_desc, schema, 'request'):
499-
body['required'] = False
500496
parameters['body'] = body
501497

502498
return parameters
@@ -505,10 +501,8 @@ def _fix_up_parameters(method_desc, root_desc, http_method, schema):
505501
def _fix_up_media_upload(method_desc, root_desc, path_url, parameters):
506502
"""Adds 'media_body' and 'media_mime_type' parameters if supported by method.
507503
508-
SIDE EFFECTS: If the method supports media upload and has a required body,
509-
sets body to be optional (required=False) instead. Also, if there is a
510-
'mediaUpload' in the method description, adds 'media_upload' key to
511-
parameters.
504+
SIDE EFFECTS: If there is a 'mediaUpload' in the method description, adds
505+
'media_upload' key to parameters.
512506
513507
Args:
514508
method_desc: Dictionary with metadata describing an API method. Value comes
@@ -541,8 +535,6 @@ def _fix_up_media_upload(method_desc, root_desc, path_url, parameters):
541535
media_path_url = _media_path_url_from_info(root_desc, path_url)
542536
parameters['media_body'] = MEDIA_BODY_PARAMETER_DEFAULT_VALUE.copy()
543537
parameters['media_mime_type'] = MEDIA_MIME_TYPE_PARAMETER_DEFAULT_VALUE.copy()
544-
if 'body' in parameters:
545-
parameters['body']['required'] = False
546538

547539
return accept, max_size, media_path_url
548540

tests/test_discovery.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,6 @@ def test_fix_up_parameters_insert(self):
162162
body = {
163163
'description': 'The request body.',
164164
'type': 'object',
165-
'required': True,
166165
'$ref': 'Animal',
167166
}
168167
self.assertEqual(parameters['body'], body)
@@ -206,7 +205,6 @@ def test_fix_up_parameters_check_body(self):
206205
body = {
207206
'description': 'The request body.',
208207
'type': 'object',
209-
'required': True,
210208
'$ref': 'Request',
211209
'key1': 'value1',
212210
'key2': 'value2',
@@ -219,7 +217,6 @@ def test_fix_up_parameters_optional_body(self):
219217
method_desc = {'request': {'$ref': 'Request'}}
220218

221219
parameters = _fix_up_parameters(method_desc, {}, 'POST', dummy_schema)
222-
self.assertFalse(parameters['body']['required'])
223220

224221
def _base_fix_up_method_description_test(
225222
self, method_desc, initial_parameters, final_parameters,
@@ -267,7 +264,7 @@ def test_fix_up_media_upload_with_initial_invalid(self):
267264
def test_fix_up_media_upload_with_initial_valid_minimal(self):
268265
valid_method_desc = {'mediaUpload': {'accept': []}}
269266
initial_parameters = {'body': {}}
270-
final_parameters = {'body': {'required': False},
267+
final_parameters = {'body': {},
271268
'media_body': MEDIA_BODY_PARAMETER_DEFAULT_VALUE,
272269
'media_mime_type': MEDIA_MIME_TYPE_PARAMETER_DEFAULT_VALUE}
273270
self._base_fix_up_method_description_test(
@@ -277,7 +274,7 @@ def test_fix_up_media_upload_with_initial_valid_minimal(self):
277274
def test_fix_up_media_upload_with_initial_valid_full(self):
278275
valid_method_desc = {'mediaUpload': {'accept': ['*/*'], 'maxSize': '10GB'}}
279276
initial_parameters = {'body': {}}
280-
final_parameters = {'body': {'required': False},
277+
final_parameters = {'body': {},
281278
'media_body': MEDIA_BODY_PARAMETER_DEFAULT_VALUE,
282279
'media_mime_type': MEDIA_MIME_TYPE_PARAMETER_DEFAULT_VALUE}
283280
ten_gb = 10 * 2**30

0 commit comments

Comments
 (0)