Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package openQA for openSUSE:Factory checked in at 2026-02-20 17:43:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openQA (Old) and /work/SRC/openSUSE:Factory/.openQA.new.1977 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openQA" Fri Feb 20 17:43:30 2026 rev:807 rq:1334067 version:5.1771473096.98530511 Changes: -------- --- /work/SRC/openSUSE:Factory/openQA/openQA.changes 2026-02-19 14:21:41.462515125 +0100 +++ /work/SRC/openSUSE:Factory/.openQA.new.1977/openQA.changes 2026-02-20 17:51:33.253847033 +0100 @@ -2 +2 @@ -Wed Feb 18 17:13:05 UTC 2026 - [email protected] +Thu Feb 19 13:10:12 UTC 2026 - [email protected] @@ -4 +4,2 @@ -- Update to version 5.1771422749.560a3b26: +- Update to version 5.1771473096.98530511: + * feat(ui): remove empty query parameters from /tests/overview URL @@ -6,0 +8 @@ + * feat: Allow specifying `CASEDIR` to avoid symlinking Old: ---- openQA-5.1771422749.560a3b26.obscpio New: ---- openQA-5.1771473096.98530511.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openQA-client-test.spec ++++++ --- /var/tmp/diff_new_pack.jbBywL/_old 2026-02-20 17:51:36.093965767 +0100 +++ /var/tmp/diff_new_pack.jbBywL/_new 2026-02-20 17:51:36.105966270 +0100 @@ -18,7 +18,7 @@ %define short_name openQA-client Name: %{short_name}-test -Version: 5.1771422749.560a3b26 +Version: 5.1771473096.98530511 Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA-devel-test.spec ++++++ --- /var/tmp/diff_new_pack.jbBywL/_old 2026-02-20 17:51:36.209970617 +0100 +++ /var/tmp/diff_new_pack.jbBywL/_new 2026-02-20 17:51:36.209970617 +0100 @@ -18,7 +18,7 @@ %define short_name openQA-devel Name: %{short_name}-test -Version: 5.1771422749.560a3b26 +Version: 5.1771473096.98530511 Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA-test.spec ++++++ --- /var/tmp/diff_new_pack.jbBywL/_old 2026-02-20 17:51:36.285973795 +0100 +++ /var/tmp/diff_new_pack.jbBywL/_new 2026-02-20 17:51:36.289973962 +0100 @@ -18,7 +18,7 @@ %define short_name openQA Name: %{short_name}-test -Version: 5.1771422749.560a3b26 +Version: 5.1771473096.98530511 Release: 0 Summary: Test package for openQA License: GPL-2.0-or-later ++++++ openQA-worker-test.spec ++++++ --- /var/tmp/diff_new_pack.jbBywL/_old 2026-02-20 17:51:36.337975969 +0100 +++ /var/tmp/diff_new_pack.jbBywL/_new 2026-02-20 17:51:36.341976137 +0100 @@ -18,7 +18,7 @@ %define short_name openQA-worker Name: %{short_name}-test -Version: 5.1771422749.560a3b26 +Version: 5.1771473096.98530511 Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA.spec ++++++ --- /var/tmp/diff_new_pack.jbBywL/_old 2026-02-20 17:51:36.417979313 +0100 +++ /var/tmp/diff_new_pack.jbBywL/_new 2026-02-20 17:51:36.421979481 +0100 @@ -99,7 +99,7 @@ %define devel_requires %devel_no_selenium_requires chromedriver Name: openQA -Version: 5.1771422749.560a3b26 +Version: 5.1771473096.98530511 Release: 0 Summary: The openQA web-frontend, scheduler and tools License: GPL-2.0-or-later ++++++ openQA-5.1771422749.560a3b26.obscpio -> openQA-5.1771473096.98530511.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1771422749.560a3b26/assets/javascripts/filter_form.js new/openQA-5.1771473096.98530511/assets/javascripts/filter_form.js --- old/openQA-5.1771422749.560a3b26/assets/javascripts/filter_form.js 2026-02-18 14:52:29.000000000 +0100 +++ new/openQA-5.1771473096.98530511/assets/javascripts/filter_form.js 2026-02-19 04:51:36.000000000 +0100 @@ -41,7 +41,13 @@ } }); - const newQuery = new URLSearchParams(formData).toString(); + const params = new URLSearchParams(formData); + const keysToDelete = []; + params.forEach((val, key) => { + if (val === '') keysToDelete.push(key); + }); + keysToDelete.forEach(key => params.delete(key)); + const newQuery = params.toString(); if (newQuery !== currentQuery) { // show progress indication diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1771422749.560a3b26/lib/OpenQA/Worker/Engines/isotovideo.pm new/openQA-5.1771473096.98530511/lib/OpenQA/Worker/Engines/isotovideo.pm --- old/openQA-5.1771422749.560a3b26/lib/OpenQA/Worker/Engines/isotovideo.pm 2026-02-18 14:52:29.000000000 +0100 +++ new/openQA-5.1771473096.98530511/lib/OpenQA/Worker/Engines/isotovideo.pm 2026-02-19 04:51:36.000000000 +0100 @@ -390,12 +390,14 @@ # ensure a CASEDIR and a PRODUCTDIR is assigned and create a symlink if required my $absolute_paths = $vars->{ABSOLUTE_TEST_CONFIG_PATHS}; - my @vars_for_default_dirs = ($vars->{DISTRI}, $vars->{VERSION}, $shared_cache); + my $casedir = $vars->{CASEDIR}; + my $effective_distri = defined $casedir && !looks_like_url_with_scheme($casedir) ? $casedir : $vars->{DISTRI}; + my @vars_for_default_dirs = ($effective_distri, $vars->{VERSION}, $shared_cache); my $default_casedir = testcasedir(@vars_for_default_dirs); my $default_productdir = productdir(@vars_for_default_dirs); my $target_name = path($default_casedir)->basename; - my $has_custom_dir = $vars->{CASEDIR} || $vars->{PRODUCTDIR}; - my $casedir = $vars->{CASEDIR} //= $absolute_paths ? $default_casedir : $target_name; + my $has_custom_dir = $casedir || $vars->{PRODUCTDIR}; + $casedir = $vars->{CASEDIR} //= $absolute_paths ? $default_casedir : $target_name; unless (_is_job_only_relying_on_git($vars)) { if ($casedir eq $target_name) { $vars->{PRODUCTDIR} //= substr($default_productdir, rindex($default_casedir, $target_name)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1771422749.560a3b26/t/24-worker-engine.t new/openQA-5.1771473096.98530511/t/24-worker-engine.t --- old/openQA-5.1771422749.560a3b26/t/24-worker-engine.t 2026-02-18 14:52:29.000000000 +0100 +++ new/openQA-5.1771473096.98530511/t/24-worker-engine.t 2026-02-19 04:51:36.000000000 +0100 @@ -466,7 +466,20 @@ my $vars_data = get_job_json_data($pool_directory); is $vars_data->{NEEDLES_DIR}, 'needles', 'relative NEEDLES_DIR is set to name of symlink'; is $result->{error}, undef, 'no error occurred (4)'; + }; + subtest 'good case: custom "default" CASEDIR specified overriding DISTRI' => sub { + my %settings = (DISTRI => 'opensuse', CASEDIR => 'fedora', NEEDLES_DIR => 'https://foo', JOBTOKEN => 'token'); + my ($job, $result) = OpenQA::Worker::Job->new($worker, $client, {id => 12, settings => \%settings}); + combined_like { $result = _run_engine($job) } + qr {Symlinked from "t/data/openqa/share/tests/fedora" to "$pool_directory/fedora"}, + 'symlink for CASEDIR=fedora created, taking precedence over DISTRI=opensuse'; + my $vars_data = get_job_json_data($pool_directory); + is $vars_data->{CASEDIR}, 'fedora', 'relative CASEDIR is set to name of symlink'; + is $vars_data->{NEEDLES_DIR}, 'https://foo', 'NEEDLES_DIR from Git not affected'; + is $result->{error}, undef, 'no error occurred (5)'; + is readlink path($pool_directory, $vars_data->{CASEDIR}), testcasedir('fedora', undef, undef), + 'tests symlink points to fedora tests as per CASEDIR=fedora'; }; subtest 'error case: custom CASEDIR specified, fail to symlink needles because cache directory does not exist' => diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1771422749.560a3b26/t/ui/10-tests_overview.t new/openQA-5.1771473096.98530511/t/ui/10-tests_overview.t --- old/openQA-5.1771422749.560a3b26/t/ui/10-tests_overview.t 2026-02-18 14:52:29.000000000 +0100 +++ new/openQA-5.1771473096.98530511/t/ui/10-tests_overview.t 2026-02-19 04:51:36.000000000 +0100 @@ -138,13 +138,14 @@ is(scalar @filtered_out, 0, 'result filter correctly applied'); # Test whether all URL parameter are passed correctly -my $url_with_escaped_parameters - = $baseurl - . 'tests/overview?arch=&flavor=&machine=&test=&modules=&module_re=&group_glob=¬_group_glob=&comment=&distri=opensuse&build=0091&version=Staging%3AI&groupid=1001'; +my $url = $baseurl . 'tests/overview?'; +my $empty_params = 'arch=&flavor=&machine=&test=&modules=&module_re=&group_glob=¬_group_glob=&comment=&'; +my $escaped_params = 'distri=opensuse&build=0091&version=Staging%3AI&groupid=1001'; +my $url_with_escaped_parameters = $url . $empty_params . $escaped_params; $driver->get($url_with_escaped_parameters); $driver->find_element('#filter-panel .card-header')->click(); $driver->find_element('#filter-form button[type="submit"]')->click(); -my $url_after_filter = $url_with_escaped_parameters; +my $url_after_filter = $url . $escaped_params; my $desc = 'escaped URL parameters are passed correctly'; wait_until sub { $driver->get_current_url eq $url_after_filter }, $desc, 10; is $driver->get_current_url, $url_after_filter, $desc; @@ -778,6 +779,19 @@ }; }; +subtest 'empty query parameters are removed' => sub { + $driver->get('/tests/overview'); + $driver->find_element('#filter-panel .card-header')->click(); + wait_for_element(selector => 'input[name="arch"]', is_displayed => 1); + $driver->find_element('input[name="arch"]')->send_keys('x86_64'); + $driver->find_element('#filter-form button[type="submit"]')->click(); + wait_until sub { $driver->get_current_url =~ qr/arch=x86_64/ }, 'form submitted'; + my $url = $driver->get_current_url; + like $url, qr/arch=x86_64/, 'URL contains arch parameter'; + unlike $url, qr/flavor=/, 'URL does not contain empty flavor parameter'; + unlike $url, qr/machine=/, 'URL does not contain empty machine parameter'; +}; + kill_driver(); done_testing(); ++++++ openQA.obsinfo ++++++ --- /var/tmp/diff_new_pack.jbBywL/_old 2026-02-20 17:52:02.791083752 +0100 +++ /var/tmp/diff_new_pack.jbBywL/_new 2026-02-20 17:52:02.799084087 +0100 @@ -1,5 +1,5 @@ name: openQA -version: 5.1771422749.560a3b26 -mtime: 1771422749 -commit: 560a3b26b137e8ae104a8b7993e70ab786952646 +version: 5.1771473096.98530511 +mtime: 1771473096 +commit: 98530511b4f5bb2ebda615f152d1dfd92e468ceb
