Handle the case of maxSize missing in a discovery doc media section.

Reviewed in: http://codereview.appspot.com/4785041/
diff --git a/apiclient/discovery.py b/apiclient/discovery.py
index 8e14889..81242b8 100644
--- a/apiclient/discovery.py
+++ b/apiclient/discovery.py
@@ -250,6 +250,8 @@
 
 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 @@
       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'] = {}
diff --git a/tests/data/zoo.json b/tests/data/zoo.json
index 1475704..d4ae969 100644
--- a/tests/data/zoo.json
+++ b/tests/data/zoo.json
@@ -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": {
diff --git a/tests/test_discovery.py b/tests/test_discovery.py
index ff5f88d..a6b7c9c 100644
--- a/tests/test_discovery.py
+++ b/tests/test_discovery.py
@@ -211,6 +211,13 @@
     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)