kiwi-el8/test/unit/builder/archive_test.py
Marcus Schäfer ce9b1ccc08
Added option to set the image target architecture
The option --target-arch allows to set the architecture
used to build the image. By default this is the host
architecture. Please note, if the specified architecture
name does not match the host architecture and is therefore
requesting a cross architecture image build, it's important
to understand that for this process to work a preparatory
step to support the image architecture and binary format
on the building host is required and is not considered a
responsibility of kiwi. There will be a followup effort
on providing a plugin for kiwi which should be used to
manage the needed binfmt settings for cross arch image
builds
2021-04-14 12:53:28 +02:00

77 lines
2.2 KiB
Python

from mock import patch
from pytest import raises
import sys
import mock
import kiwi
from ..test_helper import argv_kiwi_tests
from kiwi.defaults import Defaults
from kiwi.builder.archive import ArchiveBuilder
from kiwi.exceptions import KiwiArchiveSetupError
class TestArchiveBuilder:
def setup(self):
Defaults.set_platform_name('x86_64')
self.xml_state = mock.Mock()
self.xml_state.get_image_version = mock.Mock(
return_value='1.2.3'
)
self.xml_state.get_build_type_name = mock.Mock(
return_value='tbz'
)
self.xml_state.xml_data.get_name = mock.Mock(
return_value='myimage'
)
self.setup = mock.Mock()
kiwi.builder.archive.SystemSetup = mock.Mock(
return_value=self.setup
)
self.archive = ArchiveBuilder(
self.xml_state, 'target_dir', 'root_dir'
)
def test_create_unknown_archive_type(self):
xml_state = mock.Mock()
xml_state.get_build_type_name = mock.Mock(
return_value='bogus'
)
xml_state.get_image_version = mock.Mock(
return_value='1.2.3'
)
xml_state.xml_data.get_name = mock.Mock(
return_value='myimage'
)
archive = ArchiveBuilder(
xml_state, 'target_dir', 'root_dir'
)
with raises(KiwiArchiveSetupError):
archive.create()
@patch('kiwi.builder.archive.ArchiveTar')
def test_create(self, mock_tar):
Defaults.set_platform_name('x86_64')
archive = mock.Mock()
mock_tar.return_value = archive
self.archive.create()
mock_tar.assert_called_once_with(
'target_dir/myimage.x86_64-1.2.3.tar'
)
archive.create_xz_compressed.assert_called_once_with(
'root_dir', exclude=[
'image', '.profile', '.kconfig', 'run/*', 'tmp/*',
'.buildenv', 'var/cache/kiwi'
], xz_options=None
)
self.setup.export_package_verification.assert_called_once_with(
'target_dir'
)
self.setup.export_package_list.assert_called_once_with(
'target_dir'
)
def teardown(self):
sys.argv = argv_kiwi_tests