Add changes to Base AT structure

Fields 'status', 'visibility', 'updated_at' should be
declared as mutable (because their values can be changed
after activation).

Name must contain at least 1 character and cannot be an
empty string.

Change-Id: Iafdce6f24fd20d0db61a6f022ff2534b4d01e306
This commit is contained in:
Mike Fedosin 2017-07-04 17:13:48 +03:00
parent 405ae23beb
commit b0c2a93aa5
3 changed files with 10 additions and 7 deletions

View File

@ -77,12 +77,13 @@ class BaseArtifact(base.VersionedObject):
sortable=True, description="Artifact UUID."),
'name': Field(fields.StringField, required_on_activate=False,
nullable=False, sortable=True,
validators=[validators.MinStrLen(1)],
description="Artifact Name."),
'owner': Field(fields.StringField, system=True,
required_on_activate=False, nullable=False,
sortable=True, description="ID of user/tenant who "
"uploaded artifact."),
'status': Field(glare_fields.ArtifactStatusField,
'status': Field(glare_fields.ArtifactStatusField, mutable=True,
default=glare_fields.ArtifactStatusField.DRAFTED,
nullable=False, sortable=True,
description="Artifact status."),
@ -91,7 +92,7 @@ class BaseArtifact(base.VersionedObject):
description="Datetime when artifact has "
"been created."),
'updated_at': Field(fields.DateTimeField, system=True,
nullable=False, sortable=True,
nullable=False, sortable=True, mutable=True,
description="Datetime when artifact has "
"been updated last time."),
'activated_at': Field(fields.DateTimeField, system=True,
@ -118,7 +119,7 @@ class BaseArtifact(base.VersionedObject):
description="Key-value dict with useful "
"information about an artifact."),
'visibility': Field(fields.StringField, default='private',
nullable=False, sortable=True,
nullable=False, sortable=True, mutable=True,
validators=[validators.AllowedValues(
['private', 'public'])],
description="Artifact visibility that defines "

View File

@ -150,12 +150,10 @@ class TestList(base.TestArtifact):
self.get(url=url, status=400)
url = '/sample_artifact?name='
result = self.get(url=url)['sample_artifact']
self.assertEqual([], result)
self.get(url=url, status=400)
url = '/sample_artifact?name=eq:'
result = self.get(url=url)['sample_artifact']
self.assertEqual([], result)
self.get(url=url, status=400)
url = '/sample_artifact?tags=tag4,tag5'
result = sort_results(self.get(url=url)['sample_artifact'])

View File

@ -75,6 +75,7 @@ fixture_base_props = {
u'in'],
u'glareType': u'String',
u'maxLength': 255,
u'minLength': 1,
u'required_on_activate': False,
u'sortable': True,
u'type': u'string'},
@ -98,6 +99,7 @@ fixture_base_props = {
u'neq',
u'in'],
u'glareType': u'String',
u'mutable': True,
u'sortable': True,
u'type': u'string'},
u'tags': {u'default': [],
@ -118,6 +120,7 @@ fixture_base_props = {
u'filter_ops': [u'lt', u'gt'],
u'format': u'date-time',
u'glareType': u'DateTime',
u'mutable': True,
u'readOnly': True,
u'sortable': True,
u'type': u'string'},
@ -144,6 +147,7 @@ fixture_base_props = {
u'enum': [u'private', u'public'],
u'filter_ops': [u'eq', u'neq', u'in'],
u'glareType': u'String',
u'mutable': True,
u'sortable': True,
u'type': u'string'}
}