Added tests for resources and their methods. Also added tests for the json model.
This commit is contained in:
3
Makefile
3
Makefile
@@ -1,2 +1,5 @@
|
||||
pep8:
|
||||
find apiclient samples -name "*.py" | xargs pep8 --ignore=E111,E202
|
||||
|
||||
test:
|
||||
python runtests.py
|
||||
|
||||
@@ -80,12 +80,12 @@ class JsonModel(object):
|
||||
def request(self, headers, params):
|
||||
model = params.get('body', None)
|
||||
query = '?alt=json&prettyprint=true'
|
||||
headers['Accept'] = 'application/json'
|
||||
headers['accept'] = 'application/json'
|
||||
if model == None:
|
||||
return (headers, params, query, None)
|
||||
else:
|
||||
model = {'data': model}
|
||||
headers['Content-Type'] = 'application/json'
|
||||
headers['content-type'] = 'application/json'
|
||||
del params['body']
|
||||
return (headers, params, query, simplejson.dumps(model))
|
||||
|
||||
@@ -176,7 +176,7 @@ def createResource(http, baseUrl, model, resourceName, resourceDesc):
|
||||
for name, regex in pattern.iteritems():
|
||||
if name in kwargs:
|
||||
if re.match(regex, kwargs[name]) is None:
|
||||
raise TypeError('Parameter "%s" value "%s" does match the pattern "%s"' % (name, kwargs[name], regex))
|
||||
raise TypeError('Parameter "%s" value "%s" does not match the pattern "%s"' % (name, kwargs[name], regex))
|
||||
|
||||
params = {}
|
||||
for key, value in kwargs.iteritems():
|
||||
|
||||
988
tests/data/buzz.json
Normal file
988
tests/data/buzz.json
Normal file
@@ -0,0 +1,988 @@
|
||||
{
|
||||
"data": {
|
||||
"buzz": {
|
||||
"v1": {
|
||||
"baseUrl": "https://www.googleapis.com/",
|
||||
"resources": {
|
||||
"photos": {
|
||||
"methods": {
|
||||
"insert": {
|
||||
"pathUrl": "buzz/v1/photos/{userId}/{albumId}",
|
||||
"rpcName": "buzz.photos.insert",
|
||||
"httpMethod": "POST",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"albumId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"resource": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"feeds": {
|
||||
"methods": {
|
||||
"insert": {
|
||||
"pathUrl": "buzz/v1/feeds/{userId}/@self",
|
||||
"rpcName": "buzz.feeds.insert",
|
||||
"httpMethod": "POST",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"update": {
|
||||
"pathUrl": "buzz/v1/feeds/{userId}/@self/{siteId}",
|
||||
"rpcName": "buzz.feeds.update",
|
||||
"httpMethod": "PUT",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"siteId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"c": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"pathUrl": "buzz/v1/feeds/{userId}/{scope}",
|
||||
"rpcName": "buzz.feeds.list",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"scope": {
|
||||
"parameterType": "path",
|
||||
"pattern": "@.*",
|
||||
"required": true
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"pathUrl": "buzz/v1/feeds/{userId}/@self/{siteId}",
|
||||
"rpcName": "buzz.feeds.delete",
|
||||
"httpMethod": "DELETE",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"siteId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"methods": {
|
||||
"extractPeople": {
|
||||
"pathUrl": "buzz/v1/activities/search/@people",
|
||||
"rpcName": "buzz.activities.search.extractPeople",
|
||||
"httpMethod": "POST",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"lon": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"c": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"bbox": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"q": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"pid": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"radius": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"lat": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"activities": {
|
||||
"methods": {
|
||||
"update": {
|
||||
"pathUrl": "buzz/v1/activities/{userId}/{scope}/{postId}",
|
||||
"rpcName": "buzz.activities.update",
|
||||
"httpMethod": "PUT",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"scope": {
|
||||
"parameterType": "path",
|
||||
"pattern": "@.*",
|
||||
"required": true
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"postId": {
|
||||
"parameterType": "path",
|
||||
"pattern": ".*",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"abuseType": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"pathUrl": "buzz/v1/activities/{userId}/{scope}/{postId}",
|
||||
"rpcName": "buzz.activities.delete",
|
||||
"httpMethod": "DELETE",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"scope": {
|
||||
"parameterType": "path",
|
||||
"pattern": "@.*",
|
||||
"required": true
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"postId": {
|
||||
"parameterType": "path",
|
||||
"pattern": ".*",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"insert": {
|
||||
"pathUrl": "buzz/v1/activities/{userId}/@self",
|
||||
"rpcName": "buzz.activities.insert",
|
||||
"httpMethod": "POST",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"preview": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"resource": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"pathUrl": "buzz/v1/activities/{userId}/{scope}",
|
||||
"rpcName": "buzz.activities.list",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"max-comments": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"scope": {
|
||||
"parameterType": "path",
|
||||
"pattern": "@(self|public|consumption|liked|comments)*",
|
||||
"required": true
|
||||
},
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"c": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"max-liked": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"get": {
|
||||
"pathUrl": "buzz/v1/activities/{userId}/@self/{postId}",
|
||||
"rpcName": "buzz.activities.get",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"postId": {
|
||||
"parameterType": "path",
|
||||
"pattern": ".*",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"pathUrl": "buzz/v1/activities/search",
|
||||
"rpcName": "buzz.activities.search",
|
||||
"httpMethod": "POST",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"lon": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"c": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"bbox": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"q": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"pid": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"radius": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"lat": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"people": {
|
||||
"methods": {
|
||||
"get": {
|
||||
"pathUrl": "buzz/v1/people/{userId}/@self",
|
||||
"rpcName": "buzz.people.get",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"pathUrl": "buzz/v1/people/search",
|
||||
"rpcName": "buzz.people.search",
|
||||
"httpMethod": "POST",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"c": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"q": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"pathUrl": "buzz/v1/people/{userId}/@groups/{groupId}",
|
||||
"rpcName": "buzz.people.list",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"groupId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"c": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"reshared": {
|
||||
"pathUrl": "buzz/v1/activities/{userId}/{scope}/{postId}/{groupId}",
|
||||
"rpcName": "buzz.people.reshared",
|
||||
"httpMethod": "POST",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"groupId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "@reshared",
|
||||
"required": true
|
||||
},
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"c": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"postId": {
|
||||
"parameterType": "path",
|
||||
"pattern": ".*",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"pathUrl": "buzz/v1/people/{userId}/@groups/{groupId}/{personId}",
|
||||
"rpcName": "buzz.people.delete",
|
||||
"httpMethod": "DELETE",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"groupId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"personId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "(?!@self).*",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"update": {
|
||||
"pathUrl": "buzz/v1/people/{userId}/@groups/{groupId}/{personId}",
|
||||
"rpcName": "buzz.people.update",
|
||||
"httpMethod": "PUT",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"groupId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"personId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "(?!@self).*",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"liked": {
|
||||
"pathUrl": "buzz/v1/activities/{userId}/{scope}/{postId}/{groupId}",
|
||||
"rpcName": "buzz.people.liked",
|
||||
"httpMethod": "POST",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"groupId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "@liked",
|
||||
"required": true
|
||||
},
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"c": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"postId": {
|
||||
"parameterType": "path",
|
||||
"pattern": ".*",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"groups": {
|
||||
"methods": {
|
||||
"get": {
|
||||
"pathUrl": "buzz/v1/people/{userId}/@groups/{groupId}/@self",
|
||||
"rpcName": "buzz.groups.get",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"groupId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"pathUrl": "buzz/v1/people/{userId}/@groups",
|
||||
"rpcName": "buzz.groups.list",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"c": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"pathUrl": "buzz/v1/people/{userId}/@groups/{groupId}",
|
||||
"rpcName": "buzz.groups.delete",
|
||||
"httpMethod": "DELETE",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"groupId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"insert": {
|
||||
"pathUrl": "buzz/v1/people/{userId}/@groups",
|
||||
"rpcName": "buzz.groups.insert",
|
||||
"httpMethod": "POST",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"update": {
|
||||
"pathUrl": "buzz/v1/people/{userId}/@groups/{groupId}/@self",
|
||||
"rpcName": "buzz.groups.update",
|
||||
"httpMethod": "PUT",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"groupId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"comments": {
|
||||
"methods": {
|
||||
"update": {
|
||||
"pathUrl": "buzz/v1/activities/{userId}/{scope}/{postId}/@comments/{commentId}",
|
||||
"rpcName": "buzz.comments.update",
|
||||
"httpMethod": "PUT",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"scope": {
|
||||
"parameterType": "path",
|
||||
"pattern": "@.*",
|
||||
"required": true
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"commentId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"postId": {
|
||||
"parameterType": "path",
|
||||
"pattern": ".*",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"abuseType": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"pathUrl": "buzz/v1/activities/{userId}/{scope}/{postId}/@comments",
|
||||
"rpcName": "buzz.comments.list",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"scope": {
|
||||
"parameterType": "path",
|
||||
"pattern": "@.*",
|
||||
"required": true
|
||||
},
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"c": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"postId": {
|
||||
"parameterType": "path",
|
||||
"pattern": ".*",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"pathUrl": "buzz/v1/activities/{userId}/@self/{postId}/@comments/{commentId}",
|
||||
"rpcName": "buzz.comments.delete",
|
||||
"httpMethod": "DELETE",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"commentId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"postId": {
|
||||
"parameterType": "path",
|
||||
"pattern": ".*",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"insert": {
|
||||
"pathUrl": "buzz/v1/activities/{userId}/@self/{postId}/@comments",
|
||||
"rpcName": "buzz.comments.insert",
|
||||
"httpMethod": "POST",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"postId": {
|
||||
"parameterType": "path",
|
||||
"pattern": ".*",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"get": {
|
||||
"pathUrl": "buzz/v1/activities/{userId}/@self/{postId}/@comments/{commentId}",
|
||||
"rpcName": "buzz.comments.get",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"commentId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"postId": {
|
||||
"parameterType": "path",
|
||||
"pattern": ".*",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"related": {
|
||||
"methods": {
|
||||
"list": {
|
||||
"pathUrl": "buzz/v1/activities/{userId}/{scope}/{postId}/@related",
|
||||
"rpcName": "buzz.related.list",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"scope": {
|
||||
"parameterType": "path",
|
||||
"pattern": "@.*",
|
||||
"required": true
|
||||
},
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"c": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"alt": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"userId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"hl": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"postId": {
|
||||
"parameterType": "path",
|
||||
"pattern": ".*",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
103
tests/data/latitude.json
Normal file
103
tests/data/latitude.json
Normal file
@@ -0,0 +1,103 @@
|
||||
{
|
||||
"data": {
|
||||
"latitude": {
|
||||
"v1": {
|
||||
"baseUrl": "https://www.googleapis.com/",
|
||||
"resources": {
|
||||
"location": {
|
||||
"methods": {
|
||||
"insert": {
|
||||
"pathUrl": "latitude/v1/location",
|
||||
"rpcName": "latitude.location.insert",
|
||||
"httpMethod": "POST",
|
||||
"methodType": "rest"
|
||||
},
|
||||
"list": {
|
||||
"pathUrl": "latitude/v1/location",
|
||||
"rpcName": "latitude.location.list",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"max-time": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"min-time": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"granularity": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"get": {
|
||||
"pathUrl": "latitude/v1/location/{locationId}",
|
||||
"rpcName": "latitude.location.get",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"granularity": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"locationId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"pathUrl": "latitude/v1/location/{locationId}",
|
||||
"rpcName": "latitude.location.delete",
|
||||
"httpMethod": "DELETE",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"locationId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"currentLocation": {
|
||||
"methods": {
|
||||
"insert": {
|
||||
"pathUrl": "latitude/v1/currentLocation",
|
||||
"rpcName": "latitude.currentLocation.insert",
|
||||
"httpMethod": "POST",
|
||||
"methodType": "rest"
|
||||
},
|
||||
"delete": {
|
||||
"pathUrl": "latitude/v1/currentLocation",
|
||||
"rpcName": "latitude.currentLocation.delete",
|
||||
"httpMethod": "DELETE",
|
||||
"methodType": "rest"
|
||||
},
|
||||
"get": {
|
||||
"pathUrl": "latitude/v1/currentLocation",
|
||||
"rpcName": "latitude.currentLocation.get",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"granularity": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
528
tests/data/moderator.json
Normal file
528
tests/data/moderator.json
Normal file
@@ -0,0 +1,528 @@
|
||||
{
|
||||
"data": {
|
||||
"moderator": {
|
||||
"v1": {
|
||||
"baseUrl": "https://www.googleapis.com/",
|
||||
"resources": {
|
||||
"tags": {
|
||||
"methods": {
|
||||
"delete": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}/submissions/{submissionId}/tags/{tagId}",
|
||||
"rpcName": "moderator.tags.delete",
|
||||
"httpMethod": "DELETE",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"tagId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"submissionId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}/submissions/{submissionId}/tags",
|
||||
"rpcName": "moderator.tags.list",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"submissionId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"insert": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}/submissions/{submissionId}/tags",
|
||||
"rpcName": "moderator.tags.insert",
|
||||
"httpMethod": "POST",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"submissionId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"series": {
|
||||
"methods": {
|
||||
"list": {
|
||||
"pathUrl": "moderator/v1/series/@me/mine",
|
||||
"rpcName": "moderator.my.series.list",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest"
|
||||
},
|
||||
"list": {
|
||||
"pathUrl": "moderator/v1/series",
|
||||
"rpcName": "moderator.series.list",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"start-index": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"pathUrl": "moderator/v1/series/@me/recent",
|
||||
"rpcName": "moderator.myrecent.series.list",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest"
|
||||
},
|
||||
"update": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}",
|
||||
"rpcName": "moderator.series.update",
|
||||
"httpMethod": "PUT",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"insert": {
|
||||
"pathUrl": "moderator/v1/series",
|
||||
"rpcName": "moderator.series.insert",
|
||||
"httpMethod": "POST",
|
||||
"methodType": "rest"
|
||||
},
|
||||
"get": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}",
|
||||
"rpcName": "moderator.series.get",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"pathUrl": "moderator/v1/series/featured",
|
||||
"rpcName": "moderator.featured.series.list",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest"
|
||||
}
|
||||
}
|
||||
},
|
||||
"topics": {
|
||||
"methods": {
|
||||
"list": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}/topics",
|
||||
"rpcName": "moderator.topics.list",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"start-index": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"insert": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}/topics",
|
||||
"rpcName": "moderator.topics.insert",
|
||||
"httpMethod": "POST",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"get": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}/topics/{topicId}",
|
||||
"rpcName": "moderator.topics.get",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"topicId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"votes": {
|
||||
"methods": {
|
||||
"update": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}/submissions/{submissionId}/votes/@me",
|
||||
"rpcName": "moderator.votes.update",
|
||||
"httpMethod": "PUT",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"userId": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"submissionId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}/votes/@me",
|
||||
"rpcName": "moderator.votes.list",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"start-index": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"get": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}/submissions/{submissionId}/votes/@me",
|
||||
"rpcName": "moderator.votes.get",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"userId": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"submissionId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"insert": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}/submissions/{submissionId}/votes/@me",
|
||||
"rpcName": "moderator.votes.insert",
|
||||
"httpMethod": "POST",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"submissionId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"submissions": {
|
||||
"methods": {
|
||||
"get": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}/submissions/{submissionId}",
|
||||
"rpcName": "moderator.submissions.get",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"submissionId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}/submissions",
|
||||
"rpcName": "moderator.series.submissions.list",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"author": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"sort": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"q": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"hasAttachmentVideo": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"start-index": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"insert": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}/topics/{topicId}/submissions",
|
||||
"rpcName": "moderator.submissions.insert",
|
||||
"httpMethod": "POST",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"topicId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}/topics/{topicId}/submissions",
|
||||
"rpcName": "moderator.topics.submissions.list",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"author": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"hasAttachedVideo": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"sort": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"q": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"topicId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"start-index": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"profiles": {
|
||||
"methods": {
|
||||
"get": {
|
||||
"pathUrl": "moderator/v1/profiles/@me",
|
||||
"rpcName": "moderator.profiles.get",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest"
|
||||
},
|
||||
"update": {
|
||||
"pathUrl": "moderator/v1/profiles/@me",
|
||||
"rpcName": "moderator.profiles.update",
|
||||
"httpMethod": "PUT",
|
||||
"methodType": "rest"
|
||||
}
|
||||
}
|
||||
},
|
||||
"responses": {
|
||||
"methods": {
|
||||
"insert": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}/topics/{topicId}/submissions/{parentSubmissionId}/responses",
|
||||
"rpcName": "moderator.responses.insert",
|
||||
"httpMethod": "POST",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"parentSubmissionId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"topicId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}/submissions/{submissionId}/responses",
|
||||
"rpcName": "moderator.responses.list",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"author": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"hasAttachedVideo": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"sort": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"q": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"start-index": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
},
|
||||
"submissionId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"pathUrl": "moderator/v1/series/{seriesId}/responses",
|
||||
"rpcName": "moderator.series.responses.list",
|
||||
"httpMethod": "GET",
|
||||
"methodType": "rest",
|
||||
"parameters": {
|
||||
"author": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"hasAttachedVideo": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"sort": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"max-results": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"q": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"start-index": {
|
||||
"parameterType": "query",
|
||||
"required": false
|
||||
},
|
||||
"seriesId": {
|
||||
"parameterType": "path",
|
||||
"pattern": "[^/]+",
|
||||
"required": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
78
tests/test_discovery.py
Normal file
78
tests/test_discovery.py
Normal file
@@ -0,0 +1,78 @@
|
||||
#!/usr/bin/python2.4
|
||||
#
|
||||
# Copyright 2010 Google Inc. All Rights Reserved.
|
||||
|
||||
"""Discovery document tests
|
||||
|
||||
Unit tests for objects created from discovery documents.
|
||||
"""
|
||||
|
||||
__author__ = 'jcgregorio@google.com (Joe Gregorio)'
|
||||
|
||||
from apiclient.discovery import build
|
||||
import httplib2
|
||||
import os
|
||||
import unittest
|
||||
|
||||
DATA_DIR = os.path.join(os.path.dirname(__file__), 'data')
|
||||
|
||||
class HttpMock(object):
|
||||
|
||||
def __init__(self, filename, headers):
|
||||
f = file(os.path.join(DATA_DIR, filename), 'r')
|
||||
self.data = f.read()
|
||||
f.close()
|
||||
self.headers = headers
|
||||
|
||||
def request(self, uri, method="GET", body=None, headers=None, redirections=1, connection_type=None):
|
||||
return httplib2.Response(self.headers), self.data
|
||||
|
||||
|
||||
class Discovery(unittest.TestCase):
|
||||
def test_method_error_checking(self):
|
||||
self.http = HttpMock('buzz.json', {'status': '200'})
|
||||
buzz = build('buzz', 'v1', self.http)
|
||||
|
||||
# Missing required parameters
|
||||
try:
|
||||
buzz.activities().list()
|
||||
self.fail()
|
||||
except TypeError, e:
|
||||
self.assertTrue('Missing' in str(e))
|
||||
|
||||
# Parameter doesn't match regex
|
||||
try:
|
||||
buzz.activities().list(scope='@self', userId='')
|
||||
self.fail()
|
||||
except TypeError, e:
|
||||
self.assertTrue('does not match' in str(e))
|
||||
|
||||
# Parameter doesn't match regex
|
||||
try:
|
||||
buzz.activities().list(scope='not@', userId='foo')
|
||||
self.fail()
|
||||
except TypeError, e:
|
||||
self.assertTrue('does not match' in str(e))
|
||||
|
||||
# Unexpected parameter
|
||||
try:
|
||||
buzz.activities().list(flubber=12)
|
||||
self.fail()
|
||||
except TypeError, e:
|
||||
self.assertTrue('unexpected' in str(e))
|
||||
|
||||
def test_resources(self):
|
||||
self.http = HttpMock('buzz.json', {'status': '200'})
|
||||
buzz = build('buzz', 'v1', self.http)
|
||||
self.assertTrue(getattr(buzz, 'activities'))
|
||||
self.assertTrue(getattr(buzz, 'search'))
|
||||
self.assertTrue(getattr(buzz, 'feeds'))
|
||||
self.assertTrue(getattr(buzz, 'photos'))
|
||||
self.assertTrue(getattr(buzz, 'people'))
|
||||
self.assertTrue(getattr(buzz, 'groups'))
|
||||
self.assertTrue(getattr(buzz, 'comments'))
|
||||
self.assertTrue(getattr(buzz, 'related'))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
45
tests/test_json_model.py
Normal file
45
tests/test_json_model.py
Normal file
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/python2.4
|
||||
#
|
||||
# Copyright 2010 Google Inc. All Rights Reserved.
|
||||
|
||||
"""Discovery document tests
|
||||
|
||||
Unit tests for objects created from discovery documents.
|
||||
"""
|
||||
|
||||
__author__ = 'jcgregorio@google.com (Joe Gregorio)'
|
||||
|
||||
from apiclient.discovery import JsonModel
|
||||
import os
|
||||
import unittest
|
||||
|
||||
|
||||
class Model(unittest.TestCase):
|
||||
def test_json_no_body(self):
|
||||
model = JsonModel()
|
||||
|
||||
headers = {}
|
||||
params = {}
|
||||
|
||||
headers, params, query, body = model.request(headers, params)
|
||||
|
||||
self.assertEqual(headers['accept'], 'application/json')
|
||||
self.assertTrue('content-type' not in headers)
|
||||
self.assertNotEqual(query, '')
|
||||
self.assertEqual(body, None)
|
||||
|
||||
def test_json_body(self):
|
||||
model = JsonModel()
|
||||
|
||||
headers = {}
|
||||
params = {'body': {}}
|
||||
|
||||
headers, params, query, body = model.request(headers, params)
|
||||
|
||||
self.assertEqual(headers['accept'], 'application/json')
|
||||
self.assertEqual(headers['content-type'], 'application/json')
|
||||
self.assertNotEqual(query, '')
|
||||
self.assertEqual(body, '{"data": {}}')
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user