From 5c18607dd5632048fca1c2ebd6658fff57cbee0b Mon Sep 17 00:00:00 2001 From: Wabri Date: Tue, 2 Sep 2025 18:54:35 +0200 Subject: [PATCH] Cover OpenQA::WebAPI::Plugin::ObsRsync::Task Reference: https://progress.opensuse.org/issues/178948 --- t/api/14-plugin_obs_rsync.t | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/t/api/14-plugin_obs_rsync.t b/t/api/14-plugin_obs_rsync.t index f32d661b3be..e8b2c48c7b5 100644 --- a/t/api/14-plugin_obs_rsync.t +++ b/t/api/14-plugin_obs_rsync.t @@ -7,6 +7,8 @@ use FindBin; use lib "$FindBin::Bin/../lib", "$FindBin::Bin/../../external/os-autoinst-common/lib"; use OpenQA::Test::TimeLimit '50'; use Mojo::IOLoop; +use Test::MockObject; + use OpenQA::Test::Utils 'perform_minion_jobs'; use OpenQA::Test::ObsRsync 'setup_obs_rsync_test'; @@ -124,4 +126,14 @@ subtest 'test lock after failure' => sub { lock_test(); }; +subtest 'Finish job when retry count exceeded' => sub { + use_ok('OpenQA::WebAPI::Plugin::ObsRsync::Task'); + my $finish_return; + my $job = Test::MockObject->new->mock('retries', sub { 42 })->set_true('retry')->set_true('finish') + ->mock('finish', sub { shift; $finish_return = [@_]; return 1 }); + OpenQA::WebAPI::Plugin::ObsRsync::Task::_retry_or_finish($job, undef, undef, 1, 1); + + like $finish_return->[0]{message}, qr/Exceeded retry count \d+\. Consider job will be re-triggered later/; +}; + done_testing();