X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/7a260be18ddba67443a2be19d7f24406c7fe5131..586b30b8171da19a4d777c6c2edf4cd7f2fdecfe:/services/api/test/functional/arvados/v1/jobs_controller_test.rb?ds=sidebyside diff --git a/services/api/test/functional/arvados/v1/jobs_controller_test.rb b/services/api/test/functional/arvados/v1/jobs_controller_test.rb index e8245a4be5..03ee3df2e2 100644 --- a/services/api/test/functional/arvados/v1/jobs_controller_test.rb +++ b/services/api/test/functional/arvados/v1/jobs_controller_test.rb @@ -81,9 +81,19 @@ class Arvados::V1::JobsControllerTest < ActionController::TestCase assert_equal(true, File.exists?(Rails.configuration.crunch_refresh_trigger), 'trigger file should be created when job is cancelled') + end + + test "cancelling a cancelled jobs stays cancelled" do + # We need to verify that "cancel" creates a trigger file, so first + # let's make sure there is no stale trigger file. + begin + File.unlink(Rails.configuration.crunch_refresh_trigger) + rescue Errno::ENOENT + end + authorize_with :active put :update, { - id: jobs(:running).uuid, + id: jobs(:running_cancelled).uuid, job: { cancelled_at: nil } @@ -284,19 +294,43 @@ class Arvados::V1::JobsControllerTest < ActionController::TestCase assert_response :success end - [:active, :admin].each do |which_token| + [:spectator, :admin].each_with_index do |which_token, i| test "get job queue as #{which_token} user" do authorize_with which_token get :queue assert_response :success - assert_operator 1, :<=, assigns(:objects).count + assert_equal i, assigns(:objects).count end - test "get job queue as #{which_token} user, with a filter" do + end + + test "get job queue as with a = filter" do + authorize_with :admin + get :queue, { filters: [['script','=','foo']] } + assert_response :success + assert_equal ['foo'], assigns(:objects).collect(&:script).uniq + assert_equal 0, assigns(:objects)[0].queue_position + end + + test "get job queue as with a != filter" do + authorize_with :admin + get :queue, { filters: [['script','!=','foo']] } + assert_response :success + assert_equal 0, assigns(:objects).count + end + + [:spectator, :admin].each do |which_token| + test "get queue_size as #{which_token} user" do authorize_with which_token - get :queue, { filters: [['script','=','foo']] } + get :queue_size assert_response :success - assert_equal ['foo'], assigns(:objects).collect(&:script).uniq + assert_equal 1, JSON.parse(@response.body)["queue_size"] end end + test "job includes assigned nodes" do + authorize_with :active + get :show, {id: jobs(:nearly_finished_job).uuid} + assert_response :success + assert_equal([nodes(:busy).uuid], json_response["node_uuids"]) + end end