Handle the case of maxSize missing in a discovery doc media section.
Reviewed in: http://codereview.appspot.com/4785041/
This commit is contained in:
@@ -250,6 +250,8 @@ MULTIPLIERS = {
|
||||
|
||||
def _media_size_to_long(maxSize):
|
||||
"""Convert a string media size, such as 10GB or 3TB into an integer."""
|
||||
if len(maxSize) < 2:
|
||||
return 0
|
||||
units = maxSize[-2:].upper()
|
||||
multiplier = MULTIPLIERS.get(units, 0)
|
||||
if multiplier:
|
||||
@@ -284,7 +286,7 @@ def createResource(http, baseUrl, model, requestBuilder,
|
||||
mediaUpload = methodDesc['mediaUpload']
|
||||
mediaPathUrl = mediaUpload['protocols']['simple']['path']
|
||||
accept = mediaUpload['accept']
|
||||
maxSize = _media_size_to_long(mediaUpload['maxSize'])
|
||||
maxSize = _media_size_to_long(mediaUpload.get('maxSize', ''))
|
||||
|
||||
if 'parameters' not in methodDesc:
|
||||
methodDesc['parameters'] = {}
|
||||
|
||||
@@ -218,6 +218,21 @@
|
||||
"description": "Cross-breed animals",
|
||||
"response": {
|
||||
"$ref": "Animal2"
|
||||
},
|
||||
"mediaUpload": {
|
||||
"accept": [
|
||||
"image/png"
|
||||
],
|
||||
"protocols": {
|
||||
"simple": {
|
||||
"multipart": true,
|
||||
"path": "upload/activities/{userId}/@self"
|
||||
},
|
||||
"resumable": {
|
||||
"multipart": true,
|
||||
"path": "upload/activities/{userId}/@self"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
|
||||
@@ -211,6 +211,13 @@ class Discovery(unittest.TestCase):
|
||||
doc = getattr(zoo.animals().insert, '__doc__')
|
||||
self.assertTrue('media_body' in doc)
|
||||
|
||||
def test_simple_media_upload_no_max_size_provided(self):
|
||||
self.http = HttpMock(datafile('zoo.json'), {'status': '200'})
|
||||
zoo = build('zoo', 'v1', self.http)
|
||||
request = zoo.animals().crossbreed(media_body=datafile('small.png'))
|
||||
self.assertEquals('image/png', request.headers['content-type'])
|
||||
self.assertEquals('PNG', request.body[1:4])
|
||||
|
||||
def test_simple_media_raise_correct_exceptions(self):
|
||||
self.http = HttpMock(datafile('zoo.json'), {'status': '200'})
|
||||
zoo = build('zoo', 'v1', self.http)
|
||||
|
||||
Reference in New Issue
Block a user