Merge "Fix creation of artifact with ':' in names."
This commit is contained in:
commit
ead2d541e4
|
@ -280,9 +280,9 @@ class BaseArtifact(base.VersionedObject):
|
||||||
:param is_public: flag that indicates to search artifact globally
|
:param is_public: flag that indicates to search artifact globally
|
||||||
"""
|
"""
|
||||||
if version is not None and name not in (None, ""):
|
if version is not None and name not in (None, ""):
|
||||||
filters = [('name', name), ('version', version)]
|
filters = [('name', 'eq:' + name), ('version', 'eq:' + version)]
|
||||||
if is_public is False:
|
if is_public is False:
|
||||||
filters.extend([('owner', context.tenant),
|
filters.extend([('owner', 'eq:' + context.tenant),
|
||||||
('visibility', 'private')])
|
('visibility', 'private')])
|
||||||
else:
|
else:
|
||||||
filters.extend([('visibility', 'public')])
|
filters.extend([('visibility', 'public')])
|
||||||
|
|
|
@ -21,10 +21,12 @@ class TestArtifactCreate(base.BaseTestArtifactAPI):
|
||||||
"""Test Glare artifact creation."""
|
"""Test Glare artifact creation."""
|
||||||
|
|
||||||
def test_create_artifact_minimal(self):
|
def test_create_artifact_minimal(self):
|
||||||
values = {'name': 'ttt'}
|
|
||||||
|
for name in ['ttt', 'tt:t', 'tt t', 'tt: t', 'tt,t']:
|
||||||
|
values = {'name': name}
|
||||||
|
|
||||||
res = self.controller.create(self.req, 'sample_artifact', values)
|
res = self.controller.create(self.req, 'sample_artifact', values)
|
||||||
self.assertEqual('ttt', res['name'])
|
self.assertEqual(name, res['name'])
|
||||||
self.assertEqual('0.0.0', res['version'])
|
self.assertEqual('0.0.0', res['version'])
|
||||||
self.assertEqual(self.users['user1']['tenant_id'], res['owner'])
|
self.assertEqual(self.users['user1']['tenant_id'], res['owner'])
|
||||||
self.assertEqual('drafted', res['status'])
|
self.assertEqual('drafted', res['status'])
|
||||||
|
@ -33,6 +35,24 @@ class TestArtifactCreate(base.BaseTestArtifactAPI):
|
||||||
self.assertEqual({}, res['metadata'])
|
self.assertEqual({}, res['metadata'])
|
||||||
self.assertEqual([], res['tags'])
|
self.assertEqual([], res['tags'])
|
||||||
|
|
||||||
|
def test_create_artifact_with_version(self):
|
||||||
|
values = {'name': 'name', 'version': '1.0'}
|
||||||
|
res = self.controller.create(self.req, 'sample_artifact', values)
|
||||||
|
self.assertEqual('name', res['name'])
|
||||||
|
self.assertEqual('1.0.0', res['version'])
|
||||||
|
|
||||||
|
values = {'name': 'name', 'version': '1:0'}
|
||||||
|
res = self.controller.create(self.req, 'sample_artifact', values)
|
||||||
|
self.assertEqual('1.0.0-0', res['version'])
|
||||||
|
|
||||||
|
values = {'name': 'name', 'version': '1:0:0'}
|
||||||
|
res = self.controller.create(self.req, 'sample_artifact', values)
|
||||||
|
self.assertEqual('1.0.0-0-0', res['version'])
|
||||||
|
|
||||||
|
values = {'name': 'name', 'version': '2:0-0'}
|
||||||
|
res = self.controller.create(self.req, 'sample_artifact', values)
|
||||||
|
self.assertEqual('2.0.0-0-0', res['version'])
|
||||||
|
|
||||||
def test_create_artifact_with_fields(self):
|
def test_create_artifact_with_fields(self):
|
||||||
values = {'name': 'ttt', 'version': '1.0',
|
values = {'name': 'ttt', 'version': '1.0',
|
||||||
'description': "Test Artifact", 'tags': ['a', 'a', 'b'],
|
'description': "Test Artifact", 'tags': ['a', 'a', 'b'],
|
||||||
|
@ -68,6 +88,10 @@ class TestArtifactCreate(base.BaseTestArtifactAPI):
|
||||||
self.assertRaises(exc.BadRequest, self.controller.create,
|
self.assertRaises(exc.BadRequest, self.controller.create,
|
||||||
self.req, 'sample_artifact', values)
|
self.req, 'sample_artifact', values)
|
||||||
|
|
||||||
|
values = {'name': 'test', 'version': ':'}
|
||||||
|
self.assertRaises(exc.BadRequest, self.controller.create,
|
||||||
|
self.req, 'sample_artifact', values)
|
||||||
|
|
||||||
values = {'name': '', 'version': '1.0'}
|
values = {'name': '', 'version': '1.0'}
|
||||||
self.assertRaises(exc.BadRequest, self.controller.create,
|
self.assertRaises(exc.BadRequest, self.controller.create,
|
||||||
self.req, 'sample_artifact', values)
|
self.req, 'sample_artifact', values)
|
||||||
|
|
|
@ -104,6 +104,10 @@ class TestArtifactUpdate(base.BaseTestArtifactAPI):
|
||||||
res = self.update_with_values(changes)
|
res = self.update_with_values(changes)
|
||||||
self.assertEqual('1.0', res['name'])
|
self.assertEqual('1.0', res['name'])
|
||||||
|
|
||||||
|
changes = [{'op': 'replace', 'path': '/name', 'value': "tt:t"}]
|
||||||
|
res = self.update_with_values(changes)
|
||||||
|
self.assertEqual('tt:t', res['name'])
|
||||||
|
|
||||||
# version
|
# version
|
||||||
changes = [{'op': 'replace', 'path': '/version', 'value': 2.0}]
|
changes = [{'op': 'replace', 'path': '/version', 'value': 2.0}]
|
||||||
res = self.update_with_values(changes)
|
res = self.update_with_values(changes)
|
||||||
|
@ -113,6 +117,10 @@ class TestArtifactUpdate(base.BaseTestArtifactAPI):
|
||||||
res = self.update_with_values(changes)
|
res = self.update_with_values(changes)
|
||||||
self.assertEqual('1.0.0-alpha', res['version'])
|
self.assertEqual('1.0.0-alpha', res['version'])
|
||||||
|
|
||||||
|
changes = [{'op': 'replace', 'path': '/version', 'value': '1:0'}]
|
||||||
|
res = self.update_with_values(changes)
|
||||||
|
self.assertEqual('1.0.0-0', res['version'])
|
||||||
|
|
||||||
def test_update_deleted_artifact(self):
|
def test_update_deleted_artifact(self):
|
||||||
# Enable delayed delete
|
# Enable delayed delete
|
||||||
self.config(delayed_delete=True)
|
self.config(delayed_delete=True)
|
||||||
|
|
Loading…
Reference in New Issue