sw00 c23ae6daf4 Improving Image _json_to_obj method
The previous method had a side-effect of actually deleting the entry
from object passed and therefore could not be used in a static context,
e.g. in a @classmethod

Change-Id: I0e560452f902db6c6b3bda73bc21b95c9b706cd6
2013-08-15 17:56:46 +02:00

99 lines
3.1 KiB
Python

import json
import os
from copy import deepcopy
from datetime import datetime
from cloudcafe.images.v1.models.image import Image
from cloudcafe.images.v1.models.member import Member
class TestImage(object):
"""@summary: Testing the behaviors of the image model..."""
@classmethod
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()
cls._dict = json.loads(cls.raw_image_str).get('image')
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",
container_format="cirros",
created_at=datetime.today(),
disk_format="qcow2",
updated_at=datetime.today(),
owner="bd7531a57d3a47538fae1b89c169b293",
protected="False",
min_ram=0,
checksum="",
min_disk=0,
is_public="True",
deleted_at=datetime.today(),
properties={},
size=252116992)
def test_positive_equality_of_images(self):
assert self.image_one == deepcopy(self.image_one)
def test_negative_equality_of_images(self):
assert self.image_one != deepcopy(self.image_two)
def test_dict_to_obj(self):
assert Image._dict_to_obj(self._dict) == 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')
self.image_one.add_member(member1)
assert len(self.image_one.members_list) == 1
assert member1 in self.image_one.members_list
def test_remove_member_from_an_image(self):
image = Image._dict_to_obj(self._dict)
member1 = Member(member_id='1')
member2 = Member(member_id='2')
image.add_member(member1)
image.add_member(member2)
assert len(image.members_list) == 2
image.delete_member(member1)
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')
member2 = Member(member_id='2')
member3 = Member(member_id='3')
members_list = [member1, member2]
image = self.image_one
image.members_list = members_list
image.replace_members_list([member3])
assert len(image.members_list) == 1
assert member1 not in image.members_list
assert member2 not in image.members_list
assert member3 in image.members_list