Sha256: 29b178e76c259e836ed10a8c4ac401dcbe9dca54e9cd481069dd1bf69dcb58f1

Contents?: true

Size: 1.45 KB

Versions: 19

Compression:

Stored size: 1.45 KB

Contents

require 'foreman_tasks_test_helper'

module ForemanTasks
  class RemoteTaskTest < ActiveSupport::TestCase
    describe 'batch triggering' do
      let(:remote_tasks) do
        (1..5).map do |i|
          task = RemoteTask.new :execution_plan_id => i, :step_id => 1, :proxy_url => "something"
          task.expects(:proxy_input).returns({})
          task.expects(:proxy_action_name).returns('MyProxyAction')
          task.save!
          task
        end
      end

      it 'triggers in batches' do
        results = remote_tasks.reduce({}) do |acc, cur|
          acc.merge(cur.execution_plan_id.to_s => { 'task_id' => cur.id + 5, 'result' => 'success' })
        end

        fake_proxy = mock
        fake_proxy.expects(:launch_tasks).returns(results)
        remote_tasks.first.expects(:proxy).returns(fake_proxy)
        RemoteTask.batch_trigger('a_operation', remote_tasks)
        remote_tasks.each do |remote_task|
          remote_task.reload
          _(remote_task.state).must_equal 'triggered'
          _(remote_task.remote_task_id).must_equal((remote_task.id + 5).to_s)
        end
      end

      it 'fallbacks to old way when batch trigger gets 404' do
        fake_proxy = mock
        fake_proxy.expects(:launch_tasks).raises(RestClient::NotFound.new)
        remote_tasks.first.expects(:proxy).returns(fake_proxy)
        remote_tasks.each { |task| task.expects(:trigger) }
        RemoteTask.batch_trigger('a_operation', remote_tasks)
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
foreman-tasks-4.1.6 test/unit/remote_task_test.rb
foreman-tasks-5.1.1 test/unit/remote_task_test.rb
foreman-tasks-5.1.0 test/unit/remote_task_test.rb
foreman-tasks-4.1.5 test/unit/remote_task_test.rb
foreman-tasks-4.1.4 test/unit/remote_task_test.rb
foreman-tasks-4.1.3 test/unit/remote_task_test.rb
foreman-tasks-3.0.6 test/unit/remote_task_test.rb
foreman-tasks-5.0.0 test/unit/remote_task_test.rb
foreman-tasks-4.1.2 test/unit/remote_task_test.rb
foreman-tasks-4.1.1 test/unit/remote_task_test.rb
foreman-tasks-4.0.1 test/unit/remote_task_test.rb
foreman-tasks-4.1.0 test/unit/remote_task_test.rb
foreman-tasks-3.0.5 test/unit/remote_task_test.rb
foreman-tasks-4.0.0 test/unit/remote_task_test.rb
foreman-tasks-3.0.4 test/unit/remote_task_test.rb
foreman-tasks-3.0.3 test/unit/remote_task_test.rb
foreman-tasks-3.0.2 test/unit/remote_task_test.rb
foreman-tasks-3.0.1 test/unit/remote_task_test.rb
foreman-tasks-3.0.0 test/unit/remote_task_test.rb