Ejemplo n.º 1
0
    def setup(self, mock_exists):
        mock_exists.return_value = True
        self.context_manager_mock = mock.MagicMock()
        self.file_mock = mock.MagicMock()
        self.enter_mock = mock.MagicMock()
        self.exit_mock = mock.MagicMock()
        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)

        self.container = ContainerSetupBase('root_dir')
Ejemplo n.º 2
0
    def setup(self, mock_exists):
        mock_exists.return_value = True
        self.context_manager_mock = mock.MagicMock()
        self.file_mock = mock.MagicMock()
        self.enter_mock = mock.MagicMock()
        self.exit_mock = mock.MagicMock()
        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)

        self.container = ContainerSetupBase("root_dir")
Ejemplo n.º 3
0
 def test_container_root_dir_does_not_exist(self, mock_exists):
     mock_exists.return_value = False
     ContainerSetupBase('root_dir')
Ejemplo n.º 4
0
class TestContainerSetupBase(object):
    @patch('os.path.exists')
    def setup(self, mock_exists):
        mock_exists.return_value = True
        self.context_manager_mock = mock.MagicMock()
        self.file_mock = mock.MagicMock()
        self.enter_mock = mock.MagicMock()
        self.exit_mock = mock.MagicMock()
        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)

        self.container = ContainerSetupBase('root_dir')

    @patch('os.path.exists')
    @raises(KiwiContainerSetupError)
    def test_container_root_dir_does_not_exist(self, mock_exists):
        mock_exists.return_value = False
        ContainerSetupBase('root_dir')

    @raises(NotImplementedError)
    def test_setup(self):
        self.container.setup()

    def test_post_init(self):
        self.container.custom_args == {}

    def test_get_container_name(self):
        assert self.container.get_container_name() == 'systemContainer'

    @patch('__builtin__.open')
    def test_create_fstab(self, mock_open):
        mock_open.return_value = self.context_manager_mock
        self.container.create_fstab()
        mock_open.assert_called_once_with(
            'root_dir/etc/fstab', 'w'
        )
        assert self.file_mock.call_args_list == []

    @patch('__builtin__.open')
    @patch('os.path.exists')
    def test_deactivate_bootloader_setup(self, mock_exists, mock_open):
        mock_exists.return_value = True
        mock_open.return_value = self.context_manager_mock
        self.file_mock.read.return_value = 'LOADER_LOCATION="mylocation"'
        self.container.deactivate_bootloader_setup()
        assert mock_open.call_args_list[0] == call(
            'root_dir/etc/sysconfig/bootloader', 'r'
        )
        assert self.file_mock.write.call_args_list == [
            call('LOADER_LOCATION="none"\nLOADER_TYPE="none"\n')
        ]

    @patch('__builtin__.open')
    @patch('os.path.exists')
    def test_deactivate_root_filesystem_check(self, mock_exists, mock_open):
        mock_exists.return_value = True
        mock_open.return_value = self.context_manager_mock
        self.file_mock.read.return_value = None
        self.container.deactivate_root_filesystem_check()
        assert mock_open.call_args_list[0] == call(
            'root_dir/etc/sysconfig/boot', 'r'
        )
        assert self.file_mock.write.call_args_list == [
            call('ROOTFS_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')
    @raises(KiwiContainerSetupError)
    def test_deactivate_systemd_service_no_such_service(self, mock_exists):
        mock_exists.return_value = False
        self.container.deactivate_systemd_service('my.service')

    @patch('os.path.exists')
    @patch('kiwi.container_setup_base.Command.run')
    @raises(KiwiContainerSetupError)
    def test_deactivate_systemd_service_failed(self, mock_command, mock_exists):
        mock_exists.return_value = True
        mock_command.side_effect = Exception
        self.container.deactivate_systemd_service('my.service')

    @patch('__builtin__.open')
    @patch('os.path.exists')
    def test_setup_root_console(self, mock_exists, mock_open):
        mock_exists.return_value = False
        mock_open.return_value = self.context_manager_mock
        self.file_mock.read.return_value = None
        self.container.setup_root_console()
        assert mock_open.call_args_list == [
            call('root_dir/etc/securetty', 'w'),
            call('root_dir/etc/securetty', 'r'),
            call('root_dir/etc/securetty', 'w')
        ]
        assert self.file_mock.write.call_args_list == [
            call('console\n')
        ]

    @patch('kiwi.container_setup_base.Command.run')
    def test_setup_static_device_nodes(self, mock_command):
        self.container.setup_static_device_nodes()
        mock_command.assert_called_once_with(
            [
                'rsync', '-zavx', '--devices', '--specials',
                '/dev/', 'root_dir/dev/'
            ]
        )

    @patch('kiwi.container_setup_base.Command.run')
    @raises(KiwiContainerSetupError)
    def test_setup_static_device_nodes_failed(self, mock_command):
        mock_command.side_effect = Exception
        self.container.setup_static_device_nodes()
Ejemplo n.º 5
0
class TestContainerSetupBase(object):
    @patch("os.path.exists")
    def setup(self, mock_exists):
        mock_exists.return_value = True
        self.context_manager_mock = mock.MagicMock()
        self.file_mock = mock.MagicMock()
        self.enter_mock = mock.MagicMock()
        self.exit_mock = mock.MagicMock()
        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)

        self.container = ContainerSetupBase("root_dir")

    @patch("os.path.exists")
    @raises(KiwiContainerSetupError)
    def test_container_root_dir_does_not_exist(self, mock_exists):
        mock_exists.return_value = False
        ContainerSetupBase("root_dir")

    @raises(NotImplementedError)
    def test_setup(self):
        self.container.setup()

    def test_post_init(self):
        self.container.custom_args == {}

    def test_get_container_name(self):
        assert self.container.get_container_name() == "systemContainer"

    @patch("__builtin__.open")
    def test_create_fstab(self, mock_open):
        mock_open.return_value = self.context_manager_mock
        self.container.create_fstab()
        mock_open.assert_called_once_with("root_dir/etc/fstab", "w")
        assert self.file_mock.call_args_list == []

    @patch("__builtin__.open")
    @patch("os.path.exists")
    def test_deactivate_bootloader_setup(self, mock_exists, mock_open):
        mock_exists.return_value = True
        mock_open.return_value = self.context_manager_mock
        self.file_mock.read.return_value = 'LOADER_LOCATION="mylocation"'
        self.container.deactivate_bootloader_setup()
        assert mock_open.call_args_list[0] == call("root_dir/etc/sysconfig/bootloader", "r")
        assert self.file_mock.write.call_args_list == [call('LOADER_LOCATION="none"\nLOADER_TYPE="none"\n')]

    @patch("__builtin__.open")
    @patch("os.path.exists")
    def test_deactivate_root_filesystem_check(self, mock_exists, mock_open):
        mock_exists.return_value = True
        mock_open.return_value = self.context_manager_mock
        self.file_mock.read.return_value = None
        self.container.deactivate_root_filesystem_check()
        assert mock_open.call_args_list[0] == call("root_dir/etc/sysconfig/boot", "r")
        assert self.file_mock.write.call_args_list == [call('ROOTFS_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")
    @raises(KiwiContainerSetupError)
    def test_deactivate_systemd_service_no_such_service(self, mock_exists):
        mock_exists.return_value = False
        self.container.deactivate_systemd_service("my.service")

    @patch("os.path.exists")
    @patch("kiwi.container_setup_base.Command.run")
    @raises(KiwiContainerSetupError)
    def test_deactivate_systemd_service_failed(self, mock_command, mock_exists):
        mock_exists.return_value = True
        mock_command.side_effect = Exception
        self.container.deactivate_systemd_service("my.service")

    @patch("__builtin__.open")
    @patch("os.path.exists")
    def test_setup_root_console(self, mock_exists, mock_open):
        mock_exists.return_value = False
        mock_open.return_value = self.context_manager_mock
        self.file_mock.read.return_value = None
        self.container.setup_root_console()
        assert mock_open.call_args_list == [
            call("root_dir/etc/securetty", "w"),
            call("root_dir/etc/securetty", "r"),
            call("root_dir/etc/securetty", "w"),
        ]
        assert self.file_mock.write.call_args_list == [call("console\n")]

    @patch("kiwi.container_setup_base.Command.run")
    def test_setup_static_device_nodes(self, mock_command):
        self.container.setup_static_device_nodes()
        mock_command.assert_called_once_with(["rsync", "-zavx", "--devices", "--specials", "/dev/", "root_dir/dev/"])

    @patch("kiwi.container_setup_base.Command.run")
    @raises(KiwiContainerSetupError)
    def test_setup_static_device_nodes_failed(self, mock_command):
        mock_command.side_effect = Exception
        self.container.setup_static_device_nodes()