Fix desktop_update_graphical tests for pykickstart updates

Somehow, the dummy package being python3-kickstart causes the
graphical update tests (only) to fail for pykickstart updates
(that's the source package of python3-kickstart). The CLI and
Cockpit update tests are fine with this and pass.

To workaround this, use python3-blivet as the dummy package for
the graphical update tests when testing an update that contains
python3-kickstart. I've updated the test repo to contain both
dummy packages.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
This commit is contained in:
Adam Williamson 2023-03-14 13:54:56 -07:00
parent cf5532fc3a
commit 2e5fa93415
2 changed files with 21 additions and 10 deletions

View File

@ -9,15 +9,17 @@ use testapi;
our @EXPORT = qw/prepare_test_packages verify_installed_packages verify_updated_packages/;
# enable the openqa test package repositories and install the main
# test packages, remove python3-kickstart and install the fake one
# test packages, remove test package and install the fake one
sub prepare_test_packages {
my ($package) = @_;
$package //= "python3-kickstart";
# remove python3-kickstart if installed (we don't use assert
# here in case it's not)
script_run 'dnf -y remove python3-kickstart', 180;
script_run "dnf -y remove $package", 180;
# grab the test repo definitions
assert_script_run 'curl -o /etc/yum.repos.d/openqa-testrepo-1.repo https://fedorapeople.org/groups/qa/openqa-repos/openqa-testrepo-1.repo';
# install the test packages from repo1
assert_script_run 'dnf -y --disablerepo=* --enablerepo=openqa-testrepo-1 install python3-kickstart';
assert_script_run "dnf -y --disablerepo=* --enablerepo=openqa-testrepo-1 install $package";
if (get_var("DESKTOP") eq 'kde' && get_var("TEST") eq 'desktop_update_graphical') {
# kick pkcon so our special update will definitely get installed
assert_script_run 'pkcon refresh force';
@ -27,15 +29,19 @@ sub prepare_test_packages {
# check our test packages installed correctly (this is a test that dnf
# actually does what it claims)
sub verify_installed_packages {
validate_script_output 'rpm -q python3-kickstart', sub { $_ =~ m/^python3-kickstart-1.1.noarch$/ };
assert_script_run 'rpm -V python3-kickstart';
my ($package) = @_;
$package //= "python3-kickstart";
validate_script_output "rpm -q $package", sub { $_ =~ m/^$package-1.1.noarch$/ };
assert_script_run "rpm -V $package";
}
# check updating the test packages and the fake python3-kickstart work
# as expected
sub verify_updated_packages {
# we don't know what version of python3-kickstart we'll actually
my ($package) = @_;
$package //= "python3-kickstart";
# we don't know what version of the test package we'll actually
# get, so just check it's *not* the fake one
validate_script_output 'rpm -q python3-kickstart', sub { $_ !~ m/^python3-kickstart-1-1.noarch$/ };
assert_script_run 'rpm -V python3-kickstart';
validate_script_output "rpm -q $package", sub { $_ !~ m/^$package-1-1.noarch$/ };
assert_script_run "rpm -V $package";
}

View File

@ -17,7 +17,12 @@ sub run {
if (get_var("ADVISORY_OR_TASK") && get_var("VERSION") eq get_var("RAWREL")) {
assert_script_run 'dnf config-manager --set-disabled koji-rawhide';
}
prepare_test_packages;
# for tests of pykickstart updates, we need to use a different dummy
my $package = "python3-kickstart";
if (get_var("ADVISORY_OR_TASK")) {
$package = "python3-blivet" unless (script_run "grep python3-kickstart /mnt/updatepkgs.txt");
}
prepare_test_packages $package;
# get back to the desktop
desktop_vt;
@ -135,7 +140,7 @@ sub run {
}
# back to console to verify updates
$self->root_console(tty => 3);
verify_updated_packages;
verify_updated_packages $package;
}
sub test_flags {