X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/1df6b1005acfdc098f6f42a384924f6879543c7b..9992a8816837bd03a1beecd0c0e8082bd913319a:/services/api/test/functional/arvados/v1/container_requests_controller_test.rb diff --git a/services/api/test/functional/arvados/v1/container_requests_controller_test.rb b/services/api/test/functional/arvados/v1/container_requests_controller_test.rb index a3252ad7b3..95c477f411 100644 --- a/services/api/test/functional/arvados/v1/container_requests_controller_test.rb +++ b/services/api/test/functional/arvados/v1/container_requests_controller_test.rb @@ -17,7 +17,7 @@ class Arvados::V1::ContainerRequestsControllerTest < ActionController::TestCase authorize_with :active sp = {'partitions' => ['test1', 'test2']} - post :create, { + post :create, params: { container_request: minimal_cr.merge(scheduling_parameters: sp.dup) } assert_response :success @@ -30,7 +30,7 @@ class Arvados::V1::ContainerRequestsControllerTest < ActionController::TestCase test "secret_mounts not in #create responses" do authorize_with :active - post :create, { + post :create, params: { container_request: minimal_cr.merge( secret_mounts: {'/foo' => {'kind' => 'json', 'content' => 'bar'}}), } @@ -47,7 +47,7 @@ class Arvados::V1::ContainerRequestsControllerTest < ActionController::TestCase authorize_with :active req = container_requests(:uncommitted) - patch :update, { + patch :update, params: { id: req.uuid, container_request: { secret_mounts: {'/foo' => {'kind' => 'json', 'content' => 'bar'}}, @@ -67,7 +67,7 @@ class Arvados::V1::ContainerRequestsControllerTest < ActionController::TestCase req = container_requests(:uncommitted) req.update_attributes!(secret_mounts: {'/foo' => {'kind' => 'json', 'content' => 'bar'}}) - patch :update, { + patch :update, params: { id: req.uuid, container_request: { command: ['echo', 'test'], @@ -85,7 +85,7 @@ class Arvados::V1::ContainerRequestsControllerTest < ActionController::TestCase test "runtime_token not in #create responses" do authorize_with :active - post :create, { + post :create, params: { container_request: minimal_cr.merge( runtime_token: api_client_authorizations(:spectator).token) } @@ -98,4 +98,48 @@ class Arvados::V1::ContainerRequestsControllerTest < ActionController::TestCase assert_equal api_client_authorizations(:spectator).token, req.runtime_token end + %w(Running Complete).each do |state| + test "filter on container.state = #{state}" do + authorize_with :active + get :index, params: { + filters: [['container.state', '=', state]], + } + assert_response :success + assert_operator json_response['items'].length, :>, 0 + json_response['items'].each do |cr| + assert_equal state, Container.find_by_uuid(cr['container_uuid']).state + end + end + end + + test "filter on container success" do + authorize_with :active + get :index, params: { + filters: [ + ['container.state', '=', 'Complete'], + ['container.exit_code', '=', '0'], + ], + } + assert_response :success + assert_operator json_response['items'].length, :>, 0 + json_response['items'].each do |cr| + assert_equal 'Complete', Container.find_by_uuid(cr['container_uuid']).state + assert_equal 0, Container.find_by_uuid(cr['container_uuid']).exit_code + end + end + + test "filter on container subproperty runtime_status[foo] = bar" do + ctr = containers(:running) + act_as_system_user do + ctr.update_attributes!(runtime_status: {foo: 'bar'}) + end + authorize_with :active + get :index, params: { + filters: [ + ['container.runtime_status.foo', '=', 'bar'], + ], + } + assert_response :success + assert_equal [ctr.uuid], json_response['items'].collect { |cr| cr['container_uuid'] }.uniq + end end