Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package openQA for openSUSE:Factory checked in at 2025-11-11 19:21:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openQA (Old) and /work/SRC/openSUSE:Factory/.openQA.new.1980 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openQA" Tue Nov 11 19:21:43 2025 rev:773 rq:1317107 version:5.1762780626.92a68246 Changes: -------- --- /work/SRC/openSUSE:Factory/openQA/openQA.changes 2025-11-04 18:43:08.375403670 +0100 +++ /work/SRC/openSUSE:Factory/.openQA.new.1980/openQA.changes 2025-11-11 19:22:32.874516650 +0100 @@ -1,0 +2,11 @@ +Tue Nov 11 13:58:09 UTC 2025 - [email protected] + +- Update to version 5.1762780626.92a68246: + * Fix check in git_clone for dirty git dir + * Prevent `t/24-worker-webui-connection.t` from running into timeout + * Be explicit about certain aspects of archiving in the documentation + * Fix sporadic failures in `t/ui/10-tests_overview.t` + * Adapt os-autoinst-scripts reference after rename + * Properly conclude scheduling if there are no jobs + +------------------------------------------------------------------- Old: ---- openQA-5.1762193001.2f6e71ca.obscpio New: ---- openQA-5.1762780626.92a68246.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openQA-client-test.spec ++++++ --- /var/tmp/diff_new_pack.nSe8YE/_old 2025-11-11 19:22:34.330577634 +0100 +++ /var/tmp/diff_new_pack.nSe8YE/_new 2025-11-11 19:22:34.330577634 +0100 @@ -18,7 +18,7 @@ %define short_name openQA-client Name: %{short_name}-test -Version: 5.1762193001.2f6e71ca +Version: 5.1762780626.92a68246 Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA-devel-test.spec ++++++ --- /var/tmp/diff_new_pack.nSe8YE/_old 2025-11-11 19:22:34.370579309 +0100 +++ /var/tmp/diff_new_pack.nSe8YE/_new 2025-11-11 19:22:34.370579309 +0100 @@ -18,7 +18,7 @@ %define short_name openQA-devel Name: %{short_name}-test -Version: 5.1762193001.2f6e71ca +Version: 5.1762780626.92a68246 Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA-test.spec ++++++ --- /var/tmp/diff_new_pack.nSe8YE/_old 2025-11-11 19:22:34.410580985 +0100 +++ /var/tmp/diff_new_pack.nSe8YE/_new 2025-11-11 19:22:34.414581152 +0100 @@ -18,7 +18,7 @@ %define short_name openQA Name: %{short_name}-test -Version: 5.1762193001.2f6e71ca +Version: 5.1762780626.92a68246 Release: 0 Summary: Test package for openQA License: GPL-2.0-or-later ++++++ openQA-worker-test.spec ++++++ --- /var/tmp/diff_new_pack.nSe8YE/_old 2025-11-11 19:22:34.446582493 +0100 +++ /var/tmp/diff_new_pack.nSe8YE/_new 2025-11-11 19:22:34.450582660 +0100 @@ -18,7 +18,7 @@ %define short_name openQA-worker Name: %{short_name}-test -Version: 5.1762193001.2f6e71ca +Version: 5.1762780626.92a68246 Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA.spec ++++++ --- /var/tmp/diff_new_pack.nSe8YE/_old 2025-11-11 19:22:34.486584168 +0100 +++ /var/tmp/diff_new_pack.nSe8YE/_new 2025-11-11 19:22:34.490584336 +0100 @@ -99,7 +99,7 @@ %define devel_requires %devel_no_selenium_requires chromedriver Name: openQA -Version: 5.1762193001.2f6e71ca +Version: 5.1762780626.92a68246 Release: 0 Summary: The openQA web-frontend, scheduler and tools License: GPL-2.0-or-later ++++++ openQA-5.1762193001.2f6e71ca.obscpio -> openQA-5.1762780626.92a68246.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1762193001.2f6e71ca/docs/Contributing.asciidoc new/openQA-5.1762780626.92a68246/docs/Contributing.asciidoc --- old/openQA-5.1762193001.2f6e71ca/docs/Contributing.asciidoc 2025-11-03 19:03:21.000000000 +0100 +++ new/openQA-5.1762780626.92a68246/docs/Contributing.asciidoc 2025-11-10 14:17:06.000000000 +0100 @@ -638,7 +638,7 @@ git clone [email protected]:os-autoinst/openQA $OPENQA_REPOS/openQA git clone [email protected]:os-autoinst/os-autoinst $OPENQA_REPOS/os-autoinst -git clone [email protected]:os-autoinst/scripts $OPENQA_REPOS/scripts +git clone [email protected]:os-autoinst/os-autoinst-scripts $OPENQA_REPOS/scripts ---- ==== Config Files diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1762193001.2f6e71ca/docs/Installing.asciidoc new/openQA-5.1762780626.92a68246/docs/Installing.asciidoc --- old/openQA-5.1762193001.2f6e71ca/docs/Installing.asciidoc 2025-11-03 19:03:21.000000000 +0100 +++ new/openQA-5.1762780626.92a68246/docs/Installing.asciidoc 2025-11-10 14:17:06.000000000 +0100 @@ -1206,7 +1206,7 @@ `timeout` command is used (see `timeout --help`). For example there is already an approach called "auto-review" -https://github.com/os-autoinst/scripts/#auto-review---automatically-detect-known-issues-in-openqa-jobs-label-openqa-jobs-with-ticket-references-and-optionally-retrigger +https://github.com/os-autoinst/os-autoinst-scripts/#auto-review---automatically-detect-known-issues-in-openqa-jobs-label-openqa-jobs-with-ticket-references-and-optionally-retrigger which offers helpful, external scripts. Config settings for openqa.opensuse.org enabling the auto-review scripts could look like: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1762193001.2f6e71ca/docs/UsersGuide.asciidoc new/openQA-5.1762780626.92a68246/docs/UsersGuide.asciidoc --- old/openQA-5.1762193001.2f6e71ca/docs/UsersGuide.asciidoc 2025-11-03 19:03:21.000000000 +0100 +++ new/openQA-5.1762780626.92a68246/docs/UsersGuide.asciidoc 2025-11-10 14:17:06.000000000 +0100 @@ -1499,6 +1499,17 @@ happens as part of the normal cleanup. In the web UI an icon indicates that a job was archived. +This means a job is "in the archive" if: + +1. it is important. +2. its age is between the retention of regular jobs and important jobs. +3. thresholds for space-aware cleanup do not prevent the cleanup of job results + from happening at all (because if the cleanup is skipped, also archiving is + skipped). + +NOTE: Archiving does *not* prevent cleanup. If an archived important job exceeds +the retention for important jobs it is still subject to cleanup. + [id="asset_cleanup"] === Cleanup strategy for assets === @@ -1648,7 +1659,7 @@ different generated reports, e.g. all tests that need review, tests that are linked to closed bugs, etc. * Use - https://github.com/os-autoinst/scripts/blob/master/README.md#auto-review---automatically-detect-known-issues-in-openqa-jobs-label-openqa-jobs-with-ticket-references-and-optionally-retrigger[auto-review] + https://github.com/os-autoinst/os-autoinst-scripts/blob/master/README.md#auto-review---automatically-detect-known-issues-in-openqa-jobs-label-openqa-jobs-with-ticket-references-and-optionally-retrigger[auto-review] to handle flaky issues and even automatically retrigger according tests * In case of known sporadic issues that can not be fixed quickly consider automatic retries of jobs http://open.qa/docs/#_automatic_retries_of_jobs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1762193001.2f6e71ca/docs/WritingTests.asciidoc new/openQA-5.1762780626.92a68246/docs/WritingTests.asciidoc --- old/openQA-5.1762193001.2f6e71ca/docs/WritingTests.asciidoc 2025-11-03 19:03:21.000000000 +0100 +++ new/openQA-5.1762780626.92a68246/docs/WritingTests.asciidoc 2025-11-10 14:17:06.000000000 +0100 @@ -654,9 +654,9 @@ for details) and a concrete worker host (see <<WritingTests.asciidoc#_assigning_jobs_to_workers,Assigning jobs to workers>>). The script -https://github.com/os-autoinst/scripts/blob/master/README.md#openqa-investigate---automatic-investigation-jobs-with-failure-analysis-in-openqa[`openqa-investigate`] helps automating retries like this. It will also +https://github.com/os-autoinst/os-autoinst-scripts/blob/master/README.md#openqa-investigate---automatic-investigation-jobs-with-failure-analysis-in-openqa[`openqa-investigate`] helps automating retries like this. It will also automatically create -https://github.com/os-autoinst/scripts/blob/master/README.md#more-details-and-examples-about-openqa-investigate-comments[a comment] +https://github.com/os-autoinst/os-autoinst-scripts/blob/master/README.md#more-details-and-examples-about-openqa-investigate-comments[a comment] with the findings. To improve reproducibility one should also avoid relying on any external @@ -2333,7 +2333,7 @@ openQA job which is mentioned in the PR description or comment. The scripts repository contains a pre-defined GitHub action for this. Checkout the documentation of the -https://github.com/os-autoinst/scripts/blob/master/openqa-clone-and-monitor-job-from-pr[openqa-clone-and-monitor-job-from-pr] +https://github.com/os-autoinst/os-autoinst-scripts/blob/master/openqa-clone-and-monitor-job-from-pr[openqa-clone-and-monitor-job-from-pr] script for further information and an example configuration. NOTE: These examples show how API credentials are supplied. It is important to diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1762193001.2f6e71ca/lib/OpenQA/Git.pm new/openQA-5.1762780626.92a68246/lib/OpenQA/Git.pm --- old/openQA-5.1762193001.2f6e71ca/lib/OpenQA/Git.pm 2025-11-03 19:03:21.000000000 +0100 +++ new/openQA-5.1762780626.92a68246/lib/OpenQA/Git.pm 2025-11-10 14:17:06.000000000 +0100 @@ -171,7 +171,7 @@ } sub is_workdir_clean ($self) { - my $r = $self->_run_cmd(['diff-index', 'HEAD', '--exit-code'], \%CHECK_OPTIONS); + my $r = $self->_run_cmd(['diff', '--exit-code', '--stat'], \%CHECK_OPTIONS); die $self->_format_git_error($r, 'Internal Git error: Unexpected exit code ' . $r->{return_code}) if $r->{return_code} > 1; return $r->{status}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1762193001.2f6e71ca/lib/OpenQA/Scheduler/Model/Jobs.pm new/openQA-5.1762780626.92a68246/lib/OpenQA/Scheduler/Model/Jobs.pm --- old/openQA-5.1762193001.2f6e71ca/lib/OpenQA/Scheduler/Model/Jobs.pm 2025-11-03 19:03:21.000000000 +0100 +++ new/openQA-5.1762780626.92a68246/lib/OpenQA/Scheduler/Model/Jobs.pm 2025-11-10 14:17:06.000000000 +0100 @@ -46,7 +46,6 @@ my $limit = OpenQA::App->singleton->config->{scheduler}->{max_running_jobs}; if ($limit >= 0 && $running >= $limit) { log_debug("max_running_jobs ($limit) exceeded, scheduling no additional jobs"); - $self->emit('conclude'); return ({}, {}); } my $max_allocate = $limit >= 0 ? min(MAX_JOB_ALLOCATION, $limit - $running) : MAX_JOB_ALLOCATION; @@ -157,17 +156,12 @@ my $free_workers = determine_free_workers($self->shuffle_workers); my $worker_count = $schema->resultset('Workers')->count; my $free_worker_count = @$free_workers; - unless ($free_worker_count) { - $self->emit('conclude'); - return []; - } my $scheduled_jobs = $self->determine_scheduled_jobs; log_debug( "Scheduling: Free workers: $free_worker_count/$worker_count; Scheduled jobs: " . scalar(keys %$scheduled_jobs)); my ($allocated_workers, $allocated_jobs) = $self->_allocate_jobs($free_workers); - return [] unless keys %$allocated_workers; my @successfully_allocated; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1762193001.2f6e71ca/t/14-grutasks-git.t new/openQA-5.1762780626.92a68246/t/14-grutasks-git.t --- old/openQA-5.1762193001.2f6e71ca/t/14-grutasks-git.t 2025-11-03 19:03:21.000000000 +0100 +++ new/openQA-5.1762780626.92a68246/t/14-grutasks-git.t 2025-11-10 14:17:06.000000000 +0100 @@ -89,7 +89,7 @@ elsif ($action eq 'branch') { $stdout = 'master'; } - elsif ($action eq 'diff-index') { + elsif ($action eq 'diff') { $return_code = 1 if $path =~ m/dirty-status/; $return_code = 2 if $path =~ m/dirty-error/; } @@ -126,19 +126,19 @@ # /sha2 ['get-url' => 'git -C /sha2 remote get-url origin'], ['rev-parse' => 'git -C /sha2 rev-parse --verify -q def'], - ['check dirty' => 'git -C /sha2 diff-index HEAD --exit-code'], + ['check dirty' => 'git -C /sha2 diff --exit-code --stat'], ['current branch' => 'git -C /sha2 branch --show-current'], ['fetch branch' => "env 'GIT_SSH_COMMAND=ssh -oBatchMode=yes' GIT_ASKPASS= GIT_TERMINAL_PROMPT=false git -C /sha2 fetch origin def"], # /branch ['get-url' => 'git -C /branch/ remote get-url origin'], - ['check dirty' => 'git -C /branch/ diff-index HEAD --exit-code'], + ['check dirty' => 'git -C /branch/ diff --exit-code --stat'], ['current branch' => 'git -C /branch/ branch --show-current'], ['fetch branch' => "env 'GIT_SSH_COMMAND=ssh -oBatchMode=yes' GIT_ASKPASS= GIT_TERMINAL_PROMPT=false git -C /branch/ fetch origin foobranch"], # /default/ ['get-url' => 'git -C /default/ remote get-url origin'], - ['check dirty' => 'git -C /default/ diff-index HEAD --exit-code'], + ['check dirty' => 'git -C /default/ diff --exit-code --stat'], ['default remote' => "env 'GIT_SSH_COMMAND=ssh -oBatchMode=yes' GIT_ASKPASS= GIT_TERMINAL_PROMPT=false git ls-remote --symref http://localhost/foo.git HEAD"], ['current branch' => 'git -C /default/ branch --show-current'], ['fetch default' => "env 'GIT_SSH_COMMAND=ssh -oBatchMode=yes' GIT_ASKPASS= GIT_TERMINAL_PROMPT=false git -C /default/ fetch origin master"], @@ -147,7 +147,7 @@ # /sha-branchname ['get-url' => 'git -C /sha-branchname remote get-url origin'], ['rev-parse' => 'git -C /sha-branchname rev-parse --verify -q a123'], - ['check dirty' => 'git -C /sha-branchname diff-index HEAD --exit-code'], + ['check dirty' => 'git -C /sha-branchname diff --exit-code --stat'], ['current branch' => 'git -C /sha-branchname branch --show-current'], ['fetch branch' => "env 'GIT_SSH_COMMAND=ssh -oBatchMode=yes' GIT_ASKPASS= GIT_TERMINAL_PROMPT=false git -C /sha-branchname fetch origin a123"], @@ -190,7 +190,7 @@ subtest 'dirty git checkout' => sub { %$clone_dirs = ("$git_clones/dirty-status" => 'http://localhost/foo.git'); stderr_like { $res = run_gru_job(@gru_args) } - qr(git diff-index HEAD), 'error about diff on stderr'; + qr(git diff --exit-code --stat), 'error about diff on stderr'; is $res->{state}, 'failed', 'minion job failed'; like $res->{result}, qr/NOT updating dirty Git checkout.*can disable.*details/s, 'error message'; }; @@ -228,7 +228,7 @@ my $expected_calls = [ # /opensuse ['get-url' => 'git -C /opensuse remote get-url origin'], - ['check dirty' => 'git -C /opensuse diff-index HEAD --exit-code'], + ['check dirty' => 'git -C /opensuse diff --exit-code --stat'], ['default remote' => "env 'GIT_SSH_COMMAND=ssh -oBatchMode=yes' GIT_ASKPASS= GIT_TERMINAL_PROMPT=false git ls-remote --symref http://osado HEAD"], ['current branch' => 'git -C /opensuse branch --show-current'], ['fetch default ' => "env 'GIT_SSH_COMMAND=ssh -oBatchMode=yes' GIT_ASKPASS= GIT_TERMINAL_PROMPT=false git -C /opensuse fetch origin master"], @@ -236,7 +236,7 @@ # /opensuse/needles ['get-url' => 'git -C /opensuse/needles remote get-url origin'], - ['check dirty' => 'git -C /opensuse/needles diff-index HEAD --exit-code'], + ['check dirty' => 'git -C /opensuse/needles diff --exit-code --stat'], ['default remote' => "env 'GIT_SSH_COMMAND=ssh -oBatchMode=yes' GIT_ASKPASS= GIT_TERMINAL_PROMPT=false git ls-remote --symref http://osado HEAD"], ['current branch' => 'git -C /opensuse/needles branch --show-current'], ['fetch branch' => "env 'GIT_SSH_COMMAND=ssh -oBatchMode=yes' GIT_ASKPASS= GIT_TERMINAL_PROMPT=false git -C /opensuse/needles fetch origin master"], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1762193001.2f6e71ca/t/24-worker-webui-connection.t new/openQA-5.1762780626.92a68246/t/24-worker-webui-connection.t --- old/openQA-5.1762193001.2f6e71ca/t/24-worker-webui-connection.t 2025-11-03 19:03:21.000000000 +0100 +++ new/openQA-5.1762780626.92a68246/t/24-worker-webui-connection.t 2025-11-10 14:17:06.000000000 +0100 @@ -40,12 +40,12 @@ $app->log->level('info'); throws_ok { - OpenQA::Worker::WebUIConnection->new('http://test-host', {}); + OpenQA::Worker::WebUIConnection->new('http://127.0.0.1:1', {}); } -qr{API key and secret are needed for the worker connecting http://test-host.*}, 'auth required'; +qr{API key and secret are needed for the worker connecting http://127\.0\.0\.1:1.*}, 'auth required'; my $client = OpenQA::Worker::WebUIConnection->new( - 'http://test-host', + 'http://127.0.0.1:1', { apikey => 'foo', apisecret => 'bar' @@ -71,8 +71,8 @@ $client->working_directory('t/'); is($client->status, 'new', 'client in status new'); -throws_ok { $client->send('get', '.'); } qr{attempt to send command to web UI http://test-host with no worker ID.*}, - 'registration required'; +throws_ok { $client->send('get', '.'); } +qr{attempt to send command to web UI http://127\.0\.0\.1:1 with no worker ID.*}, 'registration required'; # mock OpenQA::Worker::Job so it starts/stops the livelog also if the backend isn't running my $job_mock = Test::MockModule->new('OpenQA::Worker::Job'); @@ -97,7 +97,7 @@ is $client->status, 'disabled', 'client failed to register after validation error'; push @expected_events, {status => 'registering', error_message => undef}, { - error_message => 'Failed to register at http://test-host: host did not return a worker ID', + error_message => 'Failed to register at http://127.0.0.1:1: host did not return a worker ID', status => 'disabled' }; }; @@ -143,7 +143,7 @@ is($callback_invoked, 1, 'callback has been invoked'); is($client->worker->stop_current_job_called, 0, 'not attempted to stop current job because it is from different web UI'); - $client->worker->current_webui_host('http://test-host'); + $client->worker->current_webui_host('http://127.0.0.1:1'); $callback_invoked = 0; combined_like { $client->send( @@ -167,7 +167,7 @@ subtest 'emitted events' => sub { my $error_message = ref($happened_events[1]) eq 'HASH' ? delete $happened_events[1]->{error_message} : undef; is_deeply \@happened_events, \@expected_events, 'expected events emitted'; - like $error_message, qr{Failed to register at http://test-host - connection error:.*}, 'error message'; + like $error_message, qr{Failed to register at http://127.0.0.1:1 - connection error:.*}, 'error message'; } or always_explain \@happened_events; }; @@ -175,10 +175,10 @@ my @expected_events = ( { status => 'disabled', - error_message => 'Unable to establish ws connection to http://test-host without worker ID' + error_message => 'Unable to establish ws connection to http://127.0.0.1:1 without worker ID' }, {status => 'establishing_ws', error_message => undef}, - {status => 'failed', error_message => 'Unable to upgrade to ws connection via http://test-host/api/v1/ws/42'}, + {status => 'failed', error_message => 'Unable to upgrade to ws connection via http://127.0.0.1:1/api/v1/ws/42'}, ); @happened_events = (); @@ -193,7 +193,7 @@ $client->once(status_changed => sub ($status, @) { Mojo::IOLoop->stop if $status eq 'failed' }); Mojo::IOLoop->start; is_deeply \@happened_events, \@expected_events, 'events emitted' or always_explain \@happened_events; - is $client->last_error, 'Unable to upgrade to ws connection via http://test-host/api/v1/ws/42', 'last error set'; + is $client->last_error, 'Unable to upgrade to ws connection via http://127.0.0.1:1/api/v1/ws/42', 'last error set'; }; subtest 'clearning errors' => sub { @@ -430,9 +430,9 @@ # test at least some of the error cases combined_like { $command_handler->handle_command(undef, {}) } - qr/Ignoring WS message without type from http:\/\/test-host.*/, 'ignoring non-result message without type'; + qr/Ignoring WS message without type from http:\/\/127\.0\.0\.1:1.*/, 'ignoring non-result message without type'; combined_like { $command_handler->handle_command(undef, {type => WORKER_COMMAND_LIVELOG_STOP, jobid => 1}) } -qr/Ignoring WS message from http:\/\/test-host with type livelog_stop and job ID 1 \(currently not executing a job\).*/, +qr/Ignoring WS message from http:\/\/127\.0\.0\.1:1 with type livelog_stop and job ID 1 \(currently not executing a job\).*/, 'ignoring job-specific message when no job running'; $worker->current_error('some error'); $app->log->level('debug'); @@ -477,7 +477,7 @@ } qr/Refusing to grab job from .* already busy with a job from foo/, 'ignoring job grab when busy with another web UI'; - $worker->current_webui_host('http://test-host'); + $worker->current_webui_host('http://127.0.0.1:1'); $worker->current_job(OpenQA::Worker::Job->new($worker, $client, {id => 43})); $worker->current_job_ids([43]); combined_like { @@ -566,7 +566,8 @@ # test incompatible (so far the worker stops when receiving this message; there are likely better ways to handle it) is($worker->is_stopping, 0, 'not already stopping'); combined_like { $command_handler->handle_command(undef, {type => 'incompatible'}) } - qr/running a version incompatible with web UI host http:\/\/test-host and therefore stopped/, 'problem is logged'; + qr/running a version incompatible with web UI host http:\/\/127\.0\.0\.1:1 and therefore stopped/, + 'problem is logged'; is($worker->is_stopping, 1, 'worker is stopping on incompatible message'); $client->webui_host('foo'); @@ -647,7 +648,7 @@ }; subtest 'destruction' => sub { - my $client = OpenQA::Worker::WebUIConnection->new('http://test-host', {apikey => 'foo', apisecret => 'bar'}); + my $client = OpenQA::Worker::WebUIConnection->new('http://127.0.0.1:1', {apikey => 'foo', apisecret => 'bar'}); my @removed_timers; my $io_loop_mock = Test::MockModule->new('Mojo::IOLoop'); $io_loop_mock->redefine(remove => sub ($self, $id, @) { push @removed_timers, $id }); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1762193001.2f6e71ca/t/ui/10-tests_overview.t new/openQA-5.1762780626.92a68246/t/ui/10-tests_overview.t --- old/openQA-5.1762193001.2f6e71ca/t/ui/10-tests_overview.t 2025-11-03 19:03:21.000000000 +0100 +++ new/openQA-5.1762780626.92a68246/t/ui/10-tests_overview.t 2025-11-10 14:17:06.000000000 +0100 @@ -186,7 +186,7 @@ element_not_present '.toggle-parallel-children', 'parallel parent has not toggle icon'; $jobs->find(99961)->update({FLAVOR => 'DVD', TEST => 'some-parallel-parent'}); $driver->refresh; - my $toggle_button = $driver->find_element('.toggle-parallel-children'); + my $toggle_button = wait_for_element(selector => '.toggle-parallel-children'); ok $toggle_button, 'toggle button present' or return; element_visible '#res-99963', undef, undef, 'parallel child expanded if parent in same table'; element_visible '#res-99937', undef, undef, 'job from other architecture expanded as well'; @@ -228,7 +228,7 @@ $jobs->find(99963)->update({state => RUNNING, result => NONE}); $driver->refresh; $cycle->delete; - my $toggle_button = $driver->find_element('.toggle-parallel-children'); + my $toggle_button = wait_for_element(selector => '.toggle-parallel-children'); ok $toggle_button, 'toggle button present despite cycle (first job takes role of parent)' or return; element_visible '#res-99961', undef, undef, 'all parallel jobs expanded (1)'; element_visible '#res-99963', undef, undef, 'all parallel jobs expanded (2)'; ++++++ openQA.obsinfo ++++++ --- /var/tmp/diff_new_pack.nSe8YE/_old 2025-11-11 19:22:56.839520373 +0100 +++ /var/tmp/diff_new_pack.nSe8YE/_new 2025-11-11 19:22:56.847520709 +0100 @@ -1,5 +1,5 @@ name: openQA -version: 5.1762193001.2f6e71ca -mtime: 1762193001 -commit: 2f6e71ca04023b9b048e35125270004ea3c15ab6 +version: 5.1762780626.92a68246 +mtime: 1762780626 +commit: 92a68246eddaf25840f5b2ffbdc7ec6da5c46f5e
