kiwi-el8/test/unit/utils/block_test.py
Marcus Schäfer 0eb2d2713e
Added disk validation for duplicate installs
Installing the same image to different storage disks on the
same machine creates device conflicts with unexpected side
effects. This commit adds a validation based on the PTUUID
of the disk image to check if another device on the system
has the same ID and if yes, does not allow to install the
image again including a message which device takes the same
identifier. This references bsc#1228741
2025-01-20 18:13:02 +01:00

56 lines
1.7 KiB
Python

from unittest.mock import (
Mock, patch
)
from kiwi.utils.block import BlockID
class TestBlockID:
def setup(self):
self.blkid = BlockID('device')
def setup_method(self, cls):
self.setup()
@patch('kiwi.utils.block.Command.run')
def test_setup_with_uuid_format(self, mock_command):
BlockID('UUID=uuid')
mock_command.assert_called_once_with(
['blkid', '--uuid', 'uuid']
)
@patch('kiwi.utils.block.Command.run')
def test_get_blkid(self, mock_command):
self.blkid.get_blkid('LABEL')
mock_command.assert_called_once_with(
['blkid', 'device', '-s', 'LABEL', '-o', 'value'],
raise_on_error=False
)
@patch('kiwi.utils.block.BlockID.get_blkid')
def test_get_filesystem(self, mock_get_blkid):
self.blkid.get_filesystem()
mock_get_blkid.assert_called_once_with('TYPE')
@patch('kiwi.utils.block.BlockID.get_blkid')
def test_get_label(self, mock_get_blkid):
self.blkid.get_label()
mock_get_blkid.assert_called_once_with('LABEL')
@patch('kiwi.utils.block.BlockID.get_blkid')
def test_get_uuid(self, mock_get_blkid):
self.blkid.get_uuid()
mock_get_blkid.assert_called_once_with('UUID')
@patch('kiwi.utils.block.BlockID.get_blkid')
def test_get_ptuuid(self, mock_get_blkid):
self.blkid.get_ptuuid()
mock_get_blkid.assert_called_once_with('PTUUID')
@patch('kiwi.utils.block.Command.run')
def test_get_partition_count(self, mock_Command_run):
lsblk_call = Mock()
lsblk_call.output = "NAME TYPE\nsda disk\nsda4 part \nsda3 part"
mock_Command_run.return_value = lsblk_call
assert self.blkid.get_partition_count() == 2