def test_evaluation_package_rules(proxy_getter, rule_data, ksdata_mock, storage_mock): rule_data.new_rule("package --add=firewalld --remove=telnet --add=vim") packages_data = PackagesSelectionData() packages_data.packages = ["vim"] dnf_payload_mock = PAYLOADS.get_proxy("/fake/payload/1") dnf_payload_mock.PackagesSelection = PackagesSelectionData.to_structure(packages_data) messages = rule_data.eval_rules(ksdata_mock, storage_mock) # one info message for each (really) added/removed package assert len(messages) == 2 assert all(message.type == common.MESSAGE_TYPE_INFO for message in messages) # all packages should appear in the messages not_seen = _quoted_keywords_not_seen_in_messages( {"firewalld", "telnet"}, messages, ) assert not not_seen packages_data = PackagesSelectionData() packages_data.packages = ["vim", "firewalld"] packages_data.excluded_packages = ["telnet"] assert dnf_payload_mock.PackagesSelection == \ PackagesSelectionData.to_structure(packages_data)
def check_selection_test(self, kernel_getter): kernel_getter.return_value = None dnf_manager = Mock() selection = PackagesSelectionData() selection.core_group_enabled = False selection.environment = "e1" selection.packages = ["p1", "p2"] selection.excluded_packages = ["p3", "p4"] selection.groups = ["g1", "g2"] selection.excluded_groups = ["g3", "g4"] selection.modules = ["m1", "m2"] selection.disabled_modules = ["m3", "m4"] task = CheckPackagesSelectionTask(dnf_manager, selection) report = task.run() dnf_manager.clear_selection.assert_called_once_with() dnf_manager.disable_modules.assert_called_once_with(["m3", "m4"]) dnf_manager.enable_modules.assert_called_once_with(["m1", "m2"]) dnf_manager.apply_specs.assert_called_once_with( ["@e1", "@g1", "@g2", "p1", "p2"], ["@core", "@g3", "@g4", "p3", "p4"]) dnf_manager.resolve_selection.assert_called_once_with() self.assertEqual(report.get_messages(), [])
def test_revert_package_rules(proxy_getter, rule_data, ksdata_mock, storage_mock): rule_data.new_rule("package --add=firewalld --remove=telnet --add=iptables --add=vim") packages_data = PackagesSelectionData() packages_data.packages = ["vim"] dnf_payload_mock = PAYLOADS.get_proxy("/fake/payload/1") dnf_payload_mock.PackagesSelection = PackagesSelectionData.to_structure(packages_data) # run twice --> nothing should be different in the second run messages = rule_data.eval_rules(ksdata_mock, storage_mock) messages = rule_data.eval_rules(ksdata_mock, storage_mock) # one info message for each added/removed package assert len(messages) == 3 rule_data.revert_changes(ksdata_mock, storage_mock) # (only) added and excluded packages should have been removed from the # list assert dnf_payload_mock.PackagesSelection == \ PackagesSelectionData.to_structure(packages_data) # now do the same again # messages = rule_data.eval_rules(ksdata_mock, storage_mock) # one info message for each added/removed package assert len(messages) == 3 rule_data.revert_changes(ksdata_mock, storage_mock) # (only) added and excluded packages should have been removed from the # list assert dnf_payload_mock.PackagesSelection == \ PackagesSelectionData.to_structure(packages_data)
def _process_kickstart_packages_selection(self, data): """Process the kickstart packages selection.""" selection = PackagesSelectionData() selection.core_group_enabled = not data.packages.nocore selection.default_environment_enabled = data.packages.default if data.packages.environment is not None: selection.environment = data.packages.environment selection.packages = data.packages.packageList selection.excluded_packages = data.packages.excludedList for group in data.packages.groupList: selection.groups.append(group.name) if group.include == GROUP_ALL: selection.groups_package_types[ group.name] = GROUP_PACKAGE_TYPES_ALL if group.include == GROUP_REQUIRED: selection.groups_package_types[ group.name] = GROUP_PACKAGE_TYPES_REQUIRED for group in data.packages.excludedGroupList: selection.excluded_groups.append(group.name) self.set_packages_selection(selection) self.set_packages_kickstarted(data.packages.seen)
def test_get_installation_specs_packages(self): """Test the get_installation_specs function with packages.""" data = PackagesSelectionData() data.packages = ["p1", "p2", "p3"] data.excluded_packages = ["p4", "p5", "p6"] assert get_installation_specs(data) == (["@core", "p1", "p2", "p3"], ["p4", "p5", "p6"])
def get_installation_specs_packages_test(self): """Test the get_installation_specs function with packages.""" data = PackagesSelectionData() data.packages = ["p1", "p2", "p3"] data.excluded_packages = ["p4", "p5", "p6"] self.assertEqual(get_installation_specs(data), (["@core", "p1", "p2", "p3"], ["p4", "p5", "p6"]))