System tests for API. #116

This commit is contained in:
Andrey Smirnov
2014-10-10 18:35:39 +04:00
parent 01b1f23d6b
commit ebc223a895
4 changed files with 52 additions and 1 deletions

View File

@@ -10,7 +10,7 @@ env:
- secure: "V7OjWrfQ8UbktgT036jYQPb/7GJT3Ol9LObDr8FYlzsQ+F1uj2wLac6ePuxcOS4FwWOJinWGM1h+JiFkbxbyFqfRNJ0jj0O2p93QyDojxFVOn1mXqqvV66KFqAWR2Vzkny/gDvj8LTvdB1cgAIm2FNOkQc6E1BFnyWS2sN9ea5E="
before_install:
- sudo apt-get update -qq
- sudo apt-get install -y python-boto
- sudo apt-get install -y python-boto python-requests
install:
- make prepare

View File

@@ -41,6 +41,9 @@ class APITest(BaseTest):
kwargs["headers"]["Content-Type"] = "application/json"
return requests.post("http://%s%s" % (self.base_url, uri), *args, **kwargs)
def delete(self, uri, *args, **kwargs):
return requests.delete("http://%s%s" % (self.base_url, uri), *args, **kwargs)
@classmethod
def shutdown_class(cls):
if cls.aptly_server is not None:

View File

@@ -0,0 +1,5 @@
"""
Testing aptly REST API
"""
from .repos import *

43
system/t12_api/repos.py Normal file
View File

@@ -0,0 +1,43 @@
from api_lib import APITest
class ReposAPITestCreateShow(APITest):
"""
GET /api/repos/:name, POST /api/repos
"""
def check(self):
repo_name = self.random_name()
repo_desc = {u'Comment': u'fun repo',
u'DefaultComponent': u'',
u'DefaultDistribution': u'',
u'Name': repo_name}
resp = self.post("/api/repos", json={"Name": repo_name, "Comment": "fun repo"})
self.check_equal(resp.json(), repo_desc)
self.check_equal(resp.status_code, 201)
self.check_equal(self.get("/api/repos/" + repo_name).json(), repo_desc)
self.check_equal(self.get("/api/repos/" + repo_name).status_code, 200)
self.check_equal(self.get("/api/repos/" + self.random_name()).status_code, 404)
class ReposAPITestCreateIndexDelete(APITest):
"""
GET /api/repos, POST /api/repos, DELETE /api/repos/:name
"""
def check(self):
repo_name = self.random_name()
self.check_equal(self.post("/api/repos", json={"Name": repo_name, "Comment": "fun repo"}).status_code, 201)
repos = self.get("/api/repos/").json()
names = [repo["Name"] for repo in repos]
assert repo_name in names
self.check_equal(self.delete("/api/repos/" + repo_name).status_code, 200)
self.check_equal(self.delete("/api/repos/" + repo_name).status_code, 404)
self.check_equal(self.get("/api/repos/" + repo_name).status_code, 404)
self.check_equal(self.delete("/api/repos/" + self.random_name()).status_code, 404)