nova/nova/tests/unit/virt/image/test_model.py

96 lines
3.2 KiB
Python

#
# Copyright (C) 2014 Red Hat, Inc
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
from nova import exception
from nova import test
from nova.virt.image import model as imgmodel
class ImageTest(test.NoDBTestCase):
def test_local_file_image(self):
img = imgmodel.LocalFileImage(
"/var/lib/libvirt/images/demo.qcow2",
imgmodel.FORMAT_QCOW2)
self.assertIsInstance(img, imgmodel.Image)
self.assertEqual("/var/lib/libvirt/images/demo.qcow2", img.path)
self.assertEqual(imgmodel.FORMAT_QCOW2, img.format)
def test_local_file_bad_format(self):
self.assertRaises(exception.InvalidImageFormat,
imgmodel.LocalFileImage,
"/var/lib/libvirt/images/demo.qcow2",
"jpeg")
def test_local_block_image(self):
img = imgmodel.LocalBlockImage(
"/dev/volgroup/demovol")
self.assertIsInstance(img, imgmodel.Image)
self.assertEqual("/dev/volgroup/demovol", img.path)
self.assertEqual(imgmodel.FORMAT_RAW, img.format)
def test_rbd_image(self):
img = imgmodel.RBDImage(
"demo",
"openstack",
"cthulu",
"braanes",
["rbd.example.org"])
self.assertIsInstance(img, imgmodel.Image)
self.assertEqual("demo", img.name)
self.assertEqual("openstack", img.pool)
self.assertEqual("cthulu", img.user)
self.assertEqual("braanes", img.password)
self.assertEqual(["rbd.example.org"], img.servers)
self.assertEqual(imgmodel.FORMAT_RAW, img.format)
def test_equality(self):
img1 = imgmodel.LocalFileImage(
"/var/lib/libvirt/images/demo.qcow2",
imgmodel.FORMAT_QCOW2)
img2 = imgmodel.LocalFileImage(
"/var/lib/libvirt/images/demo.qcow2",
imgmodel.FORMAT_QCOW2)
img3 = imgmodel.LocalFileImage(
"/var/lib/libvirt/images/demo.qcow2",
imgmodel.FORMAT_RAW)
img4 = imgmodel.LocalImage(
"/dev/mapper/vol",
imgmodel.FORMAT_RAW)
img5 = imgmodel.LocalBlockImage(
"/dev/mapper/vol")
self.assertEqual(img1, img1)
self.assertEqual(img1, img2)
self.assertEqual(img1.__hash__(), img2.__hash__())
self.assertNotEqual(img1, img3)
self.assertNotEqual(img4, img5)
def test_stringify(self):
img = imgmodel.RBDImage(
"demo",
"openstack",
"cthulu",
"braanes",
["rbd.example.org"])
msg = str(img)
self.assertEqual(msg.find("braanes"), -1)
self.assertNotEqual(msg.find("***"), -1)