test_depsolve.py: test depsolving a package group with excludes

Add a test case for depsolving a package group with specific optional
packages of the group being excluded. This is a common scenario in
many image definitions.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
This commit is contained in:
Tomáš Hozza 2024-08-06 16:48:21 +02:00 committed by Tomáš Hozza
parent 93f69fdf94
commit b49cb21a3e

View file

@ -1,3 +1,5 @@
# pylint: disable=too-many-lines
import configparser
import json
import os
@ -501,6 +503,337 @@ test_cases = [
},
}
},
{
"id": "basic_pkg_group_with_excludes",
"transactions": [
{
"package-specs": [
"@core",
],
"exclude-specs": [
"dracut-config-rescue",
"iwl1000-firmware",
"iwl100-firmware",
"iwl105-firmware",
"iwl135-firmware",
"iwl2000-firmware",
"iwl2030-firmware",
"iwl3160-firmware",
"iwl5000-firmware",
"iwl5150-firmware",
"iwl6000g2a-firmware",
"iwl6050-firmware",
"iwl7260-firmware",
]
},
],
"results": {
"packages": {
"acl",
"alternatives",
"attr",
"audit",
"audit-libs",
"authselect",
"authselect-libs",
"basesystem",
"bash",
"binutils",
"binutils-gold",
"bzip2-libs",
"ca-certificates",
"c-ares",
"centos-gpg-keys",
"centos-stream-release",
"centos-stream-repos",
"coreutils",
"coreutils-common",
"cpio",
"cracklib",
"cracklib-dicts",
"cronie",
"cronie-anacron",
"crontabs",
"crypto-policies",
"crypto-policies-scripts",
"cryptsetup-libs",
"curl",
"cyrus-sasl-lib",
"dbus",
"dbus-broker",
"dbus-common",
"dbus-libs",
"device-mapper",
"device-mapper-libs",
"diffutils",
"dnf",
"dnf-data",
"dnf-plugins-core",
"dracut",
"dracut-network",
"dracut-squash",
"e2fsprogs",
"e2fsprogs-libs",
"elfutils-debuginfod-client",
"elfutils-default-yama-scope",
"elfutils-libelf",
"elfutils-libs",
"ethtool",
"expat",
"file",
"file-libs",
"filesystem",
"findutils",
"firewalld",
"firewalld-filesystem",
"fuse-libs",
"gawk",
"gdbm-libs",
"gettext",
"gettext-libs",
"glib2",
"glibc",
"glibc-common",
"glibc-minimal-langpack",
"gmp",
"gnupg2",
"gnutls",
"gobject-introspection",
"gpgme",
"grep",
"groff-base",
"grub2-common",
"grub2-tools",
"grub2-tools-minimal",
"grubby",
"gzip",
"hostname",
"hwdata",
"ima-evm-utils",
"inih",
"initscripts-rename-device",
"initscripts-service",
"iproute",
"iproute-tc",
"ipset",
"ipset-libs",
"iptables-libs",
"iptables-nft",
"iputils",
"irqbalance",
"jansson",
"jq",
"json-c",
"kbd",
"kbd-legacy",
"kbd-misc",
"kernel-tools",
"kernel-tools-libs",
"kexec-tools",
"keyutils",
"keyutils-libs",
"kmod",
"kmod-libs",
"kpartx",
"krb5-libs",
"less",
"libacl",
"libarchive",
"libassuan",
"libattr",
"libbasicobjects",
"libblkid",
"libbpf",
"libbrotli",
"libcap",
"libcap-ng",
"libcbor",
"libcollection",
"libcom_err",
"libcomps",
"libcurl",
"libdaemon",
"libdb",
"libdhash",
"libdnf",
"libeconf",
"libedit",
"libevent",
"libfdisk",
"libffi",
"libfido2",
"libgcc",
"libgcrypt",
"libgomp",
"libgpg-error",
"libidn2",
"libini_config",
"libkcapi",
"libkcapi-hmaccalc",
"libksba",
"libldb",
"libmnl",
"libmodulemd",
"libmount",
"libndp",
"libnetfilter_conntrack",
"libnfnetlink",
"libnftnl",
"libnghttp2",
"libnl3",
"libnl3-cli",
"libpath_utils",
"libpipeline",
"libpsl",
"libpwquality",
"libref_array",
"librepo",
"libreport-filesystem",
"libseccomp",
"libselinux",
"libselinux-utils",
"libsemanage",
"libsepol",
"libsigsegv",
"libsmartcols",
"libsolv",
"libss",
"libssh",
"libssh-config",
"libsss_certmap",
"libsss_idmap",
"libsss_nss_idmap",
"libsss_sudo",
"libstdc++",
"libsysfs",
"libtalloc",
"libtasn1",
"libtdb",
"libteam",
"libtevent",
"libunistring",
"libuser",
"libutempter",
"libuuid",
"libverto",
"libxcrypt",
"libxml2",
"libyaml",
"libzstd",
"linux-firmware",
"linux-firmware-whence",
"lmdb-libs",
"logrotate",
"lshw",
"lsscsi",
"lua-libs",
"lz4-libs",
"lzo",
"man-db",
"microcode_ctl",
"mpfr",
"ncurses",
"ncurses-base",
"ncurses-libs",
"nettle",
"NetworkManager",
"NetworkManager-libnm",
"NetworkManager-team",
"NetworkManager-tui",
"newt",
"nftables",
"npth",
"numactl-libs",
"oniguruma",
"openldap",
"openssh",
"openssh-clients",
"openssh-server",
"openssl",
"openssl-libs",
"os-prober",
"p11-kit",
"p11-kit-trust",
"pam",
"parted",
"passwd",
"pciutils-libs",
"pcre",
"pcre2",
"pcre2-syntax",
"pigz",
"policycoreutils",
"popt",
"prefixdevname",
"procps-ng",
"psmisc",
"publicsuffix-list-dafsa",
"python3",
"python3-dateutil",
"python3-dbus",
"python3-dnf",
"python3-dnf-plugins-core",
"python3-firewall",
"python3-gobject-base",
"python3-gobject-base-noarch",
"python3-gpg",
"python3-hawkey",
"python3-libcomps",
"python3-libdnf",
"python3-libs",
"python3-nftables",
"python3-pip-wheel",
"python3-rpm",
"python3-setuptools-wheel",
"python3-six",
"python3-systemd",
"readline",
"rootfiles",
"rpm",
"rpm-build-libs",
"rpm-libs",
"rpm-plugin-audit",
"rpm-plugin-selinux",
"rpm-sign-libs",
"sed",
"selinux-policy",
"selinux-policy-targeted",
"setup",
"sg3_utils",
"sg3_utils-libs",
"shadow-utils",
"slang",
"snappy",
"sqlite-libs",
"squashfs-tools",
"sssd-client",
"sssd-common",
"sssd-kcm",
"sudo",
"systemd",
"systemd-libs",
"systemd-pam",
"systemd-rpm-macros",
"systemd-udev",
"teamd",
"tpm2-tss",
"tzdata",
"userspace-rcu",
"util-linux",
"util-linux-core",
"vim-minimal",
"which",
"xfsprogs",
"xz",
"xz-libs",
"yum",
"zlib",
},
"reponames": {
"baseos",
},
}
},
# Test that repositories not enabled for the transaction are not used
# This test should result in an error because the package is not available in the enabled repositories
{