1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2025-03-03 19:14:32 +00:00

Tweak desktop_update_graphical download/apply handling for fwupd

Now fwupd is showing us dbx updates, it seems we get *both* a
"Restart & Update..." button *and* a "Download" button at the
same time. If we click Restart & Update without clicking Download
first, package updates aren't applied.

So, tweak this logic yet again so that it 'breaks the tie' in
the way we want (if both buttons are present, click the download
one, take download out of the tags, and go to the next loop
iteration). Hopefully this solves the problem without breaking
any other paths.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
This commit is contained in:
Adam Williamson 2025-01-28 14:48:51 -08:00
parent f473de351c
commit aaf6018485
5 changed files with 54 additions and 12 deletions

View File

@ -0,0 +1,16 @@
{
"area": [
{
"width": 71,
"ypos": 249,
"type": "match",
"xpos": 688,
"height": 36
}
],
"properties": [],
"tags": [
"DESKTOP-gnome",
"desktop_package_tool_update_download"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

View File

@ -0,0 +1,23 @@
{
"area": [
{
"height": 18,
"xpos": 578,
"type": "match",
"width": 53,
"ypos": 446
},
{
"xpos": 395,
"ypos": 309,
"width": 144,
"height": 20,
"type": "match"
}
],
"properties": [],
"tags": [
"DESKTOP-gnome",
"gnome_reboot_confirm"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 876 KiB

View File

@ -88,19 +88,22 @@ sub run {
# or 'download' then 'apply'
for (my $n = 1; $n < 6; $n++) {
if (check_screen $tags, 120) {
# if we see 'apply', we're done here, quit out of the loop
last if (match_has_tag 'desktop_package_tool_update_apply');
# if we see 'download', let's hit it, and continue waiting
# for apply (only)
wait_screen_change { click_lastmatch; };
$n -= 1 if ($n > 1);
if (get_var("TAG") || get_var("COPR")) {
# we might get a 'download unsigned software' prompt
# https://gitlab.gnome.org/GNOME/gnome-software/-/issues/2246
click_lastmatch if (check_screen "desktop_package_tool_update_download_unsigned", 30);
# if we have a download button, we want to hit it, even if
# we also have a restart button. then continue waiting for
# apply (only)
if (check_screen 'desktop_package_tool_update_download') {
wait_screen_change { click_lastmatch; };
$n -= 1 if ($n > 1);
if (get_var("TAG") || get_var("COPR")) {
# we might get a 'download unsigned software' prompt
# https://gitlab.gnome.org/GNOME/gnome-software/-/issues/2246
click_lastmatch if (check_screen "desktop_package_tool_update_download_unsigned", 30);
}
$tags = ['desktop_package_tool_update_apply'];
next;
}
$tags = ['desktop_package_tool_update_apply'];
next;
# if we *only* saw apply, we're done, break out
last;
}
# move the mouse to stop the screen blanking on idle
mouse_set 10, 10;