X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/22954b4f9df4682aab32c59ee582def7865377af..586b30b8171da19a4d777c6c2edf4cd7f2fdecfe:/services/api/test/functional/arvados/v1/jobs_controller_test.rb 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 c33b5a6af4..03ee3df2e2 100644 --- a/services/api/test/functional/arvados/v1/jobs_controller_test.rb +++ b/services/api/test/functional/arvados/v1/jobs_controller_test.rb @@ -18,6 +18,7 @@ class Arvados::V1::JobsControllerTest < ActionController::TestCase new_job = JSON.parse(@response.body) assert_not_nil new_job['uuid'] assert_not_nil new_job['script_version'].match(/^[0-9a-f]{40}$/) + assert_equal 0, new_job['priority'] end test "normalize output and log uuids when creating job" do @@ -80,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 } @@ -283,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