Merge branch 'tagyourit'
This commit is contained in:
commit
d8efb399b0
12 changed files with 641 additions and 172 deletions
Binary file not shown.
|
@ -71,6 +71,7 @@ UPDATE_REPO_DETAILS = {
|
|||
'description': 'A new description',
|
||||
}
|
||||
|
||||
|
||||
class IndexTestSpec(object):
|
||||
def __init__(self, url, sess_repo=None, anon_code=403, no_access_code=403,
|
||||
read_code=200, admin_code=200):
|
||||
|
|
|
@ -2155,6 +2155,18 @@ class TestRepositoryTagHp8rPublicPublicrepo(ApiTestCase):
|
|||
ApiTestCase.setUp(self)
|
||||
self._set_url(RepositoryTag, tag="HP8R", repository="public/publicrepo")
|
||||
|
||||
def test_put_anonymous(self):
|
||||
self._run_test('PUT', 401, None, {u'image': 'WXNG'})
|
||||
|
||||
def test_put_freshuser(self):
|
||||
self._run_test('PUT', 403, 'freshuser', {u'image': 'WXNG'})
|
||||
|
||||
def test_put_reader(self):
|
||||
self._run_test('PUT', 403, 'reader', {u'image': 'WXNG'})
|
||||
|
||||
def test_put_devtable(self):
|
||||
self._run_test('PUT', 403, 'devtable', {u'image': 'WXNG'})
|
||||
|
||||
def test_delete_anonymous(self):
|
||||
self._run_test('DELETE', 401, None, None)
|
||||
|
||||
|
@ -2173,6 +2185,18 @@ class TestRepositoryTagHp8rDevtableShared(ApiTestCase):
|
|||
ApiTestCase.setUp(self)
|
||||
self._set_url(RepositoryTag, tag="HP8R", repository="devtable/shared")
|
||||
|
||||
def test_put_anonymous(self):
|
||||
self._run_test('PUT', 401, None, {u'image': 'WXNG'})
|
||||
|
||||
def test_put_freshuser(self):
|
||||
self._run_test('PUT', 403, 'freshuser', {u'image': 'WXNG'})
|
||||
|
||||
def test_put_reader(self):
|
||||
self._run_test('PUT', 403, 'reader', {u'image': 'WXNG'})
|
||||
|
||||
def test_put_devtable(self):
|
||||
self._run_test('PUT', 404, 'devtable', {u'image': 'WXNG'})
|
||||
|
||||
def test_delete_anonymous(self):
|
||||
self._run_test('DELETE', 401, None, None)
|
||||
|
||||
|
@ -2191,6 +2215,18 @@ class TestRepositoryTagHp8rBuynlargeOrgrepo(ApiTestCase):
|
|||
ApiTestCase.setUp(self)
|
||||
self._set_url(RepositoryTag, tag="HP8R", repository="buynlarge/orgrepo")
|
||||
|
||||
def test_put_anonymous(self):
|
||||
self._run_test('PUT', 401, None, {u'image': 'WXNG'})
|
||||
|
||||
def test_put_freshuser(self):
|
||||
self._run_test('PUT', 403, 'freshuser', {u'image': 'WXNG'})
|
||||
|
||||
def test_put_reader(self):
|
||||
self._run_test('PUT', 403, 'reader', {u'image': 'WXNG'})
|
||||
|
||||
def test_put_devtable(self):
|
||||
self._run_test('PUT', 404, 'devtable', {u'image': 'WXNG'})
|
||||
|
||||
def test_delete_anonymous(self):
|
||||
self._run_test('DELETE', 401, None, None)
|
||||
|
||||
|
|
|
@ -114,6 +114,13 @@ class ApiTestCase(unittest.TestCase):
|
|||
self.assertEquals(rv.status_code, expected_code)
|
||||
return rv.data
|
||||
|
||||
def putResponse(self, resource_name, params={}, data={}, expected_code=200):
|
||||
rv = self.app.put(self.url_for(resource_name, params),
|
||||
data=py_json.dumps(data),
|
||||
headers={"Content-Type": "application/json"})
|
||||
self.assertEquals(rv.status_code, expected_code)
|
||||
return rv.data
|
||||
|
||||
def deleteResponse(self, resource_name, params={}, expected_code=204):
|
||||
rv = self.app.delete(self.url_for(resource_name, params))
|
||||
self.assertEquals(rv.status_code, expected_code)
|
||||
|
@ -1126,7 +1133,7 @@ class TestGetImageChanges(ApiTestCase):
|
|||
|
||||
|
||||
class TestListAndDeleteTag(ApiTestCase):
|
||||
def test_listtagimagesanddeletetag(self):
|
||||
def test_listdeletecreateandmovetag(self):
|
||||
self.login(ADMIN_ACCESS_USER)
|
||||
|
||||
# List the images for prod.
|
||||
|
@ -1159,6 +1166,33 @@ class TestListAndDeleteTag(ApiTestCase):
|
|||
|
||||
self.assertEquals(staging_images, json['images'])
|
||||
|
||||
# Add a new tag to the staging image.
|
||||
self.putResponse(RepositoryTag,
|
||||
params=dict(repository=ADMIN_ACCESS_USER + '/complex', tag='sometag'),
|
||||
data=dict(image=staging_images[0]['id']),
|
||||
expected_code=201)
|
||||
|
||||
# Make sure the tag is present.
|
||||
json = self.getJsonResponse(RepositoryTagImages,
|
||||
params=dict(repository=ADMIN_ACCESS_USER + '/complex', tag='sometag'))
|
||||
|
||||
sometag_images = json['images']
|
||||
self.assertEquals(sometag_images, staging_images)
|
||||
|
||||
# Move the tag.
|
||||
self.putResponse(RepositoryTag,
|
||||
params=dict(repository=ADMIN_ACCESS_USER + '/complex', tag='sometag'),
|
||||
data=dict(image=staging_images[-1]['id']),
|
||||
expected_code=201)
|
||||
|
||||
# Make sure the tag has moved.
|
||||
json = self.getJsonResponse(RepositoryTagImages,
|
||||
params=dict(repository=ADMIN_ACCESS_USER + '/complex', tag='sometag'))
|
||||
|
||||
sometag_new_images = json['images']
|
||||
self.assertEquals(1, len(sometag_new_images))
|
||||
self.assertEquals(staging_images[-1], sometag_new_images[0])
|
||||
|
||||
|
||||
def test_deletesubtag(self):
|
||||
self.login(ADMIN_ACCESS_USER)
|
||||
|
|
Reference in a new issue