Extend navigation test to cover KDE #566

Merged
adamwill merged 1 commit from enhance/kde-navigation into main 2026-07-10 01:08:51 +00:00
Owner

Enable the navigation test suite for KDE and adapt the affected tests to
use KDE applications, shortcuts, workspace handling, video player dialogs,
and window controls. Add the required KDE needles, include System Monitor
in app startup checks, and support KDE update notification timestamps via
Discover notifier config.

Fixes: #322

Enable the navigation test suite for KDE and adapt the affected tests to use KDE applications, shortcuts, workspace handling, video player dialogs, and window controls. Add the required KDE needles, include System Monitor in app startup checks, and support KDE update notification timestamps via Discover notifier config. Fixes: https://forge.fedoraproject.org/quality/os-autoinst-distri-fedora/issues/322
Extend navigation test to cover KDE
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 47s
AI Code Review / ai-review (pull_request_target) Successful in 32s
CI via Tox and perl / tox (pull_request) Successful in 1m35s
CI via Tox and perl / perl (pull_request) Failing after 3m53s
fe878f13e0
Enable the navigation test suite for KDE and adapt the affected tests to
use KDE applications, shortcuts, workspace handling, video player dialogs,
and window controls. Add the required KDE needles, include System Monitor
in app startup checks, and support KDE update notification timestamps via
Discover notifier config.

Fixes: #322

AI Code Review

Detailed Code Review

The PR successfully extends the navigation test suite to cover KDE by abstracting desktop-specific behaviors, shortcuts, and application names. The author has thoughtfully mapped GNOME concepts to their KDE equivalents (e.g., using super-pgdn for minimizing instead of super-h, adjusting workspace shortcuts, and using KRunner for configuration changes).

The logic changes are sound, and the addition of KDE-specific needles ensures the tests can effectively interact with the KDE environment. One minor styling issue was spotted regarding indentation (the use of tabs instead of spaces), but functionally the code is well-implemented and maintains compatibility with the existing GNOME tests.

Summary

  • Overall Assessment: No critical issues identified. Minor stylistic suggestion provided for tab indentation.
  • Minor Suggestions:
    • Fix mixed spaces and tabs indentation in switch_workplaces.pm to maintain code consistency.

🤖 AI Code Review | Generated with ai-code-review | Model: gemini-3.1-pro-preview

⚠️ AI-generated suggestions may be incorrect. Verify before applying. Not a replacement for human review.

## AI Code Review ### Detailed Code Review The PR successfully extends the navigation test suite to cover KDE by abstracting desktop-specific behaviors, shortcuts, and application names. The author has thoughtfully mapped GNOME concepts to their KDE equivalents (e.g., using `super-pgdn` for minimizing instead of `super-h`, adjusting workspace shortcuts, and using KRunner for configuration changes). The logic changes are sound, and the addition of KDE-specific needles ensures the tests can effectively interact with the KDE environment. One minor styling issue was spotted regarding indentation (the use of tabs instead of spaces), but functionally the code is well-implemented and maintains compatibility with the existing GNOME tests. ### ✅ Summary - **Overall Assessment:** No critical issues identified. Minor stylistic suggestion provided for tab indentation. - **Minor Suggestions:** - Fix mixed spaces and tabs indentation in `switch_workplaces.pm` to maintain code consistency. --- 🤖 **AI Code Review** | Generated with [ai-code-review](https://gitlab.com/redhat/edge/ci-cd/ai-code-review) | **Model:** `gemini-3.1-pro-preview` ⚠️ *AI-generated suggestions may be incorrect. Verify before applying. Not a replacement for human review.*
lruzicka force-pushed enhance/kde-navigation from fe878f13e0
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 47s
AI Code Review / ai-review (pull_request_target) Successful in 32s
CI via Tox and perl / tox (pull_request) Successful in 1m35s
CI via Tox and perl / perl (pull_request) Failing after 3m53s
to ddd00b3127
Some checks failed
CI via Tox and perl / tox (pull_request) Has been cancelled
CI via Tox and perl / perl (pull_request) Has been cancelled
CI via Tox and perl / checkwiki (pull_request) Has been cancelled
2026-06-10 08:18:34 +00:00
Compare
lruzicka force-pushed enhance/kde-navigation from ddd00b3127
Some checks failed
CI via Tox and perl / tox (pull_request) Has been cancelled
CI via Tox and perl / perl (pull_request) Has been cancelled
CI via Tox and perl / checkwiki (pull_request) Has been cancelled
to 30d36c4fa7
All checks were successful
CI via Tox and perl / checkwiki (pull_request) Successful in 48s
CI via Tox and perl / tox (pull_request) Successful in 1m48s
CI via Tox and perl / perl (pull_request) Successful in 3m57s
2026-06-10 08:19:11 +00:00
Compare
Author
Owner

I fixed the space/tab mismatch.

I fixed the space/tab mismatch.
adamwill left a comment

I see several issues here, please take a look. Thanks for the work!

I see several issues here, please take a look. Thanks for the work!
check-needles.py Outdated
@ -285,6 +286,12 @@ testtags.append("mwriter_mediagroup_official")
# For gnome-initial-setup
for screen in ("credentials", "final", "keyboard", "password", "privacy", "software", "timezone"):
testtags.append(f"gis_screen_{screen}")
# For KDE navigation
Owner

I think it'd be nice to put this section next to the GNOME navigation section, rather than down here at the bottom.

I think it'd be nice to put this section next to the GNOME navigation section, rather than down here at the bottom.
lruzicka marked this conversation as resolved
check-needles.py Outdated
@ -288,0 +289,4 @@
# For KDE navigation
for app in ("kcalc", "konsole", "dolphin", "kwrite", "system-monitor"):
testtags.append(f"navigation_navibar_{app}")
testtags.append(f"{app}_inactive")
Owner

we only actually have dolphin_inactive and kwrite_inactive. Also, why does this PR remove the files_inactive and editor_inactive needles for GNOME? Surely these are still needed for the GNOME path? The switch_application test code looks like it will still assert them, for GNOME. If so, we need to add the needles back, and add exceptions for them to the GNOME section here in check-needles (since they're now asserted indirectly via a variable, not directly by name).

we only actually have dolphin_inactive and kwrite_inactive. Also, why does this PR remove the files_inactive and editor_inactive needles for GNOME? Surely these are still needed for the GNOME path? The `switch_application` test code looks like it will still assert them, for GNOME. If so, we need to add the needles back, and add exceptions for them to the GNOME section here in check-needles (since they're now asserted indirectly via a variable, not directly by name).
lruzicka marked this conversation as resolved
check-needles.py Outdated
@ -288,0 +290,4 @@
for app in ("kcalc", "konsole", "dolphin", "kwrite", "system-monitor"):
testtags.append(f"navigation_navibar_{app}")
testtags.append(f"{app}_inactive")
testtags.append(f"navigation_{app}_fullscreen")
Owner

We only actually have navigation_konsole_fullscreen, we don't need the others.

We only actually have navigation_konsole_fullscreen, we don't need the others.
lruzicka marked this conversation as resolved
check-needles.py Outdated
@ -288,0 +291,4 @@
testtags.append(f"navigation_navibar_{app}")
testtags.append(f"{app}_inactive")
testtags.append(f"navigation_{app}_fullscreen")
testtags.append(f"{app}_maximized")
Owner

We only have kcalc_maximized, we don't need the others.

We only have kcalc_maximized, we don't need the others.
lruzicka marked this conversation as resolved
lib/utils.pm Outdated
@ -1965,0 +1966,4 @@
type_very_safely("gsettings set org.gnome.software update-notification-timestamp $ep_time\n");
}
elsif ($desktop eq "kde") {
type_very_safely("kwriteconfig6 --file ~/.local/state/discovernotifierstaterc --group Global --key LastNotificationTime $ep_time\n");
Owner

this likely affects other tests too; should we check it doesn't cause unexpected consequences in any of them? it should be fine, but...

this likely affects other tests too; should we check it doesn't cause unexpected consequences in any of them? it should be fine, but...
Author
Owner

I checked and out of 17 files that call this subroutine, only one is KDE-related and it is this one.
This file has an explicit KDE branch, so it should not interfere with other tests.

I checked and out of 17 files that call this subroutine, only one is KDE-related and it is this one. This file has an explicit KDE branch, so it should not interfere with other tests.
lruzicka marked this conversation as resolved
@ -0,0 +10,4 @@
],
"properties": [],
"tags": [
"apps_run_system-monitor"
Owner

we already have apps_run_systemmonitor . just add a tag to that, or tweak the invocation so it matches both here and in apps_startstop and they can both use the same needle tag?

we already have apps_run_systemmonitor . just add a tag to that, or tweak the invocation so it matches both here and in apps_startstop and they can both use the same needle tag?
Author
Owner

Originally, I did not know how to make a needle automatically through menu_launch_type when it needed to words to invocate, because it would also produce a needle name with a space in it. That did not work. When hyphen is used, the two words still work and the needle name works correctly, too.

I changed the invocation in the startstop test, so this needle should now match both. I also added an apps_run_systemmonitor tag to it, just to be sure. For Gnome, we have been using apps_run_monitor for some time, so I have deleted the apps_run_system-monitor for Gnome.

Originally, I did not know how to make a needle automatically through menu_launch_type when it needed to words to invocate, because it would also produce a needle name with a space in it. That did not work. When hyphen is used, the two words still work and the needle name works correctly, too. I changed the invocation in the startstop test, so this needle should now match both. I also added an `apps_run_systemmonitor` tag to it, just to be sure. For Gnome, we have been using `apps_run_monitor` for some time, so I have deleted the `apps_run_system-monitor` for Gnome.
lruzicka marked this conversation as resolved
@ -0,0 +10,4 @@
],
"properties": [],
"tags": [
"apps_run_video"
Owner

It's interesting that we need to add this. It looks like 'video' runs Dragon Player, and we don't have that in apps_startstop. We should probably add it. Doesn't need to be part of this PR, though.

It's interesting that we need to add this. It looks like 'video' runs Dragon Player, and we don't have that in apps_startstop. We should probably add it. Doesn't need to be part of this PR, though.
Author
Owner

If video is enough to start Dragon Player, we could keep it, and I will add it to the start/stop test in a separate commit as per #567

If `video` is enough to start Dragon Player, we could keep it, and I will add it to the start/stop test in a separate commit as per https://forge.fedoraproject.org/quality/os-autoinst-distri-fedora/issues/567
lruzicka marked this conversation as resolved
@ -0,0 +10,4 @@
],
"properties": [],
"tags": [
"calculator_select_hidden"
Owner

this needle doesn't exactly match the GNOME needle; the GNOME needle appears to match on part of the app's UI, this looks like it's matching on the app's entry in the bottom bar. Are we testing hiding the app from the desktop or hiding it from the app list here? Shouldn't the assertions match across the two desktops?

this needle doesn't exactly match the GNOME needle; the GNOME needle appears to match on part of the app's UI, this looks like it's matching on the app's entry in the bottom bar. Are we testing hiding the app *from the desktop* or hiding it *from the app list* here? Shouldn't the assertions match across the two desktops?
Author
Owner

That seems to be correct. The code says

    # Check that we see the application, if so, it did not work
    # and we die.
    if (check_screen("apps_run_$calculator", timeout => 5)) {
        die("The application should have been hidden via menu, but is not.");
    }

    # Unhide the application
    if ($desktop eq "gnome") {
        send_key('super');
    }
    sleep(2);
    assert_and_click('calculator_select_hidden');
    assert_screen('apps_run_calculator');   

ergo it clicks on the hidden applicatino to unhide it. In Gnome, I can do it via Activities, so it is ok that it clicks the application. In KDE however, I have to click on the panel icon to unhide it.

That seems to be correct. The code says ``` # Check that we see the application, if so, it did not work # and we die. if (check_screen("apps_run_$calculator", timeout => 5)) { die("The application should have been hidden via menu, but is not."); } # Unhide the application if ($desktop eq "gnome") { send_key('super'); } sleep(2); assert_and_click('calculator_select_hidden'); assert_screen('apps_run_calculator'); ``` ergo it clicks on the hidden applicatino to unhide it. In Gnome, I can do it via Activities, so it is ok that it clicks the application. In KDE however, I have to click on the panel icon to unhide it.
lruzicka marked this conversation as resolved
@ -0,0 +24,4 @@
],
"properties": [],
"tags": [
"calculator_tiled_right"
Owner

why do we have a 20260601 and a 20260602 needle here? are they dupes? can we lose one?

why do we have a 20260601 and a 20260602 needle here? are they dupes? can we lose one?
Author
Owner

The older needle worked on one day and failed on the other. I am deleting the older one and we'll see how that goes.

The older needle worked on one day and failed on the other. I am deleting the older one and we'll see how that goes.
lruzicka marked this conversation as resolved
@ -0,0 +10,4 @@
],
"properties": [],
"tags": [
"kde_filedialogue_video_select"
Owner

this and 20260528 are essentially the same except the filename has a weird blue underline in this one, right? can we not just have one needle that doesn't include the area where the blue underline appears, so it matches both cases?

this and 20260528 are essentially the same except the filename has a weird blue underline in this one, right? can we not just have one needle that doesn't include the area where the blue underline appears, so it matches both cases?
lruzicka marked this conversation as resolved
@ -0,0 +17,4 @@
],
"properties": [],
"tags": [
"navigation_navibar_dolphin"
Owner

it looks like we need two versions of all these navibar needles because of transparency, but - can we be strategic and match only on completely solid areas? e.g. the app icons; those should be the same no matter what's behind the switcher UI?

it looks like we need two versions of all these navibar needles because of transparency, but - can we be strategic and match only on completely solid areas? e.g. the app icons; those should be the same no matter what's behind the switcher UI?
Author
Owner

Unfortunately, we can't. In KDE, the active item on the list is only distinguished by the bluish frame around it. It is not shaded (as it is in Gnome), so any attempt to match just the solid part ended up in a wrong item being expected. So I decided to match on the upper right corner of the item, where we also have a closing icon, then the solid application picture and a little of the bluish frame.

I deleted on of those needles and update the other one to match on the upper right corner.

Unfortunately, we can't. In KDE, the active item on the list is only distinguished by the bluish frame around it. It is not shaded (as it is in Gnome), so any attempt to match just the solid part ended up in a wrong item being expected. So I decided to match on the upper right corner of the item, where we also have a closing icon, then the solid application picture and a little of the bluish frame. I deleted on of those needles and update the other one to match on the upper right corner.
lruzicka marked this conversation as resolved
@ -0,0 +10,4 @@
],
"properties": [],
"tags": [
"video_fullscreen_on"
Owner

why do we need both this and the 20260528 one? why are the filenames different?

why do we need both this and the 20260528 one? why are the filenames different?
Author
Owner

The filenames are a mistake, but we have three needles for this: two Gnome needles and one KDE needle. I believe that the Gnome needles do not match on KDE, and that the original one also stopped matching on Gnome some time before July 10th, 2024.

Renaming the KDE needle.

The filenames are a mistake, but we have three needles for this: two Gnome needles and one KDE needle. I believe that the Gnome needles do not match on KDE, and that the original one also stopped matching on Gnome some time before July 10th, 2024. Renaming the KDE needle.
lruzicka marked this conversation as resolved
@ -0,0 +10,4 @@
],
"properties": [],
"tags": [
"video_second_stop"
Owner

why do we need three different video_second_stop needles? can their filenames please be consistent?

why do we need three different video_second_stop needles? can their filenames please be consistent?
Author
Owner

KDE is very unreliable in running the video, so it occassionally stops at a different place. I unified the names of the KDE needles.

KDE is very unreliable in running the video, so it occassionally stops at a different place. I unified the names of the KDE needles.
lruzicka marked this conversation as resolved
@ -0,0 +12,4 @@
"tags": [
"LANGUAGE-english",
"anaconda_select_install_lang_filtered",
"anaconda_select_install_lang_selected"
Owner

why this needle in this test? does this test ever even run the installer?

why this needle in this test? does this test ever even run the installer?
Author
Owner

Copy error. Deleting.

Copy error. Deleting.
lruzicka marked this conversation as resolved
@ -0,0 +24,4 @@
],
"properties": [],
"tags": [
"calculator_maximized"
Owner

the filename for this needle is inconsistent with all the other calculator needles.

the filename for this needle is inconsistent with all the other calculator needles.
lruzicka marked this conversation as resolved
@ -38,0 +46,4 @@
assert_and_click('kde_add_desktop');
assert_and_click('kde_add_desktop');
assert_and_click('kde_button_apply');
send_key("alt-f4");
Owner

nitpick throughout: I think we should be trying to standardize on single quotes for strings with no variables, double quotes for strings with variables. in new code at least.

nitpick throughout: I think we should be trying to standardize on single quotes for strings with no variables, double quotes for strings with variables. in new code at least.
lruzicka marked this conversation as resolved
@ -15,3 +21,1 @@
assert_screen("apps_run_texteditor");
menu_launch_type("files", maximize => 1);
assert_screen("apps_run_files");
menu_launch_type($editor, maximize => 1, checkstart => 1);
Owner

there does not appear to be a apps_run_text-editor needle, so I think this breaks GNOME, does it not? why not just do my $editor = "texteditor" above, to keep the GNOME behavior the same as it was before?

there does not appear to be a `apps_run_text-editor` needle, so I think this breaks GNOME, does it not? why not just do `my $editor = "texteditor"` above, to keep the GNOME behavior the same as it was before?
Author
Owner

texteditor does not find the application in the Activities mode. text-editor does. I have added the correct tag to the existing needle, so it won't break

`texteditor` does not find the application in the Activities mode. `text-editor` does. I have added the correct tag to the existing needle, so it won't break
lruzicka marked this conversation as resolved
@ -21,2 +25,3 @@
if (check_screen("apps_run_$manager")) {
send_key("alt-tab");
assert_screen "apps_run_texteditor";
assert_screen "apps_run_$editor";
Owner

ditto above note. this is broken unless we change tags or change the value of $editor.

ditto above note. this is broken unless we change tags or change the value of `$editor`.
lruzicka marked this conversation as resolved
@ -55,0 +64,4 @@
$calculator = "kcalc";
}
menu_launch_type($manager, checkstart => 1);
menu_launch_type($editor, checkstart => 1);
Owner

per earlier note, this is going to break GNOME because it will expect an apps_run_text-editor needle that does not exist.

per earlier note, this is going to break GNOME because it will expect an `apps_run_text-editor` needle that does not exist.
lruzicka marked this conversation as resolved
@ -61,3 +74,3 @@
# Switch back
send_key("alt-tab");
assert_screen("apps_run_texteditor");
assert_screen("apps_run_$editor");
Owner

...and again.

...and again.
lruzicka marked this conversation as resolved
@ -73,0 +82,4 @@
assert_and_click("${manager}_inactive");
assert_screen("apps_run_$manager");
assert_and_click("${editor}_inactive");
assert_screen("apps_run_$editor");
Owner

and again, and note there's two variants here. The previous names are editor_inactive and apps_run_texteditor. neither of those is the same as the value of ${editor}, which is text-editor.

and again, and note there's two variants here. The previous names are `editor_inactive` and `apps_run_texteditor`. neither of those is the same as the value of `${editor}`, which is `text-editor`.
Author
Owner

Tag added.

Tag added.
lruzicka marked this conversation as resolved
@ -105,3 +116,3 @@
# Switch to Editor
switch_to_app("texteditor", "forward");
switch_to_app($editor, "forward");
Owner

...and yet another case.

...and yet another case.
lruzicka marked this conversation as resolved
@ -111,3 +122,3 @@
# Switch to Editor
switch_to_app("texteditor", "forward");
switch_to_app($editor, "forward");
Owner

and again.

and again.
lruzicka marked this conversation as resolved
@ -118,2 +130,3 @@
send_key("$combo");
# Check that the application has minimised.
check_hidden("texteditor");
check_hidden($editor);
Owner

and again.

and again.
lruzicka marked this conversation as resolved
@ -127,3 +140,3 @@
# Switch to Editor
switch_to_app("texteditor", "forward");
switch_to_app($editor, "forward");
Owner

and again.

and again.
lruzicka marked this conversation as resolved
@ -34,0 +48,4 @@
menu_launch_type("$files", maximize => 1);
assert_screen("apps_run_$files");
menu_launch_type("$editor", maximize => 1);
assert_screen("apps_run_$editor");
Owner

for some reason you didn't use checkstart here as you did in other files, but you still have the problem with the needle tags for the editor on GNOME, because you changed it from texteditor to text-editor. And in this file - but not the others - you changed "files" to "nautilus" which may also cause problems - the apps_run_files needles have both tags (apps_run_files and apps_run_nautilus), but other needles like files_inactive do not.

for some reason you didn't use `checkstart` here as you did in other files, but you *still* have the problem with the needle tags for the editor on GNOME, because you changed it from `texteditor` to `text-editor`. And in this file - but not the others - you changed "files" to "nautilus" which may also cause problems - the `apps_run_files` needles have both tags (`apps_run_files` and `apps_run_nautilus`), but other needles like `files_inactive` do not.
Author
Owner

Changed nautilus back to files.

Changed nautilus back to files.
lruzicka marked this conversation as resolved
@ -25,0 +30,4 @@
$up = "pgup";
$down = "pgdn";
}
$calculator = "kcalc" if ($desktop eq "kde");
Owner

er, why not just put this in the block immediately above?

er, why not just put this in the block immediately above?
lruzicka marked this conversation as resolved
Review check-needles.py
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 49s
CI via Tox and perl / tox (pull_request) Failing after 1m42s
CI via Tox and perl / perl (pull_request) Successful in 3m27s
37118f2a5d
lruzicka force-pushed enhance/kde-navigation from 37118f2a5d
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 49s
CI via Tox and perl / tox (pull_request) Failing after 1m42s
CI via Tox and perl / perl (pull_request) Successful in 3m27s
to a3bf40f0f0
All checks were successful
CI via Tox and perl / checkwiki (pull_request) Successful in 48s
CI via Tox and perl / tox (pull_request) Successful in 1m51s
CI via Tox and perl / perl (pull_request) Successful in 3m18s
2026-06-11 09:07:53 +00:00
Compare
Fix matching area and delete dupe needle
All checks were successful
CI via Tox and perl / checkwiki (pull_request) Successful in 46s
CI via Tox and perl / tox (pull_request) Successful in 1m40s
CI via Tox and perl / perl (pull_request) Successful in 3m23s
457192207e
Fix exclamation marks
All checks were successful
CI via Tox and perl / checkwiki (pull_request) Successful in 47s
CI via Tox and perl / tox (pull_request) Successful in 1m42s
CI via Tox and perl / perl (pull_request) Successful in 3m24s
82ecb007c7
Move step to block above
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 44s
CI via Tox and perl / tox (pull_request) Successful in 1m40s
CI via Tox and perl / perl (pull_request) Has been cancelled
478991d644
Use Files instead Nautilus
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 47s
CI via Tox and perl / tox (pull_request) Successful in 1m40s
CI via Tox and perl / perl (pull_request) Has been cancelled
174429c23a
lruzicka force-pushed enhance/kde-navigation from 174429c23a
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 47s
CI via Tox and perl / tox (pull_request) Successful in 1m40s
CI via Tox and perl / perl (pull_request) Has been cancelled
to 93990bf59a
All checks were successful
CI via Tox and perl / checkwiki (pull_request) Successful in 48s
CI via Tox and perl / tox (pull_request) Successful in 1m46s
CI via Tox and perl / perl (pull_request) Successful in 3m22s
2026-06-11 17:17:54 +00:00
Compare
adamwill force-pushed enhance/kde-navigation from 93990bf59a
All checks were successful
CI via Tox and perl / checkwiki (pull_request) Successful in 48s
CI via Tox and perl / tox (pull_request) Successful in 1m46s
CI via Tox and perl / perl (pull_request) Successful in 3m22s
to 27f04e4368
All checks were successful
CI via Tox and perl / checkwiki (pull_request) Successful in 43s
CI via Tox and perl / tox (pull_request) Successful in 1m44s
CI via Tox and perl / perl (pull_request) Successful in 3m22s
AI Code Review / ai-review (pull_request_target) Successful in 31s
2026-07-08 16:58:11 +00:00
Compare

AI Code Review

Detailed Code Review

The PR accomplishes the goal of integrating KDE into the navigation test suite. The implementation cleanly distinguishes between GNOME and KDE applications, adjusts assertions dynamically via variables ($editor, $manager, etc.), and updates needles properly. Author corrections such as preserving GNOME compatibility with the text-editor naming and using - (hyphens) in names like system-monitor have been handled successfully. The code formatting has been consistently standardized across files.

📂 File Reviews

📄 `lib/utils.pm` - Added logic for setting the discover notification timestamp for KDE.
  • Minor [Style]: It is recommended to check explicitly for expected desktop environments and handle unrecognized values cleanly rather than failing silently if an unexpected desktop string is passed.
    • Suggestion: Keep the existing else block but consider explicitly raising an error or returning early if the notification stamp setup is a required step for testing success.

Summary

  • Overall Assessment: No critical issues or bugs identified. Implementation aligns with the synthesized requirements.
  • Minor Suggestions:
    • Consider standardizing $desktop checks across all PM files to use a unified helper function in utils.pm for evaluating desktop-specific app names to reduce duplicated lookup blocks.

🤖 AI Code Review | Generated with ai-code-review | Model: gemini-3.1-pro-preview

⚠️ AI-generated suggestions may be incorrect. Verify before applying. Not a replacement for human review.

## AI Code Review ### Detailed Code Review The PR accomplishes the goal of integrating KDE into the navigation test suite. The implementation cleanly distinguishes between GNOME and KDE applications, adjusts assertions dynamically via variables (`$editor`, `$manager`, etc.), and updates needles properly. Author corrections such as preserving GNOME compatibility with the `text-editor` naming and using `-` (hyphens) in names like `system-monitor` have been handled successfully. The code formatting has been consistently standardized across files. #### 📂 File Reviews <details> <summary><strong>📄 `lib/utils.pm`</strong> - Added logic for setting the discover notification timestamp for KDE.</summary> - **Minor** [Style]: It is recommended to check explicitly for expected desktop environments and handle unrecognized values cleanly rather than failing silently if an unexpected desktop string is passed. - *Suggestion:* Keep the existing else block but consider explicitly raising an error or returning early if the notification stamp setup is a required step for testing success. </details> ### ✅ Summary - **Overall Assessment:** No critical issues or bugs identified. Implementation aligns with the synthesized requirements. - **Minor Suggestions:** - Consider standardizing `$desktop` checks across all PM files to use a unified helper function in `utils.pm` for evaluating desktop-specific app names to reduce duplicated lookup blocks. --- 🤖 **AI Code Review** | Generated with [ai-code-review](https://gitlab.com/redhat/edge/ci-cd/ai-code-review) | **Model:** `gemini-3.1-pro-preview` ⚠️ *AI-generated suggestions may be incorrect. Verify before applying. Not a replacement for human review.*
Owner

Sorry, I kinda lost track of this one. I've rebased it and deployed it on staging and am doing a full compose run to check the impacts. If that looks good, I'll merge. Also need to check if it relies on any uncommitted needles.

Sorry, I kinda lost track of this one. I've rebased it and deployed it on staging and am doing a [full compose run](https://openqa.stg.fedoraproject.org/tests/overview?groupid=1&build=Fedora-Rawhide-20260708.n.0&version=Rawhide&distri=fedora) to check the impacts. If that looks good, I'll merge. Also need to check if it relies on any uncommitted needles.
adamwill added this to the Sprint 12 project 2026-07-08 17:50:01 +00:00
adamwill removed this from the Sprint 12 project 2026-07-08 17:50:07 +00:00
Needle adjustments for current Rawhide
All checks were successful
CI via Tox and perl / checkwiki (pull_request) Successful in 40s
CI via Tox and perl / tox (pull_request) Successful in 1m35s
CI via Tox and perl / perl (pull_request) Successful in 4m0s
7da89b4e1a
Signed-off-by: Adam Williamson <awilliam@redhat.com>
adamwill force-pushed enhance/kde-navigation from 7da89b4e1a
All checks were successful
CI via Tox and perl / checkwiki (pull_request) Successful in 40s
CI via Tox and perl / tox (pull_request) Successful in 1m35s
CI via Tox and perl / perl (pull_request) Successful in 4m0s
to 38a7e0ddf4
All checks were successful
CI via Tox and perl / checkwiki (pull_request) Successful in 41s
CI via Tox and perl / tox (pull_request) Successful in 1m33s
CI via Tox and perl / perl (pull_request) Successful in 3m18s
2026-07-08 23:34:44 +00:00
Compare
adamwill force-pushed enhance/kde-navigation from 38a7e0ddf4
All checks were successful
CI via Tox and perl / checkwiki (pull_request) Successful in 41s
CI via Tox and perl / tox (pull_request) Successful in 1m33s
CI via Tox and perl / perl (pull_request) Successful in 3m18s
to 373d2e3d88
All checks were successful
CI via Tox and perl / checkwiki (pull_request) Successful in 43s
CI via Tox and perl / tox (pull_request) Successful in 1m35s
CI via Tox and perl / perl (pull_request) Successful in 3m18s
2026-07-08 23:57:02 +00:00
Compare
adamwill force-pushed enhance/kde-navigation from 373d2e3d88
All checks were successful
CI via Tox and perl / checkwiki (pull_request) Successful in 43s
CI via Tox and perl / tox (pull_request) Successful in 1m35s
CI via Tox and perl / perl (pull_request) Successful in 3m18s
to 796d7e2b7e
All checks were successful
CI via Tox and perl / checkwiki (pull_request) Successful in 41s
CI via Tox and perl / tox (pull_request) Successful in 1m37s
CI via Tox and perl / perl (pull_request) Successful in 3m21s
2026-07-09 00:29:35 +00:00
Compare
adamwill force-pushed enhance/kde-navigation from 796d7e2b7e
All checks were successful
CI via Tox and perl / checkwiki (pull_request) Successful in 41s
CI via Tox and perl / tox (pull_request) Successful in 1m37s
CI via Tox and perl / perl (pull_request) Successful in 3m21s
to 62e9b31196
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 39s
CI via Tox and perl / tox (pull_request) Failing after 1m30s
CI via Tox and perl / perl (pull_request) Successful in 3m50s
2026-07-09 00:57:19 +00:00
Compare
adamwill force-pushed enhance/kde-navigation from 62e9b31196
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 39s
CI via Tox and perl / tox (pull_request) Failing after 1m30s
CI via Tox and perl / perl (pull_request) Successful in 3m50s
to 1b013789e2
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 40s
CI via Tox and perl / tox (pull_request) Failing after 1m34s
CI via Tox and perl / perl (pull_request) Successful in 3m15s
2026-07-09 15:36:47 +00:00
Compare
adamwill force-pushed enhance/kde-navigation from 1b013789e2
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 40s
CI via Tox and perl / tox (pull_request) Failing after 1m34s
CI via Tox and perl / perl (pull_request) Successful in 3m15s
to 1768719ddb
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 42s
CI via Tox and perl / tox (pull_request) Has been cancelled
CI via Tox and perl / perl (pull_request) Has been cancelled
2026-07-09 20:40:03 +00:00
Compare
adamwill force-pushed enhance/kde-navigation from 1768719ddb
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 42s
CI via Tox and perl / tox (pull_request) Has been cancelled
CI via Tox and perl / perl (pull_request) Has been cancelled
to 934ed8a8db
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 45s
CI via Tox and perl / tox (pull_request) Failing after 1m34s
CI via Tox and perl / perl (pull_request) Successful in 3m50s
2026-07-09 20:40:50 +00:00
Compare
adamwill force-pushed enhance/kde-navigation from 934ed8a8db
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 45s
CI via Tox and perl / tox (pull_request) Failing after 1m34s
CI via Tox and perl / perl (pull_request) Successful in 3m50s
to aea89141e1
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 42s
CI via Tox and perl / tox (pull_request) Failing after 1m39s
CI via Tox and perl / perl (pull_request) Successful in 3m25s
2026-07-09 21:13:08 +00:00
Compare
adamwill force-pushed enhance/kde-navigation from aea89141e1
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 42s
CI via Tox and perl / tox (pull_request) Failing after 1m39s
CI via Tox and perl / perl (pull_request) Successful in 3m25s
to 740dd7927b
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 41s
CI via Tox and perl / tox (pull_request) Failing after 1m38s
CI via Tox and perl / perl (pull_request) Has been cancelled
2026-07-10 00:56:50 +00:00
Compare
adamwill force-pushed enhance/kde-navigation from 740dd7927b
Some checks failed
CI via Tox and perl / checkwiki (pull_request) Successful in 41s
CI via Tox and perl / tox (pull_request) Failing after 1m38s
CI via Tox and perl / perl (pull_request) Has been cancelled
to 55660af64a
All checks were successful
CI via Tox and perl / checkwiki (pull_request) Successful in 46s
CI via Tox and perl / tox (pull_request) Successful in 1m42s
CI via Tox and perl / perl (pull_request) Successful in 3m16s
2026-07-10 00:59:13 +00:00
Compare
Owner

I think this is good enough now, after I tweaked a few things. Let's go ahead and merge it. Thanks.

I think this is good enough now, after I tweaked a few things. Let's go ahead and merge it. Thanks.
adamwill deleted branch enhance/kde-navigation 2026-07-10 01:08:51 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
quality/os-autoinst-distri-fedora!566
No description provided.