diff --git a/apiclient/discovery.py b/apiclient/discovery.py
index 2965f3c..8e14889 100644
--- a/apiclient/discovery.py
+++ b/apiclient/discovery.py
@@ -22,6 +22,7 @@
     'build', 'build_from_document'
     ]
 
+import copy
 import httplib2
 import logging
 import os
@@ -193,12 +194,13 @@
   else:
     future = {}
     auth_discovery = {}
+  schema = service.get('schemas', {})
 
   if model is None:
     features = service.get('features', [])
     model = JsonModel('dataWrapper' in features)
   resource = createResource(http, base, model, requestBuilder, developerKey,
-                       service, future)
+                       service, future, schema)
 
   def auth_method():
     """Discovery information about the authentication the API uses."""
@@ -257,7 +259,7 @@
 
 
 def createResource(http, baseUrl, model, requestBuilder,
-                   developerKey, resourceDesc, futureDesc):
+                   developerKey, resourceDesc, futureDesc, schema):
 
   class Resource(object):
     """A class for interacting with a resource."""
@@ -473,7 +475,10 @@
     setattr(method, '__doc__', ''.join(docs))
     setattr(theclass, methodName, method)
 
-  def createNextMethod(theclass, methodName, methodDesc, futureDesc):
+  # This is a legacy method, as only Buzz and Moderator use the future.json
+  # functionality for generating _next methods. It will be kept around as long
+  # as those API versions are around, but no new APIs should depend upon it.
+  def createNextMethodFromFuture(theclass, methodName, methodDesc, futureDesc):
     methodName = _fix_method_name(methodName)
     methodId = methodDesc['id'] + '.next'
 
@@ -519,6 +524,49 @@
 
     setattr(theclass, methodName, methodNext)
 
+
+  def createNextMethod(theclass, methodName, methodDesc, futureDesc):
+    methodName = _fix_method_name(methodName)
+    methodId = methodDesc['id'] + '.next'
+
+    def methodNext(self, previous_request, previous_response):
+      """Retrieves the next page of results.
+
+      Args:
+        previous_request: The request for the previous page.
+        previous_response: The response from the request for the previous page.
+
+      Returns:
+        A request object that you can call 'execute()' on to request the next
+        page. Returns None if there are no more items in the collection.
+      """
+      # Retrieve nextPageToken from previous_response
+      # Use as pageToken in previous_request to create new request.
+
+      if 'nextPageToken' not in previous_response:
+        return None
+
+      request = copy.copy(previous_request)
+
+      pageToken = previous_response['nextPageToken']
+      parsed = list(urlparse.urlparse(request.uri))
+      q = parse_qsl(parsed[4])
+
+      # Find and remove old 'pageToken' value from URI
+      newq = [(key, value) for (key, value) in q if key != 'pageToken']
+      newq.append(('pageToken', pageToken))
+      parsed[4] = urllib.urlencode(newq)
+      uri = urlparse.urlunparse(parsed)
+
+      request.uri = uri
+
+      logging.info('URL being requested: %s' % uri)
+
+      return request
+
+    setattr(theclass, methodName, methodNext)
+
+
   # Add basic methods to Resource
   if 'methods' in resourceDesc:
     for methodName, methodDesc in resourceDesc['methods'].iteritems():
@@ -537,7 +585,7 @@
       def methodResource(self):
         return createResource(self._http, self._baseUrl, self._model,
                               self._requestBuilder, self._developerKey,
-                              methodDesc, futureDesc)
+                              methodDesc, futureDesc, schema)
 
       setattr(methodResource, '__doc__', 'A collection resource.')
       setattr(methodResource, '__is_resource__', True)
@@ -554,8 +602,23 @@
   if futureDesc and 'methods' in futureDesc:
     for methodName, methodDesc in futureDesc['methods'].iteritems():
       if 'next' in methodDesc and methodName in resourceDesc['methods']:
-        createNextMethod(Resource, methodName + '_next',
+        createNextMethodFromFuture(Resource, methodName + '_next',
                          resourceDesc['methods'][methodName],
                          methodDesc['next'])
+  # Add _next() methods
+  # Look for response bodies in schema that contain nextPageToken, and methods
+  # that take a pageToken parameter.
+  if 'methods' in resourceDesc:
+    for methodName, methodDesc in resourceDesc['methods'].iteritems():
+      if 'response' in methodDesc:
+        responseSchema = methodDesc['response']
+        if '$ref' in responseSchema:
+          responseSchema = schema[responseSchema['$ref']]
+        hasNextPageToken = 'nextPageToken' in responseSchema['properties']
+        hasPageToken = 'pageToken' in methodDesc.get('parameters', {})
+        if hasNextPageToken and hasPageToken:
+          createNextMethod(Resource, methodName + '_next',
+                           resourceDesc['methods'][methodName],
+                           methodName)
 
   return Resource()
diff --git a/tests/data/tasks.json b/tests/data/tasks.json
new file mode 100644
index 0000000..ed3d61f
--- /dev/null
+++ b/tests/data/tasks.json
@@ -0,0 +1,661 @@
+{
+ "kind": "discovery#restDescription",
+ "id": "tasks:v1",
+ "name": "tasks",
+ "version": "v1",
+ "title": "Tasks API",
+ "description": "Lets you manage your tasks and task lists.",
+ "icons": {
+  "x16": "http://www.google.com/images/icons/product/tasks-16.png",
+  "x32": "http://www.google.com/images/icons/product/tasks-32.png"
+ },
+ "documentationLink": "http://code.google.com/apis/tasks/v1/using.html",
+ "labels": [
+  "labs"
+ ],
+ "protocol": "rest",
+ "basePath": "/tasks/v1/",
+ "parameters": {
+  "alt": {
+   "type": "string",
+   "description": "Data format for the response.",
+   "default": "json",
+   "enum": [
+    "json"
+   ],
+   "enumDescriptions": [
+    "Responses with Content-Type of application/json"
+   ],
+   "location": "query"
+  },
+  "fields": {
+   "type": "string",
+   "description": "Selector specifying which fields to include in a partial response.",
+   "location": "query"
+  },
+  "key": {
+   "type": "string",
+   "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
+   "location": "query"
+  },
+  "oauth_token": {
+   "type": "string",
+   "description": "OAuth 2.0 token for the current user.",
+   "location": "query"
+  },
+  "prettyPrint": {
+   "type": "boolean",
+   "description": "Returns response with indentations and line breaks.",
+   "default": "true",
+   "location": "query"
+  },
+  "userIp": {
+   "type": "string",
+   "description": "IP address of the site where the request originates. Use this if you want to enforce per-user limits.",
+   "location": "query"
+  }
+ },
+ "auth": {
+  "oauth2": {
+   "scopes": {
+    "https://www.googleapis.com/auth/tasks": {
+     "description": "Manage your tasks"
+    },
+    "https://www.googleapis.com/auth/tasks.readonly": {
+     "description": "View your tasks"
+    }
+   }
+  }
+ },
+ "schemas": {
+  "Task": {
+   "id": "Task",
+   "type": "object",
+   "properties": {
+    "completed": {
+     "type": "string",
+     "description": "Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.",
+     "format": "date-time"
+    },
+    "deleted": {
+     "type": "boolean",
+     "description": "Flag indicating whether the task has been deleted. The default if False."
+    },
+    "due": {
+     "type": "string",
+     "description": "Due date of the task (as a RFC 3339 timestamp). Optional.",
+     "format": "date-time"
+    },
+    "etag": {
+     "type": "string",
+     "description": "ETag of the resource."
+    },
+    "hidden": {
+     "type": "boolean",
+     "description": "Flag indicating whether the task is hidden. This is the case if the task had been marked completed when the task list was last cleared. The default is False. This field is read-only."
+    },
+    "id": {
+     "type": "string",
+     "description": "Task identifier."
+    },
+    "kind": {
+     "type": "string",
+     "description": "Type of the resource. This is always \"tasks#task\".",
+     "default": "tasks#task"
+    },
+    "notes": {
+     "type": "string",
+     "description": "Notes describing the task. Optional."
+    },
+    "parent": {
+     "type": "string",
+     "description": "Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the \"move\" method to move the task under a different parent or to the top level."
+    },
+    "position": {
+     "type": "string",
+     "description": "String indicating the position of the task among its sibling tasks under the same parent task or at the top level. If this string is greater than another task's corresponding position string according to lexicographical ordering, the task is positioned after the other task under the same parent task (or at the top level). This field is read-only. Use the \"move\" method to move the task to another position."
+    },
+    "selfLink": {
+     "type": "string",
+     "description": "URL pointing to this task. Used to retrieve, update, or delete this task."
+    },
+    "status": {
+     "type": "string",
+     "description": "Status of the task. This is either \"needsAction\" or \"completed\"."
+    },
+    "title": {
+     "type": "string",
+     "description": "Title of the task."
+    },
+    "updated": {
+     "type": "string",
+     "description": "Last modification time of the task (as a RFC 3339 timestamp).",
+     "format": "date-time"
+    }
+   }
+  },
+  "TaskList": {
+   "id": "TaskList",
+   "type": "object",
+   "properties": {
+    "etag": {
+     "type": "string",
+     "description": "ETag of the resource."
+    },
+    "id": {
+     "type": "string",
+     "description": "Task list identifier."
+    },
+    "kind": {
+     "type": "string",
+     "description": "Type of the resource. This is always \"tasks#taskList\".",
+     "default": "tasks#taskList"
+    },
+    "selfLink": {
+     "type": "string",
+     "description": "URL pointing to this task list. Used to retrieve, update, or delete this task list."
+    },
+    "title": {
+     "type": "string",
+     "description": "Title of the task list."
+    }
+   }
+  },
+  "TaskLists": {
+   "id": "TaskLists",
+   "type": "object",
+   "properties": {
+    "etag": {
+     "type": "string",
+     "description": "ETag of the resource."
+    },
+    "items": {
+     "type": "array",
+     "description": "Collection of task lists.",
+     "items": {
+      "$ref": "TaskList"
+     }
+    },
+    "kind": {
+     "type": "string",
+     "description": "Type of the resource. This is always \"tasks#taskLists\".",
+     "default": "tasks#taskLists"
+    },
+    "nextPageToken": {
+     "type": "string",
+     "description": "Token that can be used to request the next page of this result."
+    }
+   }
+  },
+  "Tasks": {
+   "id": "Tasks",
+   "type": "object",
+   "properties": {
+    "etag": {
+     "type": "string",
+     "description": "ETag of the resource."
+    },
+    "items": {
+     "type": "array",
+     "description": "Collection of tasks.",
+     "items": {
+      "$ref": "Task"
+     }
+    },
+    "kind": {
+     "type": "string",
+     "description": "Type of the resource. This is always \"tasks#tasks\".",
+     "default": "tasks#tasks"
+    },
+    "nextPageToken": {
+     "type": "string",
+     "description": "Token used to access the next page of this result."
+    }
+   }
+  }
+ },
+ "resources": {
+  "tasklists": {
+   "methods": {
+    "delete": {
+     "id": "tasks.tasklists.delete",
+     "path": "users/@me/lists/{tasklist}",
+     "httpMethod": "DELETE",
+     "description": "Deletes the authenticated user's specified task list.",
+     "parameters": {
+      "tasklist": {
+       "type": "string",
+       "description": "Task list identifier.",
+       "required": true,
+       "location": "path"
+      }
+     },
+     "parameterOrder": [
+      "tasklist"
+     ],
+     "scopes": [
+      "https://www.googleapis.com/auth/tasks"
+     ]
+    },
+    "get": {
+     "id": "tasks.tasklists.get",
+     "path": "users/@me/lists/{tasklist}",
+     "httpMethod": "GET",
+     "description": "Returns the authenticated user's specified task list.",
+     "parameters": {
+      "tasklist": {
+       "type": "string",
+       "description": "Task list identifier.",
+       "required": true,
+       "location": "path"
+      }
+     },
+     "parameterOrder": [
+      "tasklist"
+     ],
+     "response": {
+      "$ref": "TaskList"
+     },
+     "scopes": [
+      "https://www.googleapis.com/auth/tasks",
+      "https://www.googleapis.com/auth/tasks.readonly"
+     ]
+    },
+    "insert": {
+     "id": "tasks.tasklists.insert",
+     "path": "users/@me/lists",
+     "httpMethod": "POST",
+     "description": "Creates a new task list and adds it to the authenticated user's task lists.",
+     "request": {
+      "$ref": "TaskList"
+     },
+     "response": {
+      "$ref": "TaskList"
+     },
+     "scopes": [
+      "https://www.googleapis.com/auth/tasks"
+     ]
+    },
+    "list": {
+     "id": "tasks.tasklists.list",
+     "path": "users/@me/lists",
+     "httpMethod": "GET",
+     "description": "Returns all the authenticated user's task lists.",
+     "parameters": {
+      "maxResults": {
+       "type": "integer",
+       "description": "Maximum number of task lists returned on one page. Optional. The default is 100.",
+       "minimum": "-9223372036854775808",
+       "maximum": "9223372036854775807",
+       "location": "query"
+      },
+      "pageToken": {
+       "type": "string",
+       "description": "Token specifying the result page to return. Optional.",
+       "location": "query"
+      }
+     },
+     "response": {
+      "$ref": "TaskLists"
+     },
+     "scopes": [
+      "https://www.googleapis.com/auth/tasks",
+      "https://www.googleapis.com/auth/tasks.readonly"
+     ]
+    },
+    "patch": {
+     "id": "tasks.tasklists.patch",
+     "path": "users/@me/lists/{tasklist}",
+     "httpMethod": "PATCH",
+     "description": "Updates the authenticated user's specified task list. This method supports patch semantics.",
+     "parameters": {
+      "tasklist": {
+       "type": "string",
+       "description": "Task list identifier.",
+       "required": true,
+       "location": "path"
+      }
+     },
+     "parameterOrder": [
+      "tasklist"
+     ],
+     "request": {
+      "$ref": "TaskList"
+     },
+     "response": {
+      "$ref": "TaskList"
+     },
+     "scopes": [
+      "https://www.googleapis.com/auth/tasks"
+     ]
+    },
+    "update": {
+     "id": "tasks.tasklists.update",
+     "path": "users/@me/lists/{tasklist}",
+     "httpMethod": "PUT",
+     "description": "Updates the authenticated user's specified task list.",
+     "parameters": {
+      "tasklist": {
+       "type": "string",
+       "description": "Task list identifier.",
+       "required": true,
+       "location": "path"
+      }
+     },
+     "parameterOrder": [
+      "tasklist"
+     ],
+     "request": {
+      "$ref": "TaskList"
+     },
+     "response": {
+      "$ref": "TaskList"
+     },
+     "scopes": [
+      "https://www.googleapis.com/auth/tasks"
+     ]
+    }
+   }
+  },
+  "tasks": {
+   "methods": {
+    "clear": {
+     "id": "tasks.tasks.clear",
+     "path": "lists/{tasklist}/clear",
+     "httpMethod": "POST",
+     "description": "Clears all completed tasks from the specified task list. The affected tasks will be marked as 'hidden' and no longer be returned by default when retrieving all tasks for a task list.",
+     "parameters": {
+      "tasklist": {
+       "type": "string",
+       "description": "Task list identifier.",
+       "required": true,
+       "location": "path"
+      }
+     },
+     "parameterOrder": [
+      "tasklist"
+     ],
+     "scopes": [
+      "https://www.googleapis.com/auth/tasks"
+     ]
+    },
+    "delete": {
+     "id": "tasks.tasks.delete",
+     "path": "lists/{tasklist}/tasks/{task}",
+     "httpMethod": "DELETE",
+     "description": "Deletes the specified task from the task list.",
+     "parameters": {
+      "task": {
+       "type": "string",
+       "description": "Task identifier.",
+       "required": true,
+       "location": "path"
+      },
+      "tasklist": {
+       "type": "string",
+       "description": "Task list identifier.",
+       "required": true,
+       "location": "path"
+      }
+     },
+     "parameterOrder": [
+      "tasklist",
+      "task"
+     ],
+     "scopes": [
+      "https://www.googleapis.com/auth/tasks"
+     ]
+    },
+    "get": {
+     "id": "tasks.tasks.get",
+     "path": "lists/{tasklist}/tasks/{task}",
+     "httpMethod": "GET",
+     "description": "Returns the specified task.",
+     "parameters": {
+      "task": {
+       "type": "string",
+       "description": "Task identifier.",
+       "required": true,
+       "location": "path"
+      },
+      "tasklist": {
+       "type": "string",
+       "description": "Task list identifier.",
+       "required": true,
+       "location": "path"
+      }
+     },
+     "parameterOrder": [
+      "tasklist",
+      "task"
+     ],
+     "response": {
+      "$ref": "Task"
+     },
+     "scopes": [
+      "https://www.googleapis.com/auth/tasks",
+      "https://www.googleapis.com/auth/tasks.readonly"
+     ]
+    },
+    "insert": {
+     "id": "tasks.tasks.insert",
+     "path": "lists/{tasklist}/tasks",
+     "httpMethod": "POST",
+     "description": "Creates a new task on the specified task list.",
+     "parameters": {
+      "parent": {
+       "type": "string",
+       "description": "Parent task identifier. If the task is created at the top level, this parameter is omitted. Optional.",
+       "location": "query"
+      },
+      "previous": {
+       "type": "string",
+       "description": "Previous sibling task identifier. If the task is created at the first position among its siblings, this parameter is omitted. Optional.",
+       "location": "query"
+      },
+      "tasklist": {
+       "type": "string",
+       "description": "Task list identifier.",
+       "required": true,
+       "location": "path"
+      }
+     },
+     "parameterOrder": [
+      "tasklist"
+     ],
+     "request": {
+      "$ref": "Task"
+     },
+     "response": {
+      "$ref": "Task"
+     },
+     "scopes": [
+      "https://www.googleapis.com/auth/tasks"
+     ]
+    },
+    "list": {
+     "id": "tasks.tasks.list",
+     "path": "lists/{tasklist}/tasks",
+     "httpMethod": "GET",
+     "description": "Returns all tasks in the specified task list.",
+     "parameters": {
+      "completedMax": {
+       "type": "string",
+       "description": "Upper bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date.",
+       "location": "query"
+      },
+      "completedMin": {
+       "type": "string",
+       "description": "Lower bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date.",
+       "location": "query"
+      },
+      "dueMax": {
+       "type": "string",
+       "description": "Upper bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date.",
+       "location": "query"
+      },
+      "dueMin": {
+       "type": "string",
+       "description": "Lower bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date.",
+       "location": "query"
+      },
+      "maxResults": {
+       "type": "integer",
+       "description": "Maximum number of task lists returned on one page. Optional. The default is 100.",
+       "minimum": "-9223372036854775808",
+       "maximum": "9223372036854775807",
+       "location": "query"
+      },
+      "pageToken": {
+       "type": "string",
+       "description": "Token specifying the result page to return. Optional.",
+       "location": "query"
+      },
+      "showCompleted": {
+       "type": "boolean",
+       "description": "Flag indicating whether completed tasks are returned in the result. Optional. The default is True.",
+       "location": "query"
+      },
+      "showDeleted": {
+       "type": "boolean",
+       "description": "Flag indicating whether deleted tasks are returned in the result. Optional. The default is False.",
+       "location": "query"
+      },
+      "showHidden": {
+       "type": "boolean",
+       "description": "Flag indicating whether hidden tasks are returned in the result. Optional. The default is False.",
+       "location": "query"
+      },
+      "tasklist": {
+       "type": "string",
+       "description": "Task list identifier.",
+       "required": true,
+       "location": "path"
+      },
+      "updatedMin": {
+       "type": "string",
+       "description": "Lower bound for a task's last modification time (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by last modification time.",
+       "location": "query"
+      }
+     },
+     "parameterOrder": [
+      "tasklist"
+     ],
+     "response": {
+      "$ref": "Tasks"
+     },
+     "scopes": [
+      "https://www.googleapis.com/auth/tasks",
+      "https://www.googleapis.com/auth/tasks.readonly"
+     ]
+    },
+    "move": {
+     "id": "tasks.tasks.move",
+     "path": "lists/{tasklist}/tasks/{task}/move",
+     "httpMethod": "POST",
+     "description": "Moves the specified task to another position in the task list. This can include putting it as a child task under a new parent and/or move it to a different position among its sibling tasks.",
+     "parameters": {
+      "parent": {
+       "type": "string",
+       "description": "New parent task identifier. If the task is moved to the top level, this parameter is omitted. Optional.",
+       "location": "query"
+      },
+      "previous": {
+       "type": "string",
+       "description": "New previous sibling task identifier. If the task is moved to the first position among its siblings, this parameter is omitted. Optional.",
+       "location": "query"
+      },
+      "task": {
+       "type": "string",
+       "description": "Task identifier.",
+       "required": true,
+       "location": "path"
+      },
+      "tasklist": {
+       "type": "string",
+       "description": "Task list identifier.",
+       "required": true,
+       "location": "path"
+      }
+     },
+     "parameterOrder": [
+      "tasklist",
+      "task"
+     ],
+     "response": {
+      "$ref": "Task"
+     },
+     "scopes": [
+      "https://www.googleapis.com/auth/tasks"
+     ]
+    },
+    "patch": {
+     "id": "tasks.tasks.patch",
+     "path": "lists/{tasklist}/tasks/{task}",
+     "httpMethod": "PATCH",
+     "description": "Updates the specified task. This method supports patch semantics.",
+     "parameters": {
+      "task": {
+       "type": "string",
+       "description": "Task identifier.",
+       "required": true,
+       "location": "path"
+      },
+      "tasklist": {
+       "type": "string",
+       "description": "Task list identifier.",
+       "required": true,
+       "location": "path"
+      }
+     },
+     "parameterOrder": [
+      "tasklist",
+      "task"
+     ],
+     "request": {
+      "$ref": "Task"
+     },
+     "response": {
+      "$ref": "Task"
+     },
+     "scopes": [
+      "https://www.googleapis.com/auth/tasks"
+     ]
+    },
+    "update": {
+     "id": "tasks.tasks.update",
+     "path": "lists/{tasklist}/tasks/{task}",
+     "httpMethod": "PUT",
+     "description": "Updates the specified task.",
+     "parameters": {
+      "task": {
+       "type": "string",
+       "description": "Task identifier.",
+       "required": true,
+       "location": "path"
+      },
+      "tasklist": {
+       "type": "string",
+       "description": "Task list identifier.",
+       "required": true,
+       "location": "path"
+      }
+     },
+     "parameterOrder": [
+      "tasklist",
+      "task"
+     ],
+     "request": {
+      "$ref": "Task"
+     },
+     "response": {
+      "$ref": "Task"
+     },
+     "scopes": [
+      "https://www.googleapis.com/auth/tasks"
+     ]
+    }
+   }
+  }
+ }
+}
diff --git a/tests/test_discovery.py b/tests/test_discovery.py
index 06bbbb8..ff5f88d 100644
--- a/tests/test_discovery.py
+++ b/tests/test_discovery.py
@@ -268,6 +268,7 @@
 
 class Next(unittest.TestCase):
   def test_next_for_people_liked(self):
+    """Legacy test for Buzz _next support."""
     self.http = HttpMock(datafile('buzz.json'), {'status': '200'})
     buzz = build('buzz', 'v1', self.http)
     people = {'links':
@@ -276,6 +277,21 @@
     request = buzz.people().liked_next(people)
     self.assertEqual(request.uri, 'http://www.googleapis.com/next-link')
 
+  def test_next_successful_none_on_no_next_page_token(self):
+    self.http = HttpMock(datafile('tasks.json'), {'status': '200'})
+    tasks = build('tasks', 'v1', self.http)
+    request = tasks.tasklists().list()
+    self.assertEqual(None, tasks.tasklists().list_next(request, {}))
+
+  def test_next_successful_with_next_page_token(self):
+    self.http = HttpMock(datafile('tasks.json'), {'status': '200'})
+    tasks = build('tasks', 'v1', self.http)
+    request = tasks.tasklists().list()
+    next_request = tasks.tasklists().list_next(request, {'nextPageToken': '123abc'})
+    parsed = list(urlparse.urlparse(next_request.uri))
+    q = parse_qs(parsed[4])
+    self.assertEqual(q['pageToken'][0], '123abc')
+
 
 class DeveloperKey(unittest.TestCase):
   def test_param(self):
