diff --git a/doc/source/commands/kiwi.rst b/doc/source/commands/kiwi.rst index 03aeeffd..81c2b1cd 100644 --- a/doc/source/commands/kiwi.rst +++ b/doc/source/commands/kiwi.rst @@ -24,6 +24,7 @@ SYNOPSIS result [...] kiwi-ng [--profile=...] [--shared-cache-dir=] + [--target-arch=] [--type=] [--logfile=] [--debug] @@ -114,6 +115,16 @@ GLOBAL OPTIONS and their cache and meta data. The default location is set to /var/cache/kiwi +--target-arch= + + Specify the image architecture. By default the host architecture is + used as the image architecture. 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 not a responsibility of {kiwi}. + --type= Select image build type. The specified build type must be configured diff --git a/kiwi/cli.py b/kiwi/cli.py index 3c1f9af2..2be9c2af 100644 --- a/kiwi/cli.py +++ b/kiwi/cli.py @@ -30,6 +30,7 @@ usage: kiwi-ng -h | --help result [...] kiwi-ng [--profile=...] [--shared-cache-dir=] + [--target-arch=] [--type=] [--logfile=] [--debug] @@ -71,6 +72,16 @@ global options for services: image, system --type= image build type. If not set the default XML specified build type will be used + +global options for services: system + --target-arch= + set the image architecture. By default the host architecture is + used as the image architecture. 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 not a responsibility of kiwi. """ import logging import sys @@ -218,6 +229,8 @@ class Cli: value = os.sep + Defaults.get_shared_cache_location() if arg == '--shared-cache-dir' and value: Defaults.set_shared_cache_location(value) + if arg == '--target-arch' and value: + Defaults.set_platform_name(value) if arg == '--config' and value: Defaults.set_custom_runtime_config_file(value) result[arg] = value diff --git a/kiwi/defaults.py b/kiwi/defaults.py index 50433006..5599bb0a 100644 --- a/kiwi/defaults.py +++ b/kiwi/defaults.py @@ -41,6 +41,7 @@ IMAGE_METADATA_DIR = 'image' ROOT_VOLUME_NAME = 'LVRoot' SHARED_CACHE_DIR = '/var/cache/kiwi' CUSTOM_RUNTIME_CONFIG_FILE = None +PLATFORM_MACHINE = platform.machine() class Defaults: @@ -108,11 +109,32 @@ class Defaults: @staticmethod def get_platform_name(): - arch = platform.machine() + """ + Provides the machine architecture name as used by KIWI + + This is the architecture name as it is returned by 'uname -m' + with one exception for the 32bit x86 architecture which is + handled as 'ix86' in general + + :return: architecture name + + :rtype: str + """ + arch = PLATFORM_MACHINE if arch == 'i686' or arch == 'i586': arch = 'ix86' return arch + @staticmethod + def set_platform_name(name: str): + """ + Sets the platform architecture once + + :param str name: an architecture name + """ + global PLATFORM_MACHINE + PLATFORM_MACHINE = name + @staticmethod def is_x86_arch(arch): """ diff --git a/kiwi/solver/repository/base.py b/kiwi/solver/repository/base.py index f32c7f19..1e49f731 100644 --- a/kiwi/solver/repository/base.py +++ b/kiwi/solver/repository/base.py @@ -15,7 +15,6 @@ # You should have received a copy of the GNU General Public License # along with kiwi. If not, see # -import platform from base64 import b64encode from urllib.request import urlopen from urllib.request import Request @@ -27,6 +26,8 @@ import glob import os # project +import kiwi.defaults as defaults + from kiwi.exceptions import KiwiUriOpenError from kiwi.path import Path from kiwi.command import Command @@ -172,7 +173,7 @@ class SolverRepositoryBase: """ dir_listing_download = NamedTemporaryFile() self.download_from_repository( - platform.machine(), dir_listing_download.name + defaults.PLATFORM_MACHINE, dir_listing_download.name ) if os.path.isfile(dir_listing_download.name): with open(dir_listing_download.name) as listing: diff --git a/kiwi/solver/sat.py b/kiwi/solver/sat.py index 7463727e..bf83aa93 100644 --- a/kiwi/solver/sat.py +++ b/kiwi/solver/sat.py @@ -17,12 +17,13 @@ # import importlib import logging -import platform from collections import namedtuple from xml.etree import ElementTree from xml.dom import minidom # project +import kiwi.defaults as defaults + from kiwi.exceptions import ( KiwiSatSolverPluginError, KiwiSatSolverJobError, @@ -59,7 +60,7 @@ class Sat: def set_dist_type(self, dist, arch=None): if not arch: - arch = platform.machine() + arch = defaults.PLATFORM_MACHINE dist_types = { 'deb-x86_64': { 'pool_dist': self.solv.Pool.DISTTYPE_DEB, diff --git a/kiwi/xml_state.py b/kiwi/xml_state.py index 63201c49..36350252 100644 --- a/kiwi/xml_state.py +++ b/kiwi/xml_state.py @@ -21,7 +21,6 @@ from typing import ( import re import logging import copy -import platform from textwrap import dedent # project @@ -90,7 +89,7 @@ class XMLState: ): self.root_partition_uuid: Optional[str] = None self.root_filesystem_uuid: Optional[str] = None - self.host_architecture = platform.machine() + self.host_architecture = defaults.PLATFORM_MACHINE self.xml_data = xml_data self.profiles = self._used_profiles(profiles) self.build_type = self._build_type_section( diff --git a/test/unit/boot/image/base_test.py b/test/unit/boot/image/base_test.py index 7ef76974..638976e4 100644 --- a/test/unit/boot/image/base_test.py +++ b/test/unit/boot/image/base_test.py @@ -5,6 +5,9 @@ from mock import ( ) from pytest import raises +from kiwi.boot.image.base import BootImageBase +from kiwi.defaults import Defaults + from kiwi.exceptions import ( KiwiTargetDirectoryNotFound, KiwiBootImageDumpError, @@ -12,14 +15,11 @@ from kiwi.exceptions import ( KiwiDiskBootImageError ) -from kiwi.boot.image.base import BootImageBase - class TestBootImageBase: @patch('kiwi.boot.image.base.os.path.exists') - @patch('platform.machine') - def setup(self, mock_machine, mock_exists): - mock_machine.return_value = 'x86_64' + def setup(self, mock_exists): + Defaults.set_platform_name('x86_64') self.boot_names_type = namedtuple( 'boot_names_type', ['kernel_name', 'initrd_name'] ) diff --git a/test/unit/boot/image/builtin_kiwi_test.py b/test/unit/boot/image/builtin_kiwi_test.py index f25a4daf..e21ea3c4 100644 --- a/test/unit/boot/image/builtin_kiwi_test.py +++ b/test/unit/boot/image/builtin_kiwi_test.py @@ -8,18 +8,19 @@ import kiwi from ...test_helper import argv_kiwi_tests +from kiwi.defaults import Defaults from kiwi.boot.image.builtin_kiwi import BootImageKiwi from kiwi.xml_description import XMLDescription from kiwi.xml_state import XMLState + from kiwi.exceptions import KiwiConfigFileNotFound class TestBootImageKiwi: @patch('kiwi.boot.image.builtin_kiwi.mkdtemp') @patch('kiwi.boot.image.builtin_kiwi.os.path.exists') - @patch('platform.machine') - def setup(self, mock_machine, mock_exists, mock_mkdtemp): - mock_machine.return_value = 'x86_64' + def setup(self, mock_exists, mock_mkdtemp): + Defaults.set_platform_name('x86_64') mock_exists.return_value = True description = XMLDescription('../data/example_config.xml') self.xml_state = XMLState( diff --git a/test/unit/boot/image/dracut_test.py b/test/unit/boot/image/dracut_test.py index 0dad3586..b22e18b1 100644 --- a/test/unit/boot/image/dracut_test.py +++ b/test/unit/boot/image/dracut_test.py @@ -3,6 +3,7 @@ from mock import ( ) from collections import namedtuple +from kiwi.defaults import Defaults from kiwi.boot.image.dracut import BootImageDracut from kiwi.xml_description import XMLDescription from kiwi.xml_state import XMLState @@ -11,9 +12,8 @@ from kiwi.xml_state import XMLState class TestBootImageKiwi: @patch('kiwi.boot.image.dracut.Command.run') @patch('kiwi.boot.image.base.os.path.exists') - @patch('platform.machine') - def setup(self, mock_machine, mock_exists, mock_cmd): - mock_machine.return_value = 'x86_64' + def setup(self, mock_exists, mock_cmd): + Defaults.set_platform_name('x86_64') mock_exists.return_value = True command_type = namedtuple('command', ['output']) mock_cmd.return_value = command_type( diff --git a/test/unit/bootloader/config/base_test.py b/test/unit/bootloader/config/base_test.py index 0607703c..5c638671 100644 --- a/test/unit/bootloader/config/base_test.py +++ b/test/unit/bootloader/config/base_test.py @@ -6,6 +6,7 @@ from pytest import ( raises, fixture ) +from kiwi.defaults import Defaults from kiwi.xml_state import XMLState from kiwi.xml_description import XMLDescription from kiwi.exceptions import KiwiBootLoaderTargetError @@ -17,9 +18,8 @@ class TestBootLoaderConfigBase: def inject_fixtures(self, caplog): self._caplog = caplog - @patch('platform.machine') - def setup(self, mock_machine): - mock_machine.return_value = 'x86_64' + def setup(self): + Defaults.set_platform_name('x86_64') description = XMLDescription( '../data/example_config.xml' ) diff --git a/test/unit/bootloader/config/grub2_test.py b/test/unit/bootloader/config/grub2_test.py index 1d704620..9f743683 100644 --- a/test/unit/bootloader/config/grub2_test.py +++ b/test/unit/bootloader/config/grub2_test.py @@ -11,6 +11,7 @@ from pytest import ( import kiwi +from kiwi.defaults import Defaults from kiwi.xml_state import XMLState from kiwi.xml_description import XMLDescription from kiwi.bootloader.config.grub2 import BootLoaderConfigGrub2 @@ -34,10 +35,8 @@ class TestBootLoaderConfigGrub2: @patch('kiwi.bootloader.config.grub2.FirmWare') @patch('kiwi.bootloader.config.base.BootLoaderConfigBase.get_boot_theme') - @patch('platform.machine') - def setup( - self, mock_machine, mock_theme, mock_firmware - ): + def setup(self, mock_theme, mock_firmware): + Defaults.set_platform_name('x86_64') self.command_type = namedtuple( 'command_return_type', ['output'] ) @@ -66,7 +65,6 @@ class TestBootLoaderConfigGrub2: ['root_dir/usr/lib64/efi/grub.efi'], ['root_dir/boot/efi/EFI/DIST/fonts'] ] - mock_machine.return_value = 'x86_64' mock_theme.return_value = None kiwi.bootloader.config.grub2.Path = Mock() kiwi.bootloader.config.base.Path = Mock() @@ -119,21 +117,19 @@ class TestBootLoaderConfigGrub2: [self.bootloader.cmdline, 'failsafe-options'] ) - @patch('platform.machine') @patch('kiwi.bootloader.config.grub2.Path.which') - def test_post_init_grub2_boot_directory(self, mock_which, mock_machine): + def test_post_init_grub2_boot_directory(self, mock_which): + Defaults.set_platform_name('i686') xml_state = MagicMock() xml_state.build_type.get_firmware = Mock( return_value=None ) - mock_machine.return_value = 'i686' mock_which.return_value = None bootloader = BootLoaderConfigGrub2(xml_state, 'root_dir') assert bootloader.boot_directory_name == 'grub' - @patch('platform.machine') - def test_post_init_invalid_platform(self, mock_machine): - mock_machine.return_value = 'unsupported-arch' + def test_post_init_invalid_platform(self): + Defaults.set_platform_name('unsupported-arch') with raises(KiwiBootLoaderGrubPlatformError): BootLoaderConfigGrub2(Mock(), 'root_dir') @@ -143,19 +139,18 @@ class TestBootLoaderConfigGrub2: @patch('kiwi.bootloader.config.grub2.DataSync') @patch('kiwi.bootloader.config.grub2.Path.which') @patch('os.path.exists') - @patch('platform.machine') @patch('shutil.copy') def test_setup_install_boot_images_raises_no_efigrub( - self, mock_shutil_copy, mock_machine, mock_exists, mock_Path_which, + self, mock_shutil_copy, mock_exists, mock_Path_which, mock_sync, mock_command, mock_grub, mock_shim ): + Defaults.set_platform_name('x86_64') self.firmware.efi_mode = Mock( return_value='uefi' ) mock_Path_which.return_value = '/path/to/grub2-mkimage' mock_shim.return_value = 'shim.efi' mock_grub.return_value = None - mock_machine.return_value = 'x86_64' self.bootloader.theme = 'some-theme' self.os_exists['root_dir/usr/share/grub2/themes/some-theme'] = False self.os_exists['root_dir/boot/grub2/themes/some-theme'] = False @@ -175,8 +170,8 @@ class TestBootLoaderConfigGrub2: with raises(KiwiBootLoaderGrubSecureBootError): self.bootloader.setup_install_boot_images(self.mbrid) - @patch('platform.machine') - def test_post_init_ix86_platform(self, mock_machine): + def test_post_init_ix86_platform(self): + Defaults.set_platform_name('i686') xml_state = MagicMock() xml_state.get_initrd_system = Mock( return_value='dracut' @@ -184,60 +179,54 @@ class TestBootLoaderConfigGrub2: xml_state.build_type.get_firmware = Mock( return_value=None ) - mock_machine.return_value = 'i686' bootloader = BootLoaderConfigGrub2(xml_state, 'root_dir') assert bootloader.arch == 'ix86' - @patch('platform.machine') - def test_post_init_ppc_platform(self, mock_machine): + def test_post_init_ppc_platform(self): + Defaults.set_platform_name('ppc64') xml_state = MagicMock() xml_state.build_type.get_firmware = Mock( return_value=None ) - mock_machine.return_value = 'ppc64' bootloader = BootLoaderConfigGrub2(xml_state, 'root_dir') - assert bootloader.arch == mock_machine.return_value + assert bootloader.arch == 'ppc64' - @patch('platform.machine') - def test_post_init_s390_platform(self, mock_machine): + def test_post_init_s390_platform(self): + Defaults.set_platform_name('s390x') xml_state = MagicMock() xml_state.build_type.get_firmware = Mock( return_value=None ) - mock_machine.return_value = 's390x' bootloader = BootLoaderConfigGrub2(xml_state, 'root_dir') - assert bootloader.arch == mock_machine.return_value + assert bootloader.arch == 's390x' - @patch('platform.machine') - def test_post_init_arm64_platform(self, mock_machine): + def test_post_init_arm64_platform(self): + Defaults.set_platform_name('arm64') xml_state = MagicMock() xml_state.build_type.get_firmware = Mock( return_value=None ) - mock_machine.return_value = 'arm64' bootloader = BootLoaderConfigGrub2(xml_state, 'root_dir') - assert bootloader.arch == mock_machine.return_value + assert bootloader.arch == 'arm64' - @patch('platform.machine') - def test_post_init_riscv64_platform(self, mock_machine): + def test_post_init_riscv64_platform(self): + Defaults.set_platform_name('riscv64') xml_state = MagicMock() xml_state.build_type.get_firmware = Mock( return_value=None ) - mock_machine.return_value = 'riscv64' bootloader = BootLoaderConfigGrub2(xml_state, 'root_dir') - assert bootloader.arch == mock_machine.return_value + assert bootloader.arch == 'riscv64' @patch('os.path.exists') - @patch('platform.machine') - def test_post_init_dom0(self, mock_machine, mock_exists): + def test_post_init_dom0(self, mock_exists): + Defaults.set_platform_name('x86_64') self.state.is_xen_server = Mock( return_value=True ) self.state.is_xen_guest = Mock( return_value=False ) - mock_machine.return_value = 'x86_64' mock_exists.return_value = True self.bootloader.post_init(None) assert self.bootloader.multiboot is True @@ -245,15 +234,14 @@ class TestBootLoaderConfigGrub2: assert self.bootloader.xen_guest is False @patch('os.path.exists') - @patch('platform.machine') - def test_post_init_domU(self, mock_machine, mock_exists): + def test_post_init_domU(self, mock_exists): + Defaults.set_platform_name('x86_64') self.state.is_xen_server = Mock( return_value=False ) self.state.is_xen_guest = Mock( return_value=True ) - mock_machine.return_value = 'x86_64' mock_exists.return_value = True self.bootloader.post_init(None) assert self.bootloader.multiboot is False @@ -920,14 +908,13 @@ class TestBootLoaderConfigGrub2: self.bootloader.setup_disk_boot_images('0815') @patch('kiwi.bootloader.config.grub2.Command.run') - @patch('platform.machine') @patch('os.path.exists') @patch.object(BootLoaderConfigGrub2, '_copy_theme_data_to_boot_directory') def test_setup_disk_boot_images_raises_grub_modules_does_not_exist( - self, mock_copy_theme_data, mock_exists, mock_machine, mock_command + self, mock_copy_theme_data, mock_exists, mock_command ): + Defaults.set_platform_name('x86_64') mock_exists.return_value = True - mock_machine.return_value = 'x86_64' self.firmware.efi_mode = Mock( return_value=False ) @@ -941,15 +928,14 @@ class TestBootLoaderConfigGrub2: @patch('kiwi.bootloader.config.grub2.Path.which') @patch('kiwi.bootloader.config.grub2.DataSync') @patch('os.path.exists') - @patch('platform.machine') def test_setup_disk_boot_images_xen_guest_efi_image_needs_multiboot( - self, mock_machine, mock_exists, mock_sync, mock_Path_which, + self, mock_exists, mock_sync, mock_Path_which, mock_command, mock_get_boot_path, mock_get_unsigned_grub_loader ): + Defaults.set_platform_name('x86_64') mock_Path_which.return_value = '/path/to/grub2-mkimage' mock_get_boot_path.return_value = '/boot' mock_get_unsigned_grub_loader.return_value = None - mock_machine.return_value = 'x86_64' self.firmware.efi_mode = Mock( return_value='efi' ) @@ -1001,16 +987,15 @@ class TestBootLoaderConfigGrub2: @patch('kiwi.bootloader.config.grub2.Path.which') @patch('kiwi.bootloader.config.grub2.DataSync') @patch('os.path.exists') - @patch('platform.machine') def test_setup_disk_boot_images_bios_plus_efi( - self, mock_machine, mock_exists, mock_sync, mock_Path_which, + self, mock_exists, mock_sync, mock_Path_which, mock_command, mock_get_unsigned_grub_loader ): + Defaults.set_platform_name('x86_64') mock_Path_which.return_value = '/path/to/grub2-mkimage' mock_get_unsigned_grub_loader.return_value = None data = Mock() mock_sync.return_value = data - mock_machine.return_value = 'x86_64' self.firmware.efi_mode = Mock( return_value='efi' ) @@ -1126,13 +1111,12 @@ class TestBootLoaderConfigGrub2: @patch('kiwi.bootloader.config.grub2.Command.run') @patch('kiwi.bootloader.config.grub2.DataSync') @patch('os.path.exists') - @patch('platform.machine') def test_setup_disk_boot_images_xen_guest( - self, mock_machine, mock_exists, mock_sync, + self, mock_exists, mock_sync, mock_command, mock_get_boot_path ): + Defaults.set_platform_name('x86_64') mock_get_boot_path.return_value = '/boot' - mock_machine.return_value = 'x86_64' self.firmware.efi_mode = Mock( return_value=None ) @@ -1163,13 +1147,11 @@ class TestBootLoaderConfigGrub2: @patch('kiwi.bootloader.config.grub2.Command.run') @patch('kiwi.bootloader.config.grub2.DataSync') @patch('os.path.exists') - @patch('platform.machine') def test_setup_disk_boot_images_ppc( - self, mock_machine, mock_exists, mock_sync, - mock_command, mock_get_boot_path + self, mock_exists, mock_sync, mock_command, mock_get_boot_path ): + Defaults.set_platform_name('ppc64le') mock_get_boot_path.return_value = '/boot' - mock_machine.return_value = 'ppc64le' self.bootloader.arch = 'ppc64le' self.firmware.efi_mode = Mock( return_value=None @@ -1196,13 +1178,11 @@ class TestBootLoaderConfigGrub2: @patch('kiwi.bootloader.config.grub2.Command.run') @patch('kiwi.bootloader.config.grub2.DataSync') @patch('os.path.exists') - @patch('platform.machine') def test_setup_disk_boot_images_s390( - self, mock_machine, mock_exists, mock_sync, - mock_command, mock_get_boot_path + self, mock_exists, mock_sync, mock_command, mock_get_boot_path ): + Defaults.set_platform_name('s390x') mock_get_boot_path.return_value = '/boot' - mock_machine.return_value = 's390x' self.bootloader.arch = 's390x' self.firmware.efi_mode = Mock( return_value=None @@ -1228,15 +1208,14 @@ class TestBootLoaderConfigGrub2: @patch('kiwi.bootloader.config.base.BootLoaderConfigBase.get_boot_path') @patch('kiwi.bootloader.config.grub2.Command.run') @patch('os.path.exists') - @patch('platform.machine') @patch('os.chmod') @patch('os.stat') def test_setup_disk_boot_images_bios_plus_efi_secure_boot( - self, mock_stat, mock_chmod, mock_machine, - mock_exists, mock_command, mock_get_boot_path + self, mock_stat, mock_chmod, mock_exists, + mock_command, mock_get_boot_path ): + Defaults.set_platform_name('x86_64') mock_get_boot_path.return_value = '/boot' - mock_machine.return_value = 'x86_64' self.firmware.efi_mode = Mock( return_value='uefi' ) @@ -1271,19 +1250,18 @@ class TestBootLoaderConfigGrub2: @patch('kiwi.bootloader.config.grub2.Path.which') @patch('kiwi.bootloader.config.grub2.Command.run') @patch('os.path.exists') - @patch('platform.machine') @patch('glob.iglob') @patch('os.chmod') @patch('os.stat') def test_setup_disk_boot_images_bios_plus_efi_secure_boot_no_shim_install( - self, mock_stat, mock_chmod, mock_glob, mock_machine, + self, mock_stat, mock_chmod, mock_glob, mock_exists, mock_command, mock_which, mock_get_boot_path ): # we expect the copy of shim.efi and grub.efi from the fallback # code if no shim_install was found for building the disk image + Defaults.set_platform_name('x86_64') mock_get_boot_path.return_value = '/boot' mock_which.return_value = None - mock_machine.return_value = 'x86_64' self.firmware.efi_mode = Mock( return_value='uefi' ) @@ -1358,21 +1336,20 @@ class TestBootLoaderConfigGrub2: @patch('kiwi.bootloader.config.grub2.Path.which') @patch('kiwi.bootloader.config.grub2.Command.run') @patch('os.path.exists') - @patch('platform.machine') @patch('glob.iglob') @patch('os.chmod') @patch('os.stat') def test_setup_disk_boot_images_bios_plus_efi_secure_boot_no_shim_at_all( - self, mock_stat, mock_chmod, mock_glob, mock_machine, + self, mock_stat, mock_chmod, mock_glob, mock_exists, mock_command, mock_which, mock_get_boot_path ): # we expect the copy of grub.efi from the fallback # code if no shim was found at all self.glob_iglob[0] = [None] + Defaults.set_platform_name('x86_64') mock_get_boot_path.return_value = '/boot' mock_which.return_value = None - mock_machine.return_value = 'x86_64' self.firmware.efi_mode = Mock( return_value='uefi' ) @@ -1444,21 +1421,20 @@ class TestBootLoaderConfigGrub2: @patch('kiwi.bootloader.config.grub2.Path.create') @patch('kiwi.bootloader.config.grub2.DataSync') @patch('os.path.exists') - @patch('platform.machine') @patch('shutil.copy') def test_setup_install_boot_images_efi( - self, mock_shutil_copy, mock_machine, mock_exists, mock_sync, + self, mock_shutil_copy, mock_exists, mock_sync, mock_Path_create, mock_Path_which, mock_command, mock_get_grub_bios_core_loader, mock_get_unsigned_grub_loader, mock_get_boot_path ): + Defaults.set_platform_name('x86_64') mock_Path_which.return_value = '/path/to/grub2-mkimage' mock_get_boot_path.return_value = '/boot' mock_get_unsigned_grub_loader.return_value = None mock_get_grub_bios_core_loader.return_value = None data = Mock() mock_sync.return_value = data - mock_machine.return_value = 'x86_64' self.firmware.efi_mode = Mock( return_value='efi' ) @@ -1646,17 +1622,16 @@ class TestBootLoaderConfigGrub2: @patch.object(BootLoaderConfigGrub2, '_supports_bios_modules') @patch('kiwi.bootloader.config.grub2.Command.run') @patch('os.path.exists') - @patch('platform.machine') @patch('glob.iglob') @patch('os.chmod') @patch('os.stat') def test_setup_install_boot_images_efi_secure_boot( - self, mock_stat, mock_chmod, mock_glob, mock_machine, + self, mock_stat, mock_chmod, mock_glob, mock_exists, mock_command, mock_supports_bios_modules ): + Defaults.set_platform_name('x86_64') mock_supports_bios_modules.return_value = False self.os_exists['root_dir'] = True - mock_machine.return_value = 'x86_64' self.firmware.efi_mode = Mock( return_value='uefi' ) @@ -1726,13 +1701,13 @@ class TestBootLoaderConfigGrub2: @patch('kiwi.bootloader.config.grub2.Command.run') @patch('kiwi.bootloader.config.grub2.DataSync') @patch('os.path.exists') - @patch('platform.machine') @patch('glob.iglob') def test_setup_install_boot_images_with_theme_from_usr_share( - self, mock_glob, mock_machine, mock_exists, + self, mock_glob, mock_exists, mock_sync, mock_command, mock_supports_bios_modules, mock_get_grub_efi_font_directory ): + Defaults.set_platform_name('x86_64') mock_get_grub_efi_font_directory.return_value = None mock_supports_bios_modules.return_value = False mock_glob.return_value = [ @@ -1740,7 +1715,6 @@ class TestBootLoaderConfigGrub2: ] data = Mock() mock_sync.return_value = data - mock_machine.return_value = 'x86_64' self.bootloader.theme = 'some-theme' self.os_exists['lookup_path/usr/share/grub2'] = True self.os_exists['lookup_path/usr/lib/grub2'] = True @@ -1787,21 +1761,20 @@ class TestBootLoaderConfigGrub2: @patch('kiwi.bootloader.config.grub2.Command.run') @patch('kiwi.bootloader.config.grub2.DataSync') @patch('os.path.exists') - @patch('platform.machine') @patch('glob.iglob') @patch('kiwi.defaults.Defaults.get_grub_path') def test_setup_install_boot_images_with_theme_from_boot( - self, mock_get_grub_path, mock_glob, mock_machine, + self, mock_get_grub_path, mock_glob, mock_exists, mock_sync, mock_command, mock_get_grub_efi_font_directory ): + Defaults.set_platform_name('x86_64') mock_get_grub_efi_font_directory.return_value = None mock_glob.return_value = [ 'lookup_path/boot/grub2/themes/some-theme/background.png' ] data = Mock() mock_sync.return_value = data - mock_machine.return_value = 'x86_64' self.bootloader.theme = 'some-theme' self.os_exists['root_dir/boot/grub2/themes/some-theme'] = True @@ -1839,15 +1812,14 @@ class TestBootLoaderConfigGrub2: @patch('kiwi.bootloader.config.grub2.Path.which') @patch('kiwi.bootloader.config.grub2.DataSync') @patch('os.path.exists') - @patch('platform.machine') @patch('kiwi.defaults.Defaults.get_grub_path') @patch('shutil.copy') def test_setup_install_boot_images_with_theme_not_existing( - self, mock_shutil_copy, mock_get_grub_path, mock_machine, + self, mock_shutil_copy, mock_get_grub_path, mock_exists, mock_sync, mock_Path_which, mock_command ): + Defaults.set_platform_name('x86_64') mock_Path_which.return_value = '/path/to/grub2-mkimage' - mock_machine.return_value = 'x86_64' self.bootloader.theme = 'some-theme' mock_get_grub_path.return_value = 'theme-dir' diff --git a/test/unit/bootloader/config/isolinux_test.py b/test/unit/bootloader/config/isolinux_test.py index 4f8b2968..9cc04524 100644 --- a/test/unit/bootloader/config/isolinux_test.py +++ b/test/unit/bootloader/config/isolinux_test.py @@ -6,6 +6,7 @@ from mock import ( from pytest import ( raises, fixture ) +from kiwi.defaults import Defaults from kiwi.bootloader.config.isolinux import BootLoaderConfigIsoLinux from kiwi.exceptions import KiwiTemplateError @@ -17,9 +18,8 @@ class TestBootLoaderConfigIsoLinux: self._caplog = caplog @patch('os.path.exists') - @patch('platform.machine') - def setup(self, mock_machine, mock_exists): - mock_machine.return_value = 'x86_64' + def setup(self, mock_exists): + Defaults.set_platform_name('x86_64') mock_exists.return_value = True self.state = mock.Mock() self.state.get_build_type_bootloader_console = mock.Mock( @@ -93,19 +93,17 @@ class TestBootLoaderConfigIsoLinux: self.state, 'root_dir' ) - @patch('platform.machine') - def test_post_init_ix86_platform(self, mock_machine): - mock_machine.return_value = 'i686' + def test_post_init_ix86_platform(self): + Defaults.set_platform_name('i686') bootloader = BootLoaderConfigIsoLinux(self.state, 'root_dir') assert bootloader.arch == 'ix86' @patch('os.path.exists') - @patch('platform.machine') - def test_post_init_dom0(self, mock_machine, mock_exists): + def test_post_init_dom0(self, mock_exists): + Defaults.set_platform_name('x86_64') self.state.is_xen_server = mock.Mock( return_value=True ) - mock_machine.return_value = 'x86_64' mock_exists.return_value = True self.bootloader.post_init(None) assert self.bootloader.multiboot is True diff --git a/test/unit/bootloader/install/grub2_test.py b/test/unit/bootloader/install/grub2_test.py index 11eb182c..2506bd1f 100644 --- a/test/unit/bootloader/install/grub2_test.py +++ b/test/unit/bootloader/install/grub2_test.py @@ -15,9 +15,8 @@ from kiwi.exceptions import ( class TestBootLoaderInstallGrub2: - @patch('platform.machine') - def setup(self, mock_machine): - mock_machine.return_value = 'x86_64' + def setup(self): + Defaults.set_platform_name('x86_64') self.firmware = mock.Mock() self.firmware.efi_mode = mock.Mock( diff --git a/test/unit/builder/archive_test.py b/test/unit/builder/archive_test.py index 8c7312bc..fbe30a6f 100644 --- a/test/unit/builder/archive_test.py +++ b/test/unit/builder/archive_test.py @@ -6,14 +6,15 @@ import kiwi from ..test_helper import argv_kiwi_tests -from kiwi.exceptions import KiwiArchiveSetupError +from kiwi.defaults import Defaults from kiwi.builder.archive import ArchiveBuilder +from kiwi.exceptions import KiwiArchiveSetupError + class TestArchiveBuilder: - @patch('platform.machine') - def setup(self, mock_machine): - mock_machine.return_value = 'x86_64' + 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' @@ -50,9 +51,8 @@ class TestArchiveBuilder: archive.create() @patch('kiwi.builder.archive.ArchiveTar') - @patch('platform.machine') - def test_create(self, mock_machine, mock_tar): - mock_machine.return_value = 'x86_64' + def test_create(self, mock_tar): + Defaults.set_platform_name('x86_64') archive = mock.Mock() mock_tar.return_value = archive self.archive.create() diff --git a/test/unit/builder/container_test.py b/test/unit/builder/container_test.py index fe711272..3d948c41 100644 --- a/test/unit/builder/container_test.py +++ b/test/unit/builder/container_test.py @@ -5,14 +5,15 @@ from pytest import raises import mock import kiwi +from kiwi.defaults import Defaults from kiwi.builder.container import ContainerBuilder from kiwi.exceptions import KiwiContainerBuilderError class TestContainerBuilder: - @patch('platform.machine') @patch('os.path.exists') - def setup(self, mock_exists, mock_machine): + def setup(self, mock_exists): + Defaults.set_platform_name('x86_64') self.runtime_config = mock.Mock() self.runtime_config.get_max_size_constraint = mock.Mock( return_value=None @@ -20,7 +21,6 @@ class TestContainerBuilder: kiwi.builder.container.RuntimeConfig = mock.Mock( return_value=self.runtime_config ) - mock_machine.return_value = 'x86_64' self.xml_state = mock.Mock() self.xml_state.get_derived_from_image_uri.return_value = mock.Mock() self.container_config = { diff --git a/test/unit/builder/disk_test.py b/test/unit/builder/disk_test.py index 9d37f12d..2c58ba84 100644 --- a/test/unit/builder/disk_test.py +++ b/test/unit/builder/disk_test.py @@ -11,6 +11,7 @@ from collections import OrderedDict from collections import namedtuple from builtins import bytes +from kiwi.defaults import Defaults from kiwi.xml_description import XMLDescription from kiwi.xml_state import XMLState from kiwi.builder.disk import DiskBuilder @@ -25,9 +26,8 @@ from kiwi.exceptions import ( class TestDiskBuilder: @patch('os.path.exists') - @patch('platform.machine') - def setup(self, mock_machine, mock_exists): - mock_machine.return_value = 'x86_64' + def setup(self, mock_exists): + Defaults.set_platform_name('x86_64') def side_effect(filename): if filename.endswith('.config/kiwi/config.yml'): @@ -195,9 +195,8 @@ class TestDiskBuilder: def teardown(self): sys.argv = argv_kiwi_tests - @patch('platform.machine') - def test_setup_ix86(self, mock_machine): - mock_machine.return_value = 'i686' + def test_setup_ix86(self): + Defaults.set_platform_name('i686') description = XMLDescription( '../data/example_disk_config.xml' ) diff --git a/test/unit/builder/filesystem_test.py b/test/unit/builder/filesystem_test.py index b1b1194f..2159911a 100644 --- a/test/unit/builder/filesystem_test.py +++ b/test/unit/builder/filesystem_test.py @@ -8,15 +8,15 @@ from ..test_helper import argv_kiwi_tests import kiwi +from kiwi.defaults import Defaults from kiwi.exceptions import KiwiFileSystemSetupError from kiwi.builder.filesystem import FileSystemBuilder class TestFileSystemBuilder: @patch('kiwi.builder.filesystem.FileSystemSetup') - @patch('platform.machine') - def setup(self, mock_machine, mock_fs_setup): - mock_machine.return_value = 'x86_64' + def setup(self, mock_fs_setup): + Defaults.set_platform_name('x86_64') self.loop_provider = Mock() self.loop_provider.get_device = Mock( return_value='/dev/loop1' @@ -90,11 +90,10 @@ class TestFileSystemBuilder: @patch('kiwi.builder.filesystem.LoopDevice') @patch('kiwi.builder.filesystem.FileSystem.new') @patch('kiwi.builder.filesystem.FileSystemSetup') - @patch('platform.machine') def test_create_on_loop( - self, mock_machine, mock_fs_setup, mock_fs, mock_loop + self, mock_fs_setup, mock_fs, mock_loop ): - mock_machine.return_value = 'x86_64' + Defaults.set_platform_name('x86_64') mock_fs_setup.return_value = self.fs_setup mock_fs.return_value = self.filesystem mock_loop.return_value = self.loop_provider @@ -126,11 +125,10 @@ class TestFileSystemBuilder: @patch('kiwi.builder.filesystem.FileSystem.new') @patch('kiwi.builder.filesystem.DeviceProvider') - @patch('platform.machine') def test_create_on_file( - self, mock_machine, mock_provider, mock_fs + self, mock_provider, mock_fs ): - mock_machine.return_value = 'x86_64' + Defaults.set_platform_name('x86_64') provider = Mock() mock_provider.return_value = provider mock_fs.return_value = self.filesystem diff --git a/test/unit/builder/install_test.py b/test/unit/builder/install_test.py index 4f86ec1e..67a2a2c4 100644 --- a/test/unit/builder/install_test.py +++ b/test/unit/builder/install_test.py @@ -7,17 +7,17 @@ import kiwi from collections import namedtuple +from kiwi.defaults import Defaults from kiwi.builder.install import InstallImageBuilder from kiwi.exceptions import KiwiInstallBootImageError class TestInstallImageBuilder: - @patch('platform.machine') - def setup(self, mock_machine): + def setup(self): + Defaults.set_platform_name('x86_64') boot_names_type = namedtuple( 'boot_names_type', ['kernel_name', 'initrd_name'] ) - mock_machine.return_value = 'x86_64' self.setup = mock.Mock() kiwi.builder.install.SystemSetup = mock.Mock( return_value=self.setup @@ -92,9 +92,8 @@ class TestInstallImageBuilder: self.xml_state, 'root_dir', 'target_dir', self.boot_image_task ) - @patch('platform.machine') - def test_setup_ix86(self, mock_machine): - mock_machine.return_value = 'i686' + def test_setup_ix86(self): + Defaults.set_platform_name('i686') xml_state = mock.Mock() xml_state.xml_data.get_name = mock.Mock( return_value='result-image' diff --git a/test/unit/builder/live_test.py b/test/unit/builder/live_test.py index b7b9f8f3..0ba19b17 100644 --- a/test/unit/builder/live_test.py +++ b/test/unit/builder/live_test.py @@ -8,14 +8,14 @@ import kiwi from ..test_helper import argv_kiwi_tests +from kiwi.defaults import Defaults from kiwi.builder.live import LiveImageBuilder from kiwi.exceptions import KiwiLiveBootImageError class TestLiveImageBuilder: - @patch('platform.machine') - def setup(self, mock_machine): - mock_machine.return_value = 'x86_64' + def setup(self): + Defaults.set_platform_name('x86_64') self.firmware = mock.Mock() self.firmware.efi_mode = mock.Mock( @@ -114,8 +114,8 @@ class TestLiveImageBuilder: def teardown(self): sys.argv = argv_kiwi_tests - @patch('platform.machine') - def test_init_for_ix86_platform(self, mock_machine): + def test_init_for_ix86_platform(self): + Defaults.set_platform_name('i686') xml_state = mock.Mock() xml_state.xml_data.get_name = mock.Mock( return_value='some-image' @@ -123,7 +123,6 @@ class TestLiveImageBuilder: xml_state.get_image_version = mock.Mock( return_value='1.2.3' ) - mock_machine.return_value = 'i686' live_image = LiveImageBuilder( xml_state, 'target_dir', 'root_dir' ) diff --git a/test/unit/cli_test.py b/test/unit/cli_test.py index 31ee1873..600bb905 100644 --- a/test/unit/cli_test.py +++ b/test/unit/cli_test.py @@ -8,6 +8,8 @@ from pytest import ( from .test_helper import argv_kiwi_tests from kiwi.cli import Cli +from kiwi.defaults import Defaults + from kiwi.exceptions import ( KiwiCompatError, KiwiLoadCommandUndefined, @@ -38,6 +40,7 @@ class TestCli: 'result': False, '--profile': [], '--shared-cache-dir': '/var/cache/kiwi', + '--target-arch': None, '--help': False, '--config': 'config-file' } @@ -115,6 +118,17 @@ class TestCli: assert 'vmx type is now a subset of oem, --type set to oem' in \ self._caplog.text + def test_set_target_arch(self): + sys.argv = [ + sys.argv[0], + '--target-arch', 'artificial', 'system', 'build', + '--description', 'description', + '--target-dir', 'directory' + ] + cli = Cli() + cli.get_global_args() + assert Defaults.get_platform_name() == 'artificial' + def test_get_servicename_image(self): sys.argv = [ sys.argv[0], diff --git a/test/unit/container/setup/appx_test.py b/test/unit/container/setup/appx_test.py index f13d9de2..509c7037 100644 --- a/test/unit/container/setup/appx_test.py +++ b/test/unit/container/setup/appx_test.py @@ -5,6 +5,8 @@ from mock import ( ) from kiwi.container.setup.appx import ContainerSetupAppx +from kiwi.defaults import Defaults + from kiwi.exceptions import KiwiContainerSetupError @@ -42,9 +44,8 @@ class TestContainerSetupAppx: with raises(KiwiContainerSetupError): self.appx.setup() - @patch('platform.machine') - def test_setup(self, mock_machine): - mock_machine.return_value = 'x86_64' + def test_setup(self): + Defaults.set_platform_name('x86_64') with patch('builtins.open', create=True) as mock_open: mock_open.return_value = MagicMock(spec=io.IOBase) file_handle = mock_open.return_value.__enter__.return_value diff --git a/test/unit/defaults_test.py b/test/unit/defaults_test.py index 08ba7b57..169fe8d0 100644 --- a/test/unit/defaults_test.py +++ b/test/unit/defaults_test.py @@ -36,7 +36,8 @@ class TestDefaults: ) def test_get_preparer(self): - assert Defaults.get_preparer() == 'KIWI - https://github.com/OSInside/kiwi' + assert Defaults.get_preparer() == \ + 'KIWI - https://github.com/OSInside/kiwi' def test_get_publisher(self): assert Defaults.get_publisher() == 'SUSE LINUX GmbH' @@ -63,11 +64,10 @@ class TestDefaults: assert Defaults.get_live_dracut_modules_from_flag('dmsquash') == \ ['dmsquash-live', 'livenet'] - @patch('platform.machine') - def test_get_iso_boot_path(self, mock_machine): - mock_machine.return_value = 'i686' + def test_get_iso_boot_path(self): + Defaults.set_platform_name('i686') assert Defaults.get_iso_boot_path() == 'boot/ix86' - mock_machine.return_value = 'x86_64' + Defaults.set_platform_name('x86_64') assert Defaults.get_iso_boot_path() == 'boot/x86_64' @patch('kiwi.defaults.glob.iglob') diff --git a/test/unit/filesystem/squashfs_test.py b/test/unit/filesystem/squashfs_test.py index eb895614..560e4ed7 100644 --- a/test/unit/filesystem/squashfs_test.py +++ b/test/unit/filesystem/squashfs_test.py @@ -2,6 +2,7 @@ from mock import patch import mock +from kiwi.defaults import Defaults from kiwi.filesystem.squashfs import FileSystemSquashFs @@ -11,10 +12,9 @@ class TestFileSystemSquashfs: mock_exists.return_value = True self.squashfs = FileSystemSquashFs(mock.Mock(), 'root_dir') - @patch('platform.machine') @patch('kiwi.filesystem.squashfs.Command.run') - def test_create_on_file(self, mock_command, mock_machine): - mock_machine.return_value = 'x86_64' + def test_create_on_file(self, mock_command): + Defaults.set_platform_name('x86_64') self.squashfs.create_on_file('myimage', 'label') mock_command.assert_called_once_with( [ @@ -23,10 +23,9 @@ class TestFileSystemSquashfs: ] ) - @patch('platform.machine') @patch('kiwi.filesystem.squashfs.Command.run') - def test_create_on_file_exclude_data(self, mock_command, mock_machine): - mock_machine.return_value = 'ppc64le' + def test_create_on_file_exclude_data(self, mock_command): + Defaults.set_platform_name('ppc64le') self.squashfs.create_on_file('myimage', 'label', ['foo']) mock_command.assert_called_once_with( [ @@ -35,10 +34,9 @@ class TestFileSystemSquashfs: ] ) - @patch('platform.machine') @patch('kiwi.filesystem.squashfs.Command.run') - def test_create_on_file_unkown_arch(self, mock_command, mock_machine): - mock_machine.return_value = 'aarch64' + def test_create_on_file_unkown_arch(self, mock_command): + Defaults.set_platform_name('aarch64') self.squashfs.create_on_file('myimage', 'label') mock_command.assert_called_once_with( [ diff --git a/test/unit/firmware_test.py b/test/unit/firmware_test.py index 277d7df6..043905ac 100644 --- a/test/unit/firmware_test.py +++ b/test/unit/firmware_test.py @@ -1,16 +1,15 @@ -from mock import patch from pytest import raises import mock from kiwi.firmware import FirmWare +from kiwi.defaults import Defaults from kiwi.exceptions import KiwiNotImplementedError class TestFirmWare: - @patch('platform.machine') - def setup(self, mock_platform): - mock_platform.return_value = 'x86_64' + def setup(self): + Defaults.set_platform_name('x86_64') xml_state = mock.Mock() xml_state.build_type.get_firmware = mock.Mock() xml_state.build_type.get_firmware.return_value = 'bios' @@ -32,7 +31,7 @@ class TestFirmWare: xml_state.build_type.get_firmware.return_value = 'ec2' self.firmware_ec2 = FirmWare(xml_state) - mock_platform.return_value = 's390x' + Defaults.set_platform_name('s390x') xml_state.build_type.get_firmware.return_value = None xml_state.get_build_type_bootloader_targettype = mock.Mock() @@ -42,14 +41,14 @@ class TestFirmWare: xml_state.get_build_type_bootloader_targettype.return_value = 'SCSI' self.firmware_s390_scsi = FirmWare(xml_state) - mock_platform.return_value = 'ppc64le' + Defaults.set_platform_name('ppc64le') xml_state.build_type.get_firmware.return_value = 'ofw' self.firmware_ofw = FirmWare(xml_state) xml_state.build_type.get_firmware.return_value = 'opal' self.firmware_opal = FirmWare(xml_state) - mock_platform.return_value = 'arm64' + Defaults.set_platform_name('x86_64') def test_firmware_unsupported(self): xml_state = mock.Mock() diff --git a/test/unit/iso_tools/base_test.py b/test/unit/iso_tools/base_test.py index d70057a8..7cb26601 100644 --- a/test/unit/iso_tools/base_test.py +++ b/test/unit/iso_tools/base_test.py @@ -3,13 +3,13 @@ from mock import ( ) from pytest import raises +from kiwi.defaults import Defaults from kiwi.iso_tools.base import IsoToolsBase class TestIsoToolsBase: - @patch('platform.machine') - def setup(self, mock_machine): - mock_machine.return_value = 'x86_64' + def setup(self): + Defaults.set_platform_name('x86_64') self.iso_tool = IsoToolsBase('source-dir') def test_create_iso(self): diff --git a/test/unit/iso_tools/cdrtools_test.py b/test/unit/iso_tools/cdrtools_test.py index d612506c..ba2892a6 100644 --- a/test/unit/iso_tools/cdrtools_test.py +++ b/test/unit/iso_tools/cdrtools_test.py @@ -4,15 +4,15 @@ from mock import ( from pytest import raises from collections import namedtuple +from kiwi.defaults import Defaults from kiwi.iso_tools.cdrtools import IsoToolsCdrTools from kiwi.exceptions import KiwiIsoToolError class TestIsoToolsCdrTools: - @patch('platform.machine') - def setup(self, mock_machine): - mock_machine.return_value = 'x86_64' + def setup(self): + Defaults.set_platform_name('x86_64') self.iso_tool = IsoToolsCdrTools('source-dir') @patch('kiwi.iso_tools.cdrtools.Path.which') diff --git a/test/unit/iso_tools/iso_test.py b/test/unit/iso_tools/iso_test.py index e50119f9..6cd824fc 100644 --- a/test/unit/iso_tools/iso_test.py +++ b/test/unit/iso_tools/iso_test.py @@ -8,7 +8,7 @@ import struct import pytest import sys - +from kiwi.defaults import Defaults from kiwi.iso_tools.iso import Iso from kiwi.path import Path from tempfile import NamedTemporaryFile @@ -21,9 +21,8 @@ from kiwi.exceptions import ( class TestIso: - @patch('platform.machine') - def setup(self, mock_machine): - mock_machine.return_value = 'x86_64' + def setup(self): + Defaults.set_platform_name('x86_64') self.iso = Iso('source-dir') def test_create_header_end_marker(self): diff --git a/test/unit/iso_tools/xorriso_test.py b/test/unit/iso_tools/xorriso_test.py index 95035165..b6f1facd 100644 --- a/test/unit/iso_tools/xorriso_test.py +++ b/test/unit/iso_tools/xorriso_test.py @@ -1,15 +1,15 @@ from mock import patch from pytest import raises +from kiwi.defaults import Defaults from kiwi.iso_tools.xorriso import IsoToolsXorrIso from kiwi.exceptions import KiwiIsoToolError class TestIsoToolsXorrIso: - @patch('platform.machine') - def setup(self, mock_machine): - mock_machine.return_value = 'x86_64' + def setup(self): + Defaults.set_platform_name('x86_64') self.iso_tool = IsoToolsXorrIso('source-dir') @patch('kiwi.iso_tools.xorriso.Path.which') diff --git a/test/unit/runtime_checker_test.py b/test/unit/runtime_checker_test.py index c7fbcf49..39992b4e 100644 --- a/test/unit/runtime_checker_test.py +++ b/test/unit/runtime_checker_test.py @@ -8,6 +8,7 @@ from .test_helper import argv_kiwi_tests import kiwi +from kiwi.defaults import Defaults from kiwi.xml_state import XMLState from kiwi.xml_description import XMLDescription from kiwi.runtime_checker import RuntimeChecker @@ -227,13 +228,12 @@ class TestRuntimeChecker: with raises(KiwiRuntimeError): runtime_checker.check_container_tool_chain_installed() - @patch('platform.machine') @patch('kiwi.runtime_checker.Defaults.get_boot_image_description_path') def test_check_consistent_kernel_in_boot_and_system_image( - self, mock_boot_path, mock_machine + self, mock_boot_path ): + Defaults.set_platform_name('x86_64') mock_boot_path.return_value = '../data' - mock_machine.return_value = 'x86_64' xml_state = XMLState( self.description.load(), ['vmxFlavour'], 'oem' ) @@ -372,11 +372,8 @@ class TestRuntimeChecker: with raises(KiwiRuntimeError): runtime_checker.check_image_version_provided() - @patch('platform.machine') - def test_check_architecture_supports_iso_firmware_setup( - self, mock_machine - ): - mock_machine.return_value = 'aarch64' + def test_check_architecture_supports_iso_firmware_setup(self): + Defaults.set_platform_name('aarch64') xml_state = XMLState( self.description.load(), ['vmxFlavour'], 'iso' ) @@ -390,13 +387,12 @@ class TestRuntimeChecker: with raises(KiwiRuntimeError): runtime_checker.check_architecture_supports_iso_firmware_setup() - @patch('platform.machine') @patch('kiwi.runtime_checker.Path.which') def test_check_syslinux_installed_if_isolinux_is_used( - self, mock_Path_which, mock_machine + self, mock_Path_which ): + Defaults.set_platform_name('x86_64') mock_Path_which.return_value = None - mock_machine.return_value = 'x86_64' xml_state = XMLState( self.description.load(), ['vmxFlavour'], 'iso' ) diff --git a/test/unit/solver/repository/base_test.py b/test/unit/solver/repository/base_test.py index ad3d0ba1..5da0f002 100644 --- a/test/unit/solver/repository/base_test.py +++ b/test/unit/solver/repository/base_test.py @@ -8,6 +8,7 @@ import mock from lxml import etree +from kiwi.defaults import Defaults from kiwi.solver.repository.base import SolverRepositoryBase from kiwi.exceptions import KiwiUriOpenError @@ -67,13 +68,12 @@ class TestSolverRepositoryBase: @patch('kiwi.solver.repository.base.NamedTemporaryFile') @patch.object(SolverRepositoryBase, 'download_from_repository') - @patch('platform.machine') @patch('os.path.isfile') def test__get_pacman_packages( - self, mock_os_isfile, mock_machine, mock_download, mock_tmpfile + self, mock_os_isfile, mock_download, mock_tmpfile ): + Defaults.set_platform_name('x86_64') mock_os_isfile.return_value = True - mock_machine.return_value = 'x86_64' tmpfile = mock.Mock() tmpfile.name = 'tmpfile' mock_tmpfile.return_value = tmpfile diff --git a/test/unit/solver/sat_test.py b/test/unit/solver/sat_test.py index 7d43bec0..97740afe 100644 --- a/test/unit/solver/sat_test.py +++ b/test/unit/solver/sat_test.py @@ -6,6 +6,7 @@ from pytest import ( raises, fixture ) +from kiwi.defaults import Defaults from kiwi.solver.sat import Sat from kiwi.exceptions import ( @@ -49,16 +50,14 @@ class TestSat: with raises(KiwiSatSolverPluginError): Sat() - @patch('platform.machine') - def test_set_dist_type_raises(self, mock_platform_machine): - mock_platform_machine.return_value = 'x86_64' + def test_set_dist_type_raises(self): + Defaults.set_platform_name('x86_64') self.sat.pool.setdisttype.return_value = -1 with raises(KiwiSatSolverPluginError): self.sat.set_dist_type('deb') - @patch('platform.machine') - def test_set_dist_type_deb(self, mock_platform_machine): - mock_platform_machine.return_value = 'x86_64' + def test_set_dist_type_deb(self): + Defaults.set_platform_name('x86_64') self.sat.pool.setdisttype.return_value = 0 self.sat.set_dist_type('deb') self.sat.pool.setdisttype.assert_called_once_with( diff --git a/test/unit/storage/setup_test.py b/test/unit/storage/setup_test.py index 906f1d7b..4f242ff8 100644 --- a/test/unit/storage/setup_test.py +++ b/test/unit/storage/setup_test.py @@ -16,9 +16,8 @@ class TestDiskSetup: def inject_fixtures(self, caplog): self._caplog = caplog - @patch('platform.machine') - def setup(self, mock_machine): - mock_machine.return_value = 'x86_64' + def setup(self): + Defaults.set_platform_name('x86_64') self.size = mock.Mock() self.size.customize = mock.Mock( return_value=42 @@ -65,7 +64,7 @@ class TestDiskSetup: XMLState(description.load()), 'root_dir' ) - mock_machine.return_value = 'ppc64' + Defaults.set_platform_name('ppc64') description = XMLDescription( '../data/example_ppc_disk_size_config.xml' ) @@ -73,7 +72,7 @@ class TestDiskSetup: XMLState(description.load()), 'root_dir' ) - mock_machine.return_value = 'arm64' + Defaults.set_platform_name('arm64') description = XMLDescription( '../data/example_arm_disk_size_config.xml' ) diff --git a/test/unit/storage/subformat/base_test.py b/test/unit/storage/subformat/base_test.py index 158a1fb7..21cf3d76 100644 --- a/test/unit/storage/subformat/base_test.py +++ b/test/unit/storage/subformat/base_test.py @@ -3,6 +3,7 @@ from mock import ( ) from pytest import raises +from kiwi.defaults import Defaults from kiwi.storage.subformat.base import DiskFormatBase import kiwi @@ -14,10 +15,9 @@ from kiwi.exceptions import ( class TestDiskFormatBase: - @patch('platform.machine') @patch('kiwi.storage.subformat.base.DiskFormatBase.post_init') - def setup(self, mock_post_init, mock_machine): - mock_machine.return_value = 'x86_64' + def setup(self, mock_post_init): + Defaults.set_platform_name('x86_64') xml_data = Mock() xml_data.get_name = Mock( return_value='some-disk-image' diff --git a/test/unit/storage/subformat/ova_test.py b/test/unit/storage/subformat/ova_test.py index f6cbfd28..fff5a249 100644 --- a/test/unit/storage/subformat/ova_test.py +++ b/test/unit/storage/subformat/ova_test.py @@ -3,6 +3,7 @@ from mock import ( ) from pytest import raises +from kiwi.defaults import Defaults from kiwi.storage.subformat.ova import DiskFormatOva import kiwi @@ -14,8 +15,8 @@ from kiwi.exceptions import ( class TestDiskFormatOva: - @patch('platform.machine') - def setup(self, mock_machine): + def setup(self): + Defaults.set_platform_name('x86_64') self.context_manager_mock = Mock() self.file_mock = Mock() self.enter_mock = Mock() @@ -23,7 +24,6 @@ class TestDiskFormatOva: self.enter_mock.return_value = self.file_mock setattr(self.context_manager_mock, '__enter__', self.enter_mock) setattr(self.context_manager_mock, '__exit__', self.exit_mock) - mock_machine.return_value = 'x86_64' xml_data = Mock() xml_data.get_name = Mock( return_value='some-disk-image' diff --git a/test/unit/storage/subformat/qcow2_test.py b/test/unit/storage/subformat/qcow2_test.py index 0f02a69e..97a7a9f9 100644 --- a/test/unit/storage/subformat/qcow2_test.py +++ b/test/unit/storage/subformat/qcow2_test.py @@ -4,13 +4,13 @@ from mock import ( import kiwi +from kiwi.defaults import Defaults from kiwi.storage.subformat.qcow2 import DiskFormatQcow2 class TestDiskFormatQcow2: - @patch('platform.machine') - def setup(self, mock_machine): - mock_machine.return_value = 'x86_64' + def setup(self): + Defaults.set_platform_name('x86_64') xml_data = Mock() xml_data.get_name = Mock( return_value='some-disk-image' diff --git a/test/unit/storage/subformat/vdi_test.py b/test/unit/storage/subformat/vdi_test.py index bb210e9b..d8cf5b6c 100644 --- a/test/unit/storage/subformat/vdi_test.py +++ b/test/unit/storage/subformat/vdi_test.py @@ -3,13 +3,13 @@ from mock import patch from mock import Mock import kiwi +from kiwi.defaults import Defaults from kiwi.storage.subformat.vdi import DiskFormatVdi class TestDiskFormatVdi: - @patch('platform.machine') - def setup(self, mock_machine): - mock_machine.return_value = 'x86_64' + def setup(self): + Defaults.set_platform_name('x86_64') xml_data = Mock() xml_data.get_name = Mock( return_value='some-disk-image' diff --git a/test/unit/storage/subformat/vhd_test.py b/test/unit/storage/subformat/vhd_test.py index 28937801..d7435d1d 100644 --- a/test/unit/storage/subformat/vhd_test.py +++ b/test/unit/storage/subformat/vhd_test.py @@ -4,13 +4,13 @@ from mock import ( import kiwi +from kiwi.defaults import Defaults from kiwi.storage.subformat.vhd import DiskFormatVhd class TestDiskFormatVhd: - @patch('platform.machine') - def setup(self, mock_machine): - mock_machine.return_value = 'x86_64' + def setup(self): + Defaults.set_platform_name('x86_64') xml_data = Mock() xml_data.get_name = Mock( return_value='some-disk-image' diff --git a/test/unit/storage/subformat/vhdfixed_test.py b/test/unit/storage/subformat/vhdfixed_test.py index 9711b49e..892518ab 100644 --- a/test/unit/storage/subformat/vhdfixed_test.py +++ b/test/unit/storage/subformat/vhdfixed_test.py @@ -7,15 +7,15 @@ from pytest import raises import kiwi +from kiwi.defaults import Defaults from kiwi.storage.subformat.vhdfixed import DiskFormatVhdFixed from kiwi.exceptions import KiwiVhdTagError class TestDiskFormatVhdFixed: - @patch('platform.machine') - def setup(self, mock_machine): - mock_machine.return_value = 'x86_64' + def setup(self): + Defaults.set_platform_name('x86_64') xml_data = Mock() xml_data.get_name = Mock( return_value='some-disk-image' diff --git a/test/unit/storage/subformat/vhdx_test.py b/test/unit/storage/subformat/vhdx_test.py index 61e273ee..102796f5 100644 --- a/test/unit/storage/subformat/vhdx_test.py +++ b/test/unit/storage/subformat/vhdx_test.py @@ -4,13 +4,13 @@ from mock import ( import kiwi +from kiwi.defaults import Defaults from kiwi.storage.subformat.vhdx import DiskFormatVhdx class TestDiskFormatVhdx: - @patch('platform.machine') - def setup(self, mock_machine): - mock_machine.return_value = 'x86_64' + def setup(self): + Defaults.set_platform_name('x86_64') xml_data = Mock() xml_data.get_name = Mock( return_value='some-disk-image' diff --git a/test/unit/storage/subformat/vmdk_test.py b/test/unit/storage/subformat/vmdk_test.py index cff87d28..d872d46c 100644 --- a/test/unit/storage/subformat/vmdk_test.py +++ b/test/unit/storage/subformat/vmdk_test.py @@ -6,14 +6,15 @@ from pytest import raises import kiwi +from kiwi.defaults import Defaults from kiwi.storage.subformat.vmdk import DiskFormatVmdk from kiwi.exceptions import KiwiTemplateError class TestDiskFormatVmdk: - @patch('platform.machine') - def setup(self, mock_machine): + def setup(self): + Defaults.set_platform_name('x86_64') self.context_manager_mock = Mock() self.file_mock = Mock() self.enter_mock = Mock() @@ -21,7 +22,6 @@ class TestDiskFormatVmdk: self.enter_mock.return_value = self.file_mock setattr(self.context_manager_mock, '__enter__', self.enter_mock) setattr(self.context_manager_mock, '__exit__', self.exit_mock) - mock_machine.return_value = 'x86_64' xml_data = Mock() xml_data.get_name = Mock( return_value='some-disk-image' diff --git a/test/unit/system/setup_test.py b/test/unit/system/setup_test.py index e5f58315..9d442e68 100644 --- a/test/unit/system/setup_test.py +++ b/test/unit/system/setup_test.py @@ -28,15 +28,14 @@ class TestSystemSetup: def inject_fixtures(self, caplog): self._caplog = caplog - @patch('platform.machine') @patch('kiwi.system.setup.RuntimeConfig') - def setup(self, mock_RuntimeConfig, mock_machine): + def setup(self, mock_RuntimeConfig): + Defaults.set_platform_name('x86_64') self.runtime_config = Mock() self.runtime_config.get_package_changes = Mock( return_value=True ) mock_RuntimeConfig.return_value = self.runtime_config - mock_machine.return_value = 'x86_64' self.xml_state = MagicMock() self.xml_state.get_package_manager = Mock( return_value='zypper' @@ -74,9 +73,8 @@ class TestSystemSetup: def teardown(self): sys.argv = argv_kiwi_tests - @patch('platform.machine') - def test_setup_ix86(self, mock_machine): - mock_machine.return_value = 'i686' + def test_setup_ix86(self): + Defaults.set_platform_name('i686') setup = SystemSetup( MagicMock(), 'root_dir' ) diff --git a/test/unit/xml_state_test.py b/test/unit/xml_state_test.py index 03f1a144..404bf96d 100644 --- a/test/unit/xml_state_test.py +++ b/test/unit/xml_state_test.py @@ -7,6 +7,7 @@ from pytest import ( raises, fixture ) +from kiwi.defaults import Defaults from kiwi.xml_state import XMLState from kiwi.xml_description import XMLDescription @@ -22,9 +23,8 @@ class TestXMLState: def inject_fixtures(self, caplog): self._caplog = caplog - @patch('platform.machine') - def setup(self, mock_machine): - mock_machine.return_value = 'x86_64' + def setup(self): + Defaults.set_platform_name('x86_64') self.description = XMLDescription( '../data/example_config.xml' ) @@ -58,13 +58,13 @@ class TestXMLState: assert description.specification == \ 'Testing various configuration states' - @patch('platform.machine') - def test_get_preferences_by_architecture(self, mock_machine): - mock_machine.return_value = 'aarch64' + def test_get_preferences_by_architecture(self): + Defaults.set_platform_name('aarch64') state = XMLState( self.description.load() ) preferences = state.get_preferences_sections() + Defaults.set_platform_name('x86_64') assert len(preferences) == 3 assert preferences[2].get_arch() == 'aarch64' assert state.get_build_type_name() == 'iso' @@ -128,9 +128,8 @@ class TestXMLState: 'vim' ] - @patch('platform.machine') - def test_get_system_packages_some_arch(self, mock_machine): - mock_machine.return_value = 's390' + def test_get_system_packages_some_arch(self): + Defaults.set_platform_name('s390') state = XMLState( self.description.load() ) @@ -145,6 +144,7 @@ class TestXMLState: 'plymouth-branding-openSUSE', 'vim' ] + Defaults.set_platform_name('x86_64') def test_get_system_collections(self): assert self.state.get_system_collections() == [ @@ -892,19 +892,17 @@ class TestXMLState: def test_is_xen_guest_no_xen_guest_setup(self): assert self.boot_state.is_xen_guest() is False - @patch('platform.machine') - def test_is_xen_guest_by_firmware_setup(self, mock_platform_machine): - mock_platform_machine.return_value = 'x86_64' + def test_is_xen_guest_by_firmware_setup(self): xml_data = self.description.load() state = XMLState(xml_data, ['ec2Flavour'], 'oem') assert state.is_xen_guest() is True - @patch('platform.machine') - def test_is_xen_guest_by_architecture(self, mock_platform_machine): - mock_platform_machine.return_value = 'unsupported' + def test_is_xen_guest_by_architecture(self): + Defaults.set_platform_name('unsupported') xml_data = self.description.load() state = XMLState(xml_data, ['ec2Flavour'], 'oem') assert state.is_xen_guest() is False + Defaults.set_platform_name('x86_64') def test_get_initrd_system(self): xml_data = self.description.load()