Merge "Added unit tests for test_artifacts.py"

This commit is contained in:
Jenkins 2016-09-23 14:39:11 +00:00 committed by Gerrit Code Review
commit e76f8b02bc
2 changed files with 420 additions and 2 deletions

View File

@ -13,6 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
data_fixtures = {
'/artifacts/sample_artifact?limit=20': {
'GET': (
@ -38,7 +39,7 @@ data_fixtures = {
]},
),
},
'/artifacts/sample_artifact&limit=2': {
'/artifacts/sample_artifact?page_size=2': {
'GET': (
{},
{'sample_artifact': [
@ -49,11 +50,144 @@ data_fixtures = {
},
{
'name': 'art2',
'id': 'e4f027d2-bff3-4084-a2ba-f31cb5e3067f',
'id': 'db721fb0-5b85-4738-9401-f161d541de5e',
'version': '0.0.0'
},
]},
),
},
'/artifacts/sample_artifact?limit=2': {
'GET': (
{},
{'sample_artifact': [
{
'name': 'art1',
'id': '3a4560a1-e585-443e-9b39-553b46ec92d1',
'version': '0.0.0'
},
{
'name': 'art2',
'id': 'db721fb0-5b85-4738-9401-f161d541de5e',
'version': '0.0.0'
}],
'next': '/artifacts/sample_artifact?'
'marker=e1090471-1d12-4935-a8d8-a9351266ece8&limit=2'},
),
},
'/artifacts/sample_artifact?'
'limit=2&marker=e1090471-1d12-4935-a8d8-a9351266ece8': {
'GET': (
{},
{'sample_artifact': [
{
'name': 'art3',
'id': 'e1090471-1d12-4935-a8d8-a9351266ece8',
'version': '0.0.0'
}
]},
),
},
'/artifacts/sample_artifact?limit=20&sort=name%3Adesc': {
'GET': (
{},
{'sample_artifact': [
{
'name': 'art2',
'id': 'e4f027d2-bff3-4084-a2ba-f31cb5e3067f',
'version': '0.0.0'
},
{
'name': 'art1',
'id': '3a4560a1-e585-443e-9b39-553b46ec92d1',
'version': '0.0.0'
}
],
'next': '/artifacts/sample_artifact?'
'marker=3a4560a1-e585-443e-9b39-553b46ec92d1&limit=20'},
),
},
'/artifacts/sample_artifact?limit=20&sort=name': {
'GET': (
{},
{'sample_artifact': [
{
'name': 'art2',
'id': 'e4f027d2-bff3-4084-a2ba-f31cb5e3067f',
'version': '0.0.0'
},
{
'name': 'art1',
'id': '3a4560a1-e585-443e-9b39-553b46ec92d1',
'version': '0.0.0'
}
],
'next': '/artifacts/sample_artifact?'
'marker=3a4560a1-e585-443e-9b39-553b46ec92d1&limit=20'},
),
},
'/artifacts/sample_artifact?'
'limit=20&marker=3a4560a1-e585-443e-9b39-553b46ec92d1': {
'GET': (
{},
{'sample_artifact': [
{
'name': 'art1',
'id': '3a4560a1-e585-443e-9b39-553b46ec92d1',
'version': '0.0.0'
}
]}
),
},
'/artifacts/sample_artifact': {
'POST': (
{},
{'sample_artifact': [
{
'name': 'art_1',
'id': '3a4560a1-e585-443e-9b39-553b46ec92a3',
'version': '0.0.0'
}
]}
),
},
'/artifacts/sample_artifact/3a4560a1-e585-443e-9b39-553b46ec92a3': {
'DELETE': (
{},
{}
),
'PATCH': (
{},
''
),
'GET': (
{},
{'sample_artifact': [
{
'name': 'art_1',
'id': '3a4560a1-e585-443e-9b39-553b46ec92a3',
'version': '0.0.0'
}
]}
)
},
'/artifacts/sample_artifact/3a4560a1-e585-443e-9b39-553b46ec92a3/blob': {
'PUT': (
{},
''
),
'GET': (
{'content-md5': '5cc4bebc-db27-11e1-a1eb-080027cbe205'},
{}
)
},
'/artifacts/sample_artifact/3a4560a1-e585-443e-9b39-553b46ec92a2/blob': {
'PUT': (
{},
''
),
'GET': (
{'content-md5': '5cc4bebc-db27-11e1-a1eb-080027cbe205'},
{}
)
},
}

View File

@ -15,6 +15,7 @@
import testtools
from glareclient.exc import HTTPBadRequest
from glareclient.tests.unit.v1 import fixtures
from glareclient.tests import utils
from glareclient.v1 import artifacts
@ -37,3 +38,286 @@ class TestController(testtools.TestCase):
self.assertEqual('e4f027d2-bff3-4084-a2ba-f31cb5e3067f',
artifacts[2]['id'])
self.assertEqual('art3', artifacts[2]['name'])
exp_headers = {}
expect_body = None
expect = [('GET', '/artifacts/sample_artifact?limit=20',
exp_headers,
expect_body)]
self.assertEqual(expect, self.api.calls)
def test_list_with_paginate(self):
artifacts = list(self.controller.list(type_name='sample_artifact',
page_size=2))
self.assertEqual('3a4560a1-e585-443e-9b39-553b46ec92d1',
artifacts[0]['id'])
self.assertEqual('art1', artifacts[0]['name'])
self.assertEqual('art2', artifacts[1]['name'])
self.assertEqual('db721fb0-5b85-4738-9401-f161d541de5e',
artifacts[1]['id'])
exp_headers = {}
expect_body = None
expect = [('GET', '/artifacts/sample_artifact?limit=2',
exp_headers,
expect_body),
('GET', '/artifacts/sample_artifact?limit=2'
'&marker=e1090471-1d12-4935-a8d8-a9351266ece8',
exp_headers,
expect_body)]
self.assertEqual(expect, self.api.calls)
def test_list_artifacts_limit(self):
artifacts = list(self.controller.list(type_name='sample_artifact',
limit=2))
self.assertEqual('3a4560a1-e585-443e-9b39-553b46ec92d1',
artifacts[0]['id'])
self.assertEqual('art1', artifacts[0]['name'])
self.assertEqual('art2', artifacts[1]['name'])
self.assertEqual('db721fb0-5b85-4738-9401-f161d541de5e',
artifacts[1]['id'])
exp_headers = {}
expect_body = None
expect = [('GET', '/artifacts/sample_artifact?limit=2',
exp_headers,
expect_body)]
self.assertEqual(expect, self.api.calls)
def test_list_artifact_sort_name(self):
artifacts = list(self.controller.list(type_name='sample_artifact',
sort='name:desc'))
self.assertEqual('e4f027d2-bff3-4084-a2ba-f31cb5e3067f',
artifacts[0]['id'])
self.assertEqual('art2', artifacts[0]['name'])
self.assertEqual('art1', artifacts[1]['name'])
self.assertEqual('3a4560a1-e585-443e-9b39-553b46ec92d1',
artifacts[1]['id'])
exp_headers = {}
expect_body = None
expect = [('GET', '/artifacts/sample_artifact?limit=20'
'&sort=name%3Adesc',
exp_headers,
expect_body),
('GET', '/artifacts/sample_artifact?limit=20'
'&marker=3a4560a1-e585-443e-9b39-553b46ec92d1',
exp_headers,
expect_body)]
self.assertEqual(expect, self.api.calls)
def test_list_artifact_sort_badrequest(self):
with testtools.ExpectedException(HTTPBadRequest):
list(self.controller.list(type_name='sample_artifact',
sort='name:KAK'))
def test_create_artifact(self):
properties = {
'name': 'art_1',
'type_name': 'sample_artifact'
}
art = self.controller.create(**properties)
self.assertEqual('art_1', art['sample_artifact'][0]['name'])
self.assertEqual('0.0.0', art['sample_artifact'][0]['version'])
self.assertIsNotNone(art['sample_artifact'][0]['id'])
exp_headers = {}
expect_body = [('name', 'art_1'), ('version', '0.0.0')]
expect = [('POST', '/artifacts/sample_artifact',
exp_headers,
expect_body)]
self.assertEqual(expect, self.api.calls)
def test_create_artifact_bad_prop(self):
properties = {
'name': 'art_1',
'type_name': 'bad_type_name',
}
with testtools.ExpectedException(KeyError):
self.controller.create(**properties)
def test_delete_artifact(self):
self.controller.delete(
artifact_id='3a4560a1-e585-443e-9b39-553b46ec92a3',
type_name='sample_artifact')
expect = [('DELETE', '/artifacts/sample_artifact/'
'3a4560a1-e585-443e-9b39-553b46ec92a3',
{},
None)]
self.assertEqual(expect, self.api.calls)
def test_update_prop(self):
art_id = '3a4560a1-e585-443e-9b39-553b46ec92a3'
param = {'type_name': 'sample_artifact',
'name': 'new_name'}
self.controller.update(artifact_id=art_id,
**param)
exp_headers = {
'Content-Type': 'application/json-patch+json'
}
expect_body = [{'path': '/name',
'value': 'new_name',
'op': 'add'}]
expect = [('PATCH', '/artifacts/sample_artifact/%s' % art_id,
exp_headers,
expect_body)]
self.assertEqual(expect, self.api.calls)
def test_remove_prop(self):
art_id = '3a4560a1-e585-443e-9b39-553b46ec92a3'
self.controller.update(artifact_id=art_id,
remove_props=['name'],
type_name='sample_artifact')
exp_headers = {
'Content-Type': 'application/json-patch+json'
}
expect_body = [{'path': '/name',
'op': 'remove'}]
expect = [('PATCH', '/artifacts/sample_artifact/%s' % art_id,
exp_headers,
expect_body)]
self.assertEqual(expect, self.api.calls)
def test_nontype_type_name(self):
with testtools.ExpectedException(HTTPBadRequest):
self.controller.create(name='art')
def test_active_artifact(self):
art_id = '3a4560a1-e585-443e-9b39-553b46ec92a3'
self.controller.active(artifact_id=art_id,
type_name='sample_artifact')
exp_headers = {
'Content-Type': 'application/json-patch+json'
}
expect_body = [{'path': '/status',
'value': 'active',
'op': 'add'}]
expect = [('PATCH', '/artifacts/sample_artifact/%s' % art_id,
exp_headers,
expect_body)]
self.assertEqual(expect, self.api.calls)
def test_deactivate_artifact(self):
art_id = '3a4560a1-e585-443e-9b39-553b46ec92a3'
self.controller.deactivate(artifact_id=art_id,
type_name='sample_artifact')
exp_headers = {
'Content-Type': 'application/json-patch+json'
}
expect_body = [{'path': '/status',
'value': 'deactivated',
'op': 'add'}]
expect = [('PATCH', '/artifacts/sample_artifact/%s' % art_id,
exp_headers,
expect_body)]
self.assertEqual(expect, self.api.calls)
def test_reactivate_artifact(self):
art_id = '3a4560a1-e585-443e-9b39-553b46ec92a3'
self.controller.reactivate(artifact_id=art_id,
type_name='sample_artifact')
exp_headers = {
'Content-Type': 'application/json-patch+json'
}
expect_body = [{'path': '/status',
'value': 'active',
'op': 'add'}]
expect = [('PATCH', '/artifacts/sample_artifact/%s' % art_id,
exp_headers,
expect_body)]
self.assertEqual(expect, self.api.calls)
def test_publish_artifact(self):
art_id = '3a4560a1-e585-443e-9b39-553b46ec92a3'
self.controller.publish(artifact_id=art_id,
type_name='sample_artifact')
exp_headers = {
'Content-Type': 'application/json-patch+json'
}
expect_body = [{'path': '/visibility',
'value': 'public',
'op': 'add'}]
expect = [('PATCH', '/artifacts/sample_artifact/%s' % art_id,
exp_headers,
expect_body)]
self.assertEqual(expect, self.api.calls)
def test_upload_blob(self):
art_id = '3a4560a1-e585-443e-9b39-553b46ec92a3'
self.controller.upload_blob(artifact_id=art_id,
type_name='sample_artifact',
blob_property='blob',
data='data')
exp_headers = {
'Content-Type': 'application/octet-stream'
}
expect = [('PUT', '/artifacts/sample_artifact/%s/blob' % art_id,
exp_headers,
'data')]
self.assertEqual(expect, self.api.calls)
def test_download_blob(self):
art_id = '3a4560a1-e585-443e-9b39-553b46ec92a3'
self.controller.download_blob(artifact_id=art_id,
type_name='sample_artifact',
blob_property='blob')
exp_headers = {}
expect = [('GET', '/artifacts/sample_artifact/%s/blob' % art_id,
exp_headers,
None)]
self.assertEqual(expect, self.api.calls)
def test_download_blob_with_checksum(self):
art_id = '3a4560a1-e585-443e-9b39-553b46ec92a2'
data = self.controller.download_blob(artifact_id=art_id,
type_name='sample_artifact',
blob_property='blob')
self.assertIsNotNone(data.iterable)
expect = [('GET', '/artifacts/sample_artifact/%s/blob' % art_id,
{},
None)]
self.assertEqual(expect, self.api.calls)
def test_download_blob_without_checksum(self):
art_id = '3a4560a1-e585-443e-9b39-553b46ec92a2'
data = self.controller.download_blob(artifact_id=art_id,
type_name='sample_artifact',
blob_property='blob',
do_checksum=False)
self.assertIsNotNone(data.iterable)
expect = [('GET', '/artifacts/sample_artifact/%s/blob' % art_id,
{},
None)]
self.assertEqual(expect, self.api.calls)
def test_get_artifact(self):
art_id = '3a4560a1-e585-443e-9b39-553b46ec92a3'
art = self.controller.get(artifact_id=art_id,
type_name='sample_artifact')
self.assertEqual(art_id, art['sample_artifact'][0]['id'])
self.assertEqual('art_1', art['sample_artifact'][0]['name'])