Sha256: 94ead2ab03d5229006868249ab7a03fbeab3cccf76cc1c463a8b5f246d9b7d00
Contents?: true
Size: 1.27 KB
Versions: 23
Compression:
Stored size: 1.27 KB
Contents
require 'test_plugin_helper' require 'foreman_tasks/test_helpers' class ExponentialBackoffTest < ActiveSupport::TestCase include ForemanTasks::TestHelpers::WithInThreadExecutor class TestAction < ::Actions::EntryAction include ::ForemanRhCloud::Async::ExponentialBackoff def try_execute action_callback&.call(self) end # define a method to execute code inside the class context. def action_callback(instance) end end test 'executes an action once' do TestAction.any_instance.expects(:action_callback).returns(->(instance) { instance.done! }) ForemanTasks.sync_task(TestAction) end test 'fails after a single excution if done was called' do TestAction.any_instance.expects(:action_callback).returns( lambda do |instance| instance.done! raise ::Foreman::Exception('Foo') end) ForemanTasks.sync_task(TestAction) end test 'executes the task three times before failing it' do # speed up the execution TestAction.any_instance.stubs(:poll_intervals).returns([0, 0, 0]) TestAction.any_instance.expects(:action_callback).raises(::Foreman::Exception.new('Foo')).times(3) ForemanTasks.sync_task(TestAction) rescue ForemanTasks::TaskError => ex assert ex.aggregated_message =~ /Foo/ end end
Version data entries
23 entries across 23 versions & 1 rubygems
Version | Path |
---|---|
foreman_rh_cloud-7.0.46 | test/jobs/exponential_backoff_test.rb |
foreman_rh_cloud-7.0.45 | test/jobs/exponential_backoff_test.rb |
foreman_rh_cloud-6.0.44 | test/jobs/exponential_backoff_test.rb |