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 # License for the specific language governing permissions and limitations
# under the License. # under the License.
data_fixtures = { data_fixtures = {
'/artifacts/sample_artifact?limit=20': { '/artifacts/sample_artifact?limit=20': {
'GET': ( 'GET': (
@ -38,7 +39,7 @@ data_fixtures = {
]}, ]},
), ),
}, },
'/artifacts/sample_artifact&limit=2': { '/artifacts/sample_artifact?page_size=2': {
'GET': ( 'GET': (
{}, {},
{'sample_artifact': [ {'sample_artifact': [
@ -49,11 +50,144 @@ data_fixtures = {
}, },
{ {
'name': 'art2', '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' 'version': '0.0.0'
}], }],
'next': '/artifacts/sample_artifact?' 'next': '/artifacts/sample_artifact?'
'marker=e1090471-1d12-4935-a8d8-a9351266ece8&limit=2'}, '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 import testtools
from glareclient.exc import HTTPBadRequest
from glareclient.tests.unit.v1 import fixtures from glareclient.tests.unit.v1 import fixtures
from glareclient.tests import utils from glareclient.tests import utils
from glareclient.v1 import artifacts from glareclient.v1 import artifacts
@ -37,3 +38,286 @@ class TestController(testtools.TestCase):
self.assertEqual('e4f027d2-bff3-4084-a2ba-f31cb5e3067f', self.assertEqual('e4f027d2-bff3-4084-a2ba-f31cb5e3067f',
artifacts[2]['id']) artifacts[2]['id'])
self.assertEqual('art3', artifacts[2]['name']) 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'])