Merge "A small refactoring of the domain"

This commit is contained in:
Jenkins 2014-12-03 01:59:14 +00:00 committed by Gerrit Code Review
commit 01983ebcb5
5 changed files with 18 additions and 11 deletions

View File

@ -334,7 +334,7 @@ class RequestDeserializer(wsgi.JSONRequestDeserializer):
raise webob.exc.HTTPBadRequest(explanation=e.msg)
image = {}
properties = body
tags = properties.pop('tags', None)
tags = properties.pop('tags', [])
for key in self._base_properties:
try:
# NOTE(flwang): Instead of changing the _check_unexpected

View File

@ -75,6 +75,7 @@ class ImageFactory(object):
min_disk=0, min_ram=0, protected=False, owner=None,
disk_format=None, container_format=None,
extra_properties=None, tags=None, **other_args):
extra_properties = extra_properties or {}
self._check_readonly(other_args)
self._check_unexpected(other_args)
self._check_reserved(extra_properties)
@ -91,7 +92,7 @@ class ImageFactory(object):
min_ram=min_ram, protected=protected,
owner=owner, disk_format=disk_format,
container_format=container_format,
extra_properties=extra_properties, tags=tags)
extra_properties=extra_properties, tags=tags or [])
class Image(object):
@ -106,8 +107,8 @@ class Image(object):
'queued': ('saving', 'active', 'deleted'),
'saving': ('active', 'killed', 'deleted', 'queued'),
'active': ('queued', 'pending_delete', 'deleted'),
'killed': ('deleted'),
'pending_delete': ('deleted'),
'killed': ('deleted',),
'pending_delete': ('deleted',),
'deleted': (),
}
@ -128,9 +129,9 @@ class Image(object):
self._container_format = kwargs.pop('container_format', None)
self.size = kwargs.pop('size', None)
self.virtual_size = kwargs.pop('virtual_size', None)
extra_properties = kwargs.pop('extra_properties', None) or {}
extra_properties = kwargs.pop('extra_properties', {})
self.extra_properties = ExtraProperties(extra_properties)
self.tags = kwargs.pop('tags', None) or []
self.tags = kwargs.pop('tags', [])
if kwargs:
message = _("__init__() got unexpected keyword argument '%s'")
raise TypeError(message % kwargs.keys()[0])

View File

@ -136,7 +136,6 @@ class Image(object):
name = _proxy('base', 'name')
image_id = _proxy('base', 'image_id')
name = _proxy('base', 'name')
status = _proxy('base', 'status')
created_at = _proxy('base', 'created_at')
updated_at = _proxy('base', 'updated_at')

View File

@ -159,6 +159,13 @@ class TestImage(test_utils.BaseTestCase):
self.image.status = 'saving'
self.assertEqual('saving', self.image.status)
def test_set_incorrect_status(self):
self.image.status = 'saving'
self.image.status = 'killed'
self.assertRaises(
exception.InvalidImageStatusTransition,
setattr, self.image, 'status', 'delet')
def test_status_saving_without_disk_format(self):
self.image.disk_format = None
self.assertRaises(ValueError, setattr,

View File

@ -2008,7 +2008,7 @@ class TestImagesDeserializer(test_utils.BaseTestCase):
request = unit_test_utils.get_fake_request()
request.body = jsonutils.dumps({})
output = self.deserializer.create(request)
expected = {'image': {}, 'extra_properties': {}, 'tags': None}
expected = {'image': {}, 'extra_properties': {}, 'tags': []}
self.assertEqual(expected, output)
def test_create_invalid_id(self):
@ -2023,7 +2023,7 @@ class TestImagesDeserializer(test_utils.BaseTestCase):
output = self.deserializer.create(request)
expected = {'image': {'image_id': UUID4},
'extra_properties': {},
'tags': None}
'tags': []}
self.assertEqual(expected, output)
def test_create_no_body(self):
@ -2576,7 +2576,7 @@ class TestImagesDeserializerWithExtendedSchema(test_utils.BaseTestCase):
expected = {
'image': {'name': 'image-1'},
'extra_properties': {'pants': 'on'},
'tags': None,
'tags': [],
}
self.assertEqual(expected, output)
@ -2621,7 +2621,7 @@ class TestImagesDeserializerWithAdditionalProperties(test_utils.BaseTestCase):
output = self.deserializer.create(request)
expected = {'image': {},
'extra_properties': {'foo': 'bar'},
'tags': None}
'tags': []}
self.assertEqual(expected, output)
def test_create_with_numeric_property(self):