X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0821f5481edd016a3744bb50d97a9e5b99cd1a0f..55727c5da7f9c5a549e42750d9966b53a486ca68:/services/api/test/unit/job_test.rb diff --git a/services/api/test/unit/job_test.rb b/services/api/test/unit/job_test.rb index 3da2c836ed..761953e8eb 100644 --- a/services/api/test/unit/job_test.rb +++ b/services/api/test/unit/job_test.rb @@ -185,7 +185,7 @@ class JobTest < ActiveSupport::TestCase # Ensure valid_attrs doesn't produce errors -- otherwise we will # not know whether errors reported below are actually caused by # invalid_attrs. - dummy = Job.create! job_attrs + Job.create! job_attrs job = Job.create job_attrs(invalid_attrs) assert_raises(ActiveRecord::RecordInvalid, ArgumentError, @@ -223,7 +223,7 @@ class JobTest < ActiveSupport::TestCase parameters.each do |parameter| expectations = parameter[2] - if parameter[1] == 'use_current_user_uuid' + if 'use_current_user_uuid' == parameter[1] parameter[1] = Thread.current[:user].uuid end @@ -307,6 +307,24 @@ class JobTest < ActiveSupport::TestCase assert_equal "Failed", job.state end + test "admin user can cancel a running job despite lock" do + set_user_from_auth :active_trustedclient + job = Job.create! job_attrs + job.lock current_user.uuid + assert_equal Job::Running, job.state + + set_user_from_auth :spectator + assert_raises do + job.update_attributes!(state: Job::Cancelled) + end + + set_user_from_auth :admin + job.reload + assert_equal Job::Running, job.state + job.update_attributes!(state: Job::Cancelled) + assert_equal Job::Cancelled, job.state + end + test "verify job queue position" do job1 = Job.create! job_attrs assert_equal 'Queued', job1.state, "Incorrect job state for newly created job1" @@ -411,7 +429,7 @@ class JobTest < ActiveSupport::TestCase } assert_raises(ActiveRecord::RecordInvalid, "created job with a collection uuid in script_parameters") do - job = Job.create!(job_attrs(bad_params)) + Job.create!(job_attrs(bad_params)) end end