Put the creation of a result object into the builder classes and return them from there. The builder instances knows about the results not the task instances
133 lines
4.7 KiB
Python
133 lines
4.7 KiB
Python
import sys
|
|
import mock
|
|
from nose.tools import *
|
|
from mock import patch
|
|
|
|
import kiwi
|
|
|
|
import nose_helper
|
|
|
|
from kiwi.system_create_task import SystemCreateTask
|
|
from kiwi.exceptions import *
|
|
|
|
|
|
class TestSystemCreateTask(object):
|
|
def setup(self):
|
|
sys.argv = [
|
|
sys.argv[0], '--profile', 'vmxFlavour', 'system', 'create',
|
|
'--root', '../data/root-dir', '--target-dir', 'some-target'
|
|
]
|
|
self.result = mock.Mock()
|
|
kiwi.system_create_task.Privileges = mock.Mock()
|
|
kiwi.system_create_task.Help = mock.Mock(
|
|
return_value=mock.Mock()
|
|
)
|
|
self.disk = mock.MagicMock()
|
|
self.disk.create = mock.Mock(
|
|
return_value=self.result
|
|
)
|
|
kiwi.system_create_task.DiskBuilder = mock.Mock(
|
|
return_value=self.disk
|
|
)
|
|
self.filesystem = mock.MagicMock()
|
|
self.filesystem.create = mock.Mock(
|
|
return_value=self.result
|
|
)
|
|
kiwi.system_create_task.FileSystemBuilder = mock.Mock(
|
|
return_value=self.filesystem
|
|
)
|
|
self.pxe = mock.MagicMock()
|
|
self.pxe.create = mock.Mock(
|
|
return_value=self.result
|
|
)
|
|
kiwi.system_create_task.PxeBuilder = mock.Mock(
|
|
return_value=self.pxe
|
|
)
|
|
self.task = SystemCreateTask()
|
|
|
|
def __init_command_args(self):
|
|
self.task.command_args = {}
|
|
self.task.command_args['help'] = False
|
|
self.task.command_args['create'] = False
|
|
self.task.command_args['--root'] = '../data/root-dir'
|
|
self.task.command_args['--target-dir'] = 'some-target'
|
|
|
|
@patch('kiwi.xml_state.XMLState.get_build_type_name')
|
|
def test_process_system_create_filesystem(self, mock_type):
|
|
mock_type.return_value = 'ext4'
|
|
self.__init_command_args()
|
|
self.task.command_args['create'] = True
|
|
self.task.process()
|
|
self.filesystem.create.assert_called_once_with()
|
|
self.result.print_results.assert_called_once_with()
|
|
|
|
@patch('kiwi.xml_state.XMLState.get_build_type_name')
|
|
def test_process_system_create_disk_with_install_media(self, mock_type):
|
|
self.disk.install_media = True
|
|
mock_type.return_value = 'oem'
|
|
self.__init_command_args()
|
|
self.task.command_args['create'] = True
|
|
self.task.process()
|
|
self.disk.create.assert_called_once_with()
|
|
self.result.print_results.assert_called_once_with()
|
|
|
|
@patch('kiwi.xml_state.XMLState.get_build_type_name')
|
|
def test_process_system_create_disk_with_disk_format(self, mock_type):
|
|
self.disk.install_media = False
|
|
self.disk.image_format = 'qcow2'
|
|
mock_type.return_value = 'oem'
|
|
self.__init_command_args()
|
|
self.task.command_args['create'] = True
|
|
self.task.process()
|
|
self.disk.create.assert_called_once_with()
|
|
self.result.print_results.assert_called_once_with()
|
|
|
|
@patch('kiwi.xml_state.XMLState.get_build_type_name')
|
|
@raises(KiwiNotImplementedError)
|
|
def test_process_system_create_live(self, mock_type):
|
|
mock_type.return_value = 'iso'
|
|
self.__init_command_args()
|
|
self.task.command_args['create'] = True
|
|
self.task.process()
|
|
|
|
@patch('kiwi.xml_state.XMLState.get_build_type_name')
|
|
def test_process_system_create_pxe(self, mock_type):
|
|
mock_type.return_value = 'pxe'
|
|
self.__init_command_args()
|
|
self.task.command_args['create'] = True
|
|
self.task.process()
|
|
self.pxe.create.assert_called_once_with()
|
|
|
|
@patch('kiwi.xml_state.XMLState.get_build_type_name')
|
|
@raises(KiwiNotImplementedError)
|
|
def test_process_system_create_archive(self, mock_type):
|
|
mock_type.return_value = 'tbz'
|
|
self.__init_command_args()
|
|
self.task.command_args['create'] = True
|
|
self.task.process()
|
|
|
|
@patch('kiwi.xml_state.XMLState.get_build_type_name')
|
|
@raises(KiwiNotImplementedError)
|
|
def test_process_system_create_container(self, mock_type):
|
|
mock_type.return_value = 'docker'
|
|
self.__init_command_args()
|
|
self.task.command_args['create'] = True
|
|
self.task.process()
|
|
|
|
@raises(KiwiRequestedTypeError)
|
|
@patch('kiwi.xml_state.XMLState.get_build_type_name')
|
|
def test_process_system_create_raise(self, mock_type):
|
|
mock_type.return_value = 'foo'
|
|
self.__init_command_args()
|
|
self.task.command_args['create'] = True
|
|
self.task.process()
|
|
|
|
def test_process_system_create_help(self):
|
|
self.__init_command_args()
|
|
self.task.command_args['help'] = True
|
|
self.task.command_args['create'] = True
|
|
self.task.process()
|
|
self.task.manual.show.assert_called_once_with(
|
|
'kiwi::system::create'
|
|
)
|