from nose.tools import * from mock import patch import mock from . import nose_helper from kiwi.exceptions import * from kiwi.storage.subformat.base import DiskFormatBase class TestDiskFormatBase(object): @patch('platform.machine') def setup(self, mock_machine): mock_machine.return_value = 'x86_64' xml_data = mock.Mock() xml_data.get_name = mock.Mock( return_value='some-disk-image' ) self.xml_state = mock.Mock() self.xml_state.xml_data = xml_data self.xml_state.get_image_version = mock.Mock( return_value='1.2.3' ) self.disk_format = DiskFormatBase( self.xml_state, 'root_dir', 'target_dir' ) @raises(NotImplementedError) def test_create_image_format(self): self.disk_format.create_image_format() @raises(KiwiFormatSetupError) def test_get_target_name_for_format_invalid_format(self): self.disk_format.get_target_name_for_format('foo') def test_post_init(self): self.disk_format.post_init({'option': 'unhandled'}) assert self.disk_format.custom_args == {} def test_get_qemu_option_list(self): custom_args = { 'subformat=format': None, 'adapter_type=type': None } assert self.disk_format.get_qemu_option_list(custom_args) == [ '-o', 'adapter_type=type', '-o', 'subformat=format' ] def test_get_target_name_for_format(self): assert self.disk_format.get_target_name_for_format('vhd') == \ 'target_dir/some-disk-image.x86_64-1.2.3.vhd' @patch('kiwi.storage.subformat.base.Path.wipe') @patch('os.path.exists') def test_destructor(self, mock_exists, mock_wipe): mock_exists.return_value = True self.disk_format.temp_image_dir = 'tmpdir' self.disk_format.__del__() self.disk_format.temp_image_dir = None mock_wipe.assert_called_once_with('tmpdir')