kiwi-el8/test/unit/tasks/base_test.py
Marcus Schäfer 09b7cdd442
Fixed unit tests for parallel invocation
With the change to allow the platform architecture to be
set application global, the unit tests might fail if tests
run in parallel and using different mock architectures
for the test. Thus test that runs depending on a platform
name needs to set the name in the test
2021-04-28 17:05:03 +02:00

83 lines
2.8 KiB
Python

import sys
from mock import patch
from pytest import (
raises, fixture
)
import logging
from ..test_helper import argv_kiwi_tests
import kiwi.xml_parse
from kiwi.tasks.base import CliTask
from kiwi.defaults import Defaults
from kiwi.exceptions import KiwiConfigFileNotFound
class TestCliTask:
@fixture(autouse=True)
def inject_fixtures(self, caplog):
self._caplog = caplog
@patch('kiwi.logger.Logger.setLogLevel')
@patch('kiwi.logger.Logger.set_logfile')
@patch('kiwi.logger.Logger.set_color_format')
@patch('kiwi.cli.Cli.show_and_exit_on_help_request')
@patch('kiwi.cli.Cli.load_command')
@patch('kiwi.cli.Cli.get_command_args')
@patch('kiwi.cli.Cli.get_global_args')
@patch('kiwi.tasks.base.RuntimeConfig')
def setup(
self, mock_runtime_config, mock_global_args, mock_command_args,
mock_load_command, mock_help_check, mock_color,
mock_setlog, mock_setlevel
):
Defaults.set_platform_name('x86_64')
mock_global_args.return_value = {
'--debug': True,
'--logfile': 'log',
'--color-output': True,
'--profile': ['vmxFlavour'],
'--type': None
}
mock_command_args.return_value = {
'system': True,
'prepare': True,
'--description': 'description',
'--root': 'directory'
}
self.task = CliTask()
mock_help_check.assert_called_once_with()
mock_load_command.assert_called_once_with()
mock_command_args.assert_called_once_with()
mock_global_args.assert_called_once_with()
mock_setlevel.assert_called_once_with(logging.DEBUG)
mock_setlog.assert_called_once_with('log')
mock_color.assert_called_once_with()
mock_runtime_config.assert_called_once_with()
def test_quadruple_token(self):
assert self.task.quadruple_token('a,b') == ['a', 'b', None, None]
@patch('kiwi.tasks.base.RuntimeChecker')
def test_load_xml_description(self, mock_runtime_checker):
self.task.load_xml_description('../data/description')
mock_runtime_checker.assert_called_once_with(self.task.xml_state)
assert self.task.config_file == '../data/description/config.xml'
assert isinstance(self.task.xml_data, kiwi.xml_parse.image)
assert self.task.xml_state.profiles == ['vmxFlavour']
def test_load_xml_description_buildservice(self):
self.task.load_xml_description('../data/description.buildservice')
assert self.task.config_file == \
'../data/description.buildservice/appliance.kiwi'
def test_load_xml_description_raises(self):
with raises(KiwiConfigFileNotFound):
self.task.load_xml_description('foo')
def teardown(self):
sys.argv = argv_kiwi_tests