X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/2eaa77dc327c024f2faa3fbd322e7054454b6442..36360d1f2987cea89ce217a2519c01da7456d533:/services/api/test/unit/container_request_test.rb diff --git a/services/api/test/unit/container_request_test.rb b/services/api/test/unit/container_request_test.rb index c4d1efec30..da4f0bb7a8 100644 --- a/services/api/test/unit/container_request_test.rb +++ b/services/api/test/unit/container_request_test.rb @@ -471,6 +471,7 @@ class ContainerRequestTest < ActiveSupport::TestCase test "Retry on container cancelled" do set_user_from_auth :active cr = create_minimal_req!(priority: 1, state: "Committed", container_count_max: 2) + cr2 = create_minimal_req!(priority: 1, state: "Committed", container_count_max: 2, command: ["echo", "baz"]) prev_container_uuid = cr.container_uuid c = act_as_system_user do @@ -481,8 +482,10 @@ class ContainerRequestTest < ActiveSupport::TestCase end cr.reload + cr2.reload assert_equal "Committed", cr.state assert_equal prev_container_uuid, cr.container_uuid + assert_not_equal cr2.container_uuid, cr.container_uuid prev_container_uuid = cr.container_uuid act_as_system_user do @@ -490,8 +493,10 @@ class ContainerRequestTest < ActiveSupport::TestCase end cr.reload + cr2.reload assert_equal "Committed", cr.state assert_not_equal prev_container_uuid, cr.container_uuid + assert_not_equal cr2.container_uuid, cr.container_uuid prev_container_uuid = cr.container_uuid c = act_as_system_user do @@ -501,8 +506,39 @@ class ContainerRequestTest < ActiveSupport::TestCase end cr.reload + cr2.reload assert_equal "Final", cr.state assert_equal prev_container_uuid, cr.container_uuid + assert_not_equal cr2.container_uuid, cr.container_uuid + end + + test "Output collection name setting using output_name with name collision resolution" do + set_user_from_auth :active + output_name = collections(:foo_file).name + + cr = create_minimal_req!(priority: 1, + state: ContainerRequest::Committed, + output_name: output_name) + act_as_system_user do + c = Container.find_by_uuid(cr.container_uuid) + c.update_attributes!(state: Container::Locked) + c.update_attributes!(state: Container::Running) + c.update_attributes!(state: Container::Complete, + exit_code: 0, + output: '1f4b0bc7583c2a7f9102c395f4ffc5e3+45', + log: 'fa7aeb5140e2848d39b416daeef4ffc5+45') + end + cr.save + assert_equal ContainerRequest::Final, cr.state + output_coll = Collection.find_by_uuid(cr.output_uuid) + # Make sure the resulting output collection name include the original name + # plus the date + assert_not_equal output_name, output_coll.name, + "It shouldn't exist more than one collection with the same owner and name '${output_name}'" + assert output_coll.name.include?(output_name), + "New name should include original name" + assert_match /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z/, output_coll.name, + "New name should include ISO8601 date" end test "Finalize committed request when reusing a finished container" do