Fix handling of nextPageToken. Reviewed in http://codereview.appspot.com/4932041/
diff --git a/apiclient/discovery.py b/apiclient/discovery.py
index 81242b8..5f3c267 100644
--- a/apiclient/discovery.py
+++ b/apiclient/discovery.py
@@ -616,7 +616,8 @@
responseSchema = methodDesc['response']
if '$ref' in responseSchema:
responseSchema = schema[responseSchema['$ref']]
- hasNextPageToken = 'nextPageToken' in responseSchema['properties']
+ hasNextPageToken = 'nextPageToken' in responseSchema.get('properties',
+ {})
hasPageToken = 'pageToken' in methodDesc.get('parameters', {})
if hasNextPageToken and hasPageToken:
createNextMethod(Resource, methodName + '_next',
diff --git a/tests/test_discovery.py b/tests/test_discovery.py
index a6b7c9c..ba0710d 100644
--- a/tests/test_discovery.py
+++ b/tests/test_discovery.py
@@ -299,6 +299,10 @@
q = parse_qs(parsed[4])
self.assertEqual(q['pageToken'][0], '123abc')
+ def test_next_with_method_with_no_properties(self):
+ self.http = HttpMock(datafile('latitude.json'), {'status': '200'})
+ service = build('latitude', 'v1', self.http)
+ request = service.currentLocation().get()
class DeveloperKey(unittest.TestCase):
def test_param(self):