Update unit tests for Image model v1

The metatests were out of date.

Change-Id: I63fe55ee4a2a4e13d3236e5c0e733b74a2c44db9
This commit is contained in:
sw00 2013-08-15 17:16:44 +02:00
parent 09b6a73b77
commit 8bbec6fdf0
4 changed files with 71 additions and 90 deletions

View File

@ -56,7 +56,7 @@ class Image(AutoMarshallingModel):
@return: True if Image objects are equal, False otherwise
@rtype: bool
"""
return EqualityTools.are_objects_equal(self, other)
return EqualityTools.are_objects_equal(self, other, '_log')
def __ne__(self, other):
"""
@ -66,7 +66,7 @@ class Image(AutoMarshallingModel):
@return: True if Image objects are not equal, False otherwise
@rtype: bool
"""
return not self == other
return not self.__eq__(other)
def __repr__(self):
values = []

View File

@ -0,0 +1,8 @@
{"image": {
"name": "cirros-0.3.1-x86_64-uec",
"container_format": "ami",
"disk_format": "ami",
"checksum": "f8a2eeee2dc65b3d9b6e63678955bd83",
"id": "48dd25eb-ada4-47e7-8b8c-9547c9263b52",
"size": 25165824
}}

View File

@ -0,0 +1,26 @@
{"images": [
{
"name": "cirros-0.3.1-x86_64-uec",
"container_format": "ami",
"disk_format": "ami",
"checksum": "f8a2eeee2dc65b3d9b6e63678955bd83",
"id": "48dd25eb-ada4-47e7-8b8c-9547c9263b52",
"size": 25165824
},
{
"name": "cirros-0.3.1-x86_64-uec-ramdisk",
"container_format": "ari",
"disk_format": "ari",
"checksum": "69c33642f44ca552ba4bb8b66ad97e85",
"id": "ba740a49-2b27-45a2-9fc6-d142b44698a9",
"size": 3714968
},
{
"name": "cirros-0.3.1-x86_64-uec-kernel",
"container_format": "aki",
"disk_format": "aki",
"checksum": "c352f4e7121c6eae958bc1570324f17e",
"id": "4057ba81-47da-406f-aa92-09bcb5b6ddcc",
"size": 4955792
}
]}

View File

@ -1,59 +1,34 @@
import re
import json
import os
from copy import deepcopy
from datetime import datetime
from unittest import TestCase
from cloudcafe.images.v1_0.models.image import Image
from cloudcafe.images.v1_0.models.member import Member
from cloudcafe.images.v1.models.image import Image
from cloudcafe.images.v1.models.member import Member
class ImageTest(TestCase):
class TestImage(object):
"""@summary: Testing the behaviors of the image model..."""
@classmethod
def setUp(self):
self.raw_str = (
'{"images": '
'[{"image":{"status": "active", '
'"name": "precise", '
'"deleted": false, '
'"container_format": "bare", '
'"created_at": "2013-04-29T19:32:56", '
'"disk_format": "qcow2", '
'"updated_at": "2013-04-29T19:32:56", '
'"properties": {}, '
'"min_disk": 0, '
'"protected": false, '
'"id": "46fd5b5c-b925-4316-a878-63cbbe7f0030", '
'"checksum": null, '
'"owner": "bd7531a57d3a47538fae1b89c169b293", '
'"is_public": true, '
'"deleted_at": null, '
'"min_ram": 0, '
'"size": 252116992}}]}')
def setup_class(cls):
cls.raw_image_str = open(os.path.join(
os.path.dirname(__file__), '../data/image.json')).read()
cls.raw_images_str = open(os.path.join(
os.path.dirname(__file__), '../data/images.json')).read()
self.image_one = Image(
id="46fd5b5c-b925-4316-a878-63cbbe7f0030",
status="active",
name="precise",
deleted=False,
container_format="bare",
created_at=datetime.strptime("2013-04-29T19:32:56",
'%Y-%m-%dT%H:%M:%S'),
disk_format="qcow2",
updated_at=datetime.strptime("2013-04-29T19:32:56",
'%Y-%m-%dT%H:%M:%S'),
owner="bd7531a57d3a47538fae1b89c169b293",
protected=False,
min_ram=0,
checksum=None,
min_disk=0,
is_public=True,
deleted_at=None,
properties={},
size=252116992)
cls._dict = json.loads(cls.raw_image_str).get('image')
self.image_two = Image(
id="c7dd539e-5077-49e8-bc4d-0359ba051122",
cls.image_one = Image(
id_=cls._dict.get('id'),
name=cls._dict.get('name'),
container_format=cls._dict.get('container_format'),
checksum=cls._dict.get('checksum'),
size=cls._dict.get('size'),
disk_format=cls._dict.get('disk_format'))
cls.image_two = Image(
id_="c7dd539e-5077-49e8-bc4d-0359ba051122",
status="active",
name="precise",
deleted="False",
@ -71,46 +46,17 @@ class ImageTest(TestCase):
properties={},
size=252116992)
self._dict = {
'id': self.image_one.id,
'status': self.image_one.status,
'name': self.image_one.name,
'deleted': self.image_one.deleted,
'container_format': self.image_one.container_format,
'created_at': "2013-04-29T19:32:56",
'disk_format': self.image_one.disk_format,
'updated_at': "2013-04-29T19:32:56",
'owner': self.image_one.owner,
'protected': self.image_one.protected,
'min_ram': self.image_one.min_ram,
'checksum': self.image_one.checksum,
'min_disk': self.image_one.min_disk,
'is_public': self.image_one.is_public,
'deleted_at': self.image_one.deleted_at,
'properties': self.image_one.properties,
'size': self.image_one.size
}
def test_positive_equality_of_images(self):
assert self.image_one == self.image_one
assert not self.image_one == (self.image_two)
assert self.image_one == deepcopy(self.image_one)
def test_negative_equality_of_images(self):
assert self.image_one != self.image_two
assert not self.image_one != self.image_one
assert self.image_one != deepcopy(self.image_two)
def test_dict_to_image(self):
def test_dict_to_obj(self):
assert Image._dict_to_obj(self._dict) == self.image_one
def test_image_string_representations(self):
regex = r"""(?x)\[(\s?\w*\:\s(\d{4}-\d{2}-\d{2}\s\d{2}:
\d{2}:\d{2}\.\d{6}|[\w\d\-\{\}]*)\,?)*\s\]"""
matches = re.match(regex, self.image_one.__repr__())
assert matches is not None
def test_json_to_image(self):
assert len(Image._json_to_obj(self.raw_str)) == 1
assert Image._json_to_obj(self.raw_str)[0] == self.image_one
def test_json_to_obj(self):
assert Image._json_to_obj(self.raw_image_str) == self.image_one
def test_add_member_to_an_image(self):
member1 = Member(member_id='1')
@ -121,18 +67,19 @@ class ImageTest(TestCase):
assert member1 in self.image_one.members_list
def test_remove_member_from_an_image(self):
image = Image._json_to_obj(self.raw_image_str)
member1 = Member(member_id='1')
member2 = Member(member_id='2')
self.image_one.add_member(member1)
self.image_one.add_member(member2)
assert len(self.image_one.members_list) == 2
image.add_member(member1)
image.add_member(member2)
assert len(image.members_list) == 2
self.image_one.delete_member(member1)
image.delete_member(member1)
assert len(self.image_one.members_list) == 1
assert member1 not in self.image_one.members_list
assert member2 in self.image_one.members_list
assert len(image.members_list) == 1
assert member1 not in image.members_list
assert member2 in image.members_list
def test_replace_members_list_for_an_image(self):
member1 = Member(member_id='1')