kiwi-el8/test/unit/system_create_task_test.py
Marcus Schäfer 09daca60c0
KIWI - appliance builder next generation
a rewrite of the current kiwi from https://github.com/openSUSE/kiwi
2015-12-05 16:17:10 +01:00

115 lines
4.0 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'
]
kiwi.system_create_task.Privileges = mock.Mock()
kiwi.system_create_task.Help = mock.Mock(
return_value=mock.Mock()
)
self.disk = mock.MagicMock()
kiwi.system_create_task.DiskBuilder = mock.Mock(
return_value=self.disk
)
self.filesystem = mock.MagicMock()
kiwi.system_create_task.FileSystemBuilder = mock.Mock(
return_value=self.filesystem
)
self.pxe = mock.MagicMock()
kiwi.system_create_task.PxeBuilder = mock.Mock(
return_value=self.pxe
)
self.result = mock.MagicMock()
kiwi.system_create_task.Result = mock.Mock(
return_value=self.result
)
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(self, mock_type):
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'
)