1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
from unittest.mock import (
patch, call, mock_open
)
from pytest import raises
from kiwi.container.setup.base import ContainerSetupBase
from kiwi.exceptions import KiwiContainerSetupError
class TestContainerSetupBase:
@patch('os.path.exists')
def setup(self, mock_exists):
mock_exists.return_value = True
self.container = ContainerSetupBase('root_dir')
@patch('os.path.exists')
def setup_method(self, cls, mock_exists):
self.setup()
@patch('os.path.exists')
def test_container_root_dir_does_not_exist(self, mock_exists):
mock_exists.return_value = False
with raises(KiwiContainerSetupError):
ContainerSetupBase('root_dir')
def test_setup(self):
with raises(NotImplementedError):
self.container.setup()
def test_post_init(self):
self.container.custom_args == {}
def test_get_container_name(self):
assert self.container.get_container_name() == 'system-container'
@patch('os.path.exists')
def test_deactivate_bootloader_setup(self, mock_exists):
mock_exists.return_value = True
m_open = mock_open(read_data='LOADER_LOCATION="mylocation"')
with patch('builtins.open', m_open, create=True):
self.container.deactivate_bootloader_setup()
assert m_open.call_args_list[0] == call(
'root_dir/etc/sysconfig/bootloader', 'r'
)
assert m_open.return_value.write.call_args_list == [
call('LOADER_LOCATION="none"\nLOADER_TYPE="none"\n')
]
@patch('os.path.exists')
def test_deactivate_root_filesystem_check(self, mock_exists):
mock_exists.return_value = True
m_open = mock_open(read_data=None)
with patch('builtins.open', m_open, create=True):
self.container.deactivate_root_filesystem_check()
assert m_open.call_args_list[0] == call(
'root_dir/etc/sysconfig/boot', 'r'
)
assert m_open.return_value.write.call_args_list == [
call('\nROOTFS_BLKDEV="/dev/null"\n')
]
@patch('os.path.exists')
@patch('kiwi.container.setup.base.Command.run')
def test_deactivate_systemd_service(self, mock_command, mock_exists):
mock_exists.return_value = True
self.container.deactivate_systemd_service('my.service')
mock_command.assert_called_once_with(
[
'ln', '-s', '-f', '/dev/null',
'root_dir/usr/lib/systemd/system/my.service'
]
)
@patch('os.path.exists')
@patch('kiwi.container.setup.base.Command.run')
def test_deactivate_systemd_service_failed(self, mock_command, mock_exists):
mock_exists.return_value = True
mock_command.side_effect = Exception
with raises(KiwiContainerSetupError):
self.container.deactivate_systemd_service('my.service')
@patch('os.path.exists')
def test_setup_root_console(self, mock_exists):
mock_exists.return_value = False
m_open = mock_open(read_data=None)
with patch('builtins.open', m_open, create=True):
self.container.setup_root_console()
assert m_open.call_args_list == [
call('root_dir/etc/securetty', 'w'),
call('root_dir/etc/securetty', 'r'),
call('root_dir/etc/securetty', 'w')
]
assert m_open.return_value.write.call_args_list == [
call('\nconsole\n')
]
|