Пример #1
0
    def get_installation_specs_groups_test(self):
        """Test the get_installation_specs function with groups."""
        data = PackagesConfigurationData()

        data.groups = ["g1", "g2", "g3"]
        data.excluded_groups = ["g4", "g5", "g6"]
        data.groups_package_types = {
            "g1": GROUP_PACKAGE_TYPES_REQUIRED,
            "g3": GROUP_PACKAGE_TYPES_ALL,
            "g4": GROUP_PACKAGE_TYPES_REQUIRED,
            "g6": GROUP_PACKAGE_TYPES_ALL,
        }

        self.assertEqual(get_installation_specs(data), (
            [
                "@core",
                "@g1/mandatory,conditional",
                "@g2",
                "@g3/mandatory,default,conditional,optional"],
            [
                "@g4",
                "@g5",
                "@g6"
            ]
        ))
Пример #2
0
    def get_installation_specs_packages_test(self):
        """Test the get_installation_specs function with packages."""
        data = PackagesConfigurationData()
        data.packages = ["p1", "p2", "p3"]
        data.excluded_packages = ["p4", "p5", "p6"]

        self.assertEqual(get_installation_specs(data), (
            ["@core", "p1", "p2", "p3"], ["p4", "p5", "p6"]
        ))
    def set_rpm_macros_exclude_docs_test(self, mock_rpm):
        data = PackagesConfigurationData()
        data.docs_excluded = True

        macros = [
            ('__dbi_htconfig', 'hash nofsync %{__dbi_other} %{__dbi_perms}'),
            ('_excludedocs', '1'),
        ]

        task = self._run_task(data)
        self._check_macros(task, mock_rpm, macros)
    def set_rpm_macros_install_langs_test(self, mock_rpm):
        data = PackagesConfigurationData()
        data.languages = "en,es"

        macros = [
            ('__dbi_htconfig', 'hash nofsync %{__dbi_other} %{__dbi_perms}'),
            ('_install_langs', 'en,es'),
        ]

        task = self._run_task(data)
        self._check_macros(task, mock_rpm, macros)
    def set_rpm_macros_no_install_langs_test(self, mock_rpm):
        data = PackagesConfigurationData()
        data.languages = RPM_LANGUAGES_NONE

        macros = [
            ('__dbi_htconfig', 'hash nofsync %{__dbi_other} %{__dbi_perms}'),
            ('_install_langs', '%{nil}'),
        ]

        task = self._run_task(data)
        self._check_macros(task, mock_rpm, macros)
Пример #6
0
    def configure_base_test(self):
        """Test the configuration of the DNF base."""
        data = PackagesConfigurationData()

        self.dnf_manager.configure_base(data)
        self._check_configuration(
            "multilib_policy = best",
            "timeout = 30",
            "retries = 10",
            "install_weak_deps = 1",
        )

        self.assertEqual(self.dnf_manager._ignore_broken_packages, False)
        self.assertEqual(self.dnf_manager._ignore_missing_packages, False)

        data.multilib_policy = MULTILIB_POLICY_ALL
        data.timeout = 100
        data.retries = 5
        data.broken_ignored = True
        data.missing_ignored = True
        data.weakdeps_excluded = True

        self.dnf_manager.configure_base(data)
        self._check_configuration(
            "multilib_policy = all",
            "timeout = 100",
            "retries = 5",
            "install_weak_deps = 0",
        )

        self.assertEqual(self.dnf_manager._ignore_broken_packages, True)
        self.assertEqual(self.dnf_manager._ignore_missing_packages, True)
Пример #7
0
    def SetPackages(self, data: Structure):
        """Set the packages configuration.

        :param data: a structure of the type PackagesConfigurationData
        """
        self.implementation.set_packages(
            PackagesConfigurationData.from_structure(data))
Пример #8
0
    def Packages(self) -> Structure:
        """The packages configuration.

        :return: a structure of the type PackagesConfigurationData
        """
        return PackagesConfigurationData.to_structure(
            self.implementation.packages)
Пример #9
0
    def packages_property_test(self):
        """Test the Packages property."""
        data = {
            "core-group-enabled":
            get_variant(Bool, False),
            "default-environment-enabled":
            get_variant(Bool, False),
            "environment":
            get_variant(Str, "environment"),
            "groups":
            get_variant(List[Str], ["g1", "g2"]),
            "groups-package-types":
            get_variant(Dict[Str, List[Str]], {
                "g1": GROUP_PACKAGE_TYPES_ALL,
                "g2": GROUP_PACKAGE_TYPES_REQUIRED
            }),
            "excluded-groups":
            get_variant(List[Str], ["g3", "g4"]),
            "packages":
            get_variant(List[Str], ["p1", "p2"]),
            "excluded-packages":
            get_variant(List[Str], ["p3", "p4"]),
            "docs-excluded":
            get_variant(Bool, True),
            "weakdeps-excluded":
            get_variant(Bool, True),
            "missing-ignored":
            get_variant(Bool, True),
            "broken-ignored":
            get_variant(Bool, True),
            "languages":
            get_variant(Str, "en,es"),
            "multilib-policy":
            get_variant(Str, MULTILIB_POLICY_ALL),
            "timeout":
            get_variant(Int, 10),
            "retries":
            get_variant(Int, 5),
        }

        self._check_dbus_property("Packages", data)

        data = PackagesConfigurationData.to_structure(
            PackagesConfigurationData())

        self._check_dbus_property("Packages", data)
Пример #10
0
    def get_installation_specs_environment_test(self):
        """Test the get_installation_specs function with environment."""
        data = PackagesConfigurationData()
        data.environment = "environment-1"

        self.assertEqual(get_installation_specs(data), (
            ["@environment-1", "@core"], []
        ))

        env = "environment-2"
        self.assertEqual(get_installation_specs(data, default_environment=env), (
            ["@environment-1", "@core"], []
        ))

        data.default_environment_enabled = True
        self.assertEqual(get_installation_specs(data, default_environment=env), (
            ["@environment-2", "@core"], []
        ))
    def set_rpm_macros_default_test(self, mock_rpm):
        data = PackagesConfigurationData()

        macros = [
            ('__dbi_htconfig', 'hash nofsync %{__dbi_other} %{__dbi_perms}')
        ]

        task = self._run_task(data)
        self._check_macros(task, mock_rpm, macros)
    def set_rpm_macros_selinux_disabled_test(self, mock_rpm, mock_conf):
        mock_conf.security.selinux = 0
        data = PackagesConfigurationData()

        macros = [
            ('__dbi_htconfig', 'hash nofsync %{__dbi_other} %{__dbi_perms}'),
            ('__file_context_path', '%{nil}'),
        ]

        task = self._run_task(data)
        self._check_macros(task, mock_rpm, macros)
    def set_rpm_macros_selinux_test(self, mock_rpm, mock_os):
        mock_os.access.return_value = True
        data = PackagesConfigurationData()

        macros = [
            ('__dbi_htconfig', 'hash nofsync %{__dbi_other} %{__dbi_perms}'),
            ('__file_context_path', '/tmp/updates/file_contexts'),
        ]

        task = self._run_task(data)
        self._check_macros(task, mock_rpm, macros)
Пример #14
0
 def get_installation_specs_nocore_test(self):
     """Test the get_installation_specs function without core."""
     data = PackagesConfigurationData()
     data.core_group_enabled = False
     self.assertEqual(get_installation_specs(data), ([], ["@core"]))
Пример #15
0
    def _process_kickstart_packages(self, data):
        """Process the kickstart packages."""
        packages = PackagesConfigurationData()
        packages.core_group_enabled = not data.packages.nocore
        packages.default_environment_enabled = data.packages.default

        if data.packages.environment is not None:
            packages.environment = data.packages.environment

        packages.packages = data.packages.packageList
        packages.excluded_packages = data.packages.excludedList

        for group in data.packages.groupList:
            packages.groups.append(group.name)

            if group.include == GROUP_ALL:
                packages.groups_package_types[group.name] = GROUP_PACKAGE_TYPES_ALL

            if group.include == GROUP_REQUIRED:
                packages.groups_package_types[group.name] = GROUP_PACKAGE_TYPES_REQUIRED

        for group in data.packages.excludedGroupList:
            packages.excluded_groups.append(group.name)

        packages.docs_excluded = data.packages.excludeDocs
        packages.weakdeps_excluded = data.packages.excludeWeakdeps

        if data.packages.handleMissing == KS_MISSING_IGNORE:
            packages.missing_ignored = True

        if data.packages.handleBroken == KS_BROKEN_IGNORE:
            packages.broken_ignored = True

        if data.packages.instLangs == "":
            packages.languages = RPM_LANGUAGES_NONE
        elif data.packages.instLangs is not None:
            packages.languages = data.packages.instLangs

        if data.packages.multiLib:
            packages.multilib_policy = MULTILIB_POLICY_ALL

        if data.packages.timeout is not None:
            packages.timeout = data.packages.timeout

        if data.packages.retries is not None:
            packages.retries = data.packages.retries

        self.set_packages(packages)
Пример #16
0
 def get_installation_specs_default_test(self):
     """Test the get_installation_specs function with defaults."""
     data = PackagesConfigurationData()
     self.assertEqual(get_installation_specs(data), (["@core"], []))
Пример #17
0
 def __init__(self):
     super().__init__()
     self._packages = PackagesConfigurationData()
     self.packages_changed = Signal()