Merge "Added unit tests for test_artifacts.py"
This commit is contained in:
commit
e76f8b02bc
@ -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'},
|
||||
{}
|
||||
)
|
||||
},
|
||||
}
|
||||
|
@ -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'])
|
||||
|
Loading…
Reference in New Issue
Block a user