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();