From: Lucas Di Pentima Date: Tue, 2 May 2017 14:56:56 +0000 (-0300) Subject: 11185: Merge branch 'master' into 11185-wb-disable-reuse X-Git-Tag: 1.1.0~277^2 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/be4852ec32e5eeed1af9a62017cfc39ed66ac186 11185: Merge branch 'master' into 11185-wb-disable-reuse --- be4852ec32e5eeed1af9a62017cfc39ed66ac186 diff --cc apps/workbench/test/controllers/container_requests_controller_test.rb index 01f740cfa0,6f5a6daa10..bd2f6beb6b --- a/apps/workbench/test/controllers/container_requests_controller_test.rb +++ b/apps/workbench/test/controllers/container_requests_controller_test.rb @@@ -38,51 -38,43 +38,72 @@@ class ContainerRequestsControllerTest get :show, {id: uuid}, session_for(:active) assert_response :success - assert_includes @response.body, "href=\"/container_requests/#{uuid}/copy\"" + assert_includes @response.body, "action=\"/container_requests/#{uuid}/copy\"" end - test "container request copy" do - completed_cr = api_fixture('container_requests')['completed'] - post(:copy, - { - id: completed_cr['uuid'] - }, - session_for(:active)) - assert_response 302 - copied_cr = assigns(:object) - assert_not_nil copied_cr - assert_equal 'Uncommitted', copied_cr[:state] - assert_equal "Copy of #{completed_cr['name']}", copied_cr['name'] - assert_equal completed_cr['cmd'], copied_cr['cmd'] - assert_equal completed_cr['runtime_constraints']['ram'], copied_cr['runtime_constraints'][:ram] + [ + ['completed', false, false], + ['completed', true, false], + ['completed-older', false, true], + ['completed-older', true, true], + ].each do |cr_fixture, reuse_enabled, uses_acr| + test "container request #{uses_acr ? '' : 'not'} using arvados-cwl-runner copy #{reuse_enabled ? 'with' : 'without'} reuse enabled" do + completed_cr = api_fixture('container_requests')[cr_fixture] + # Set up post request params + copy_params = {id: completed_cr['uuid']} + if reuse_enabled + copy_params.merge!({use_existing: true}) + end + post(:copy, copy_params, session_for(:active)) + assert_response 302 + copied_cr = assigns(:object) + assert_not_nil copied_cr + assert_equal 'Uncommitted', copied_cr[:state] + assert_equal "Copy of #{completed_cr['name']}", copied_cr['name'] + assert_equal completed_cr['cmd'], copied_cr['cmd'] + assert_equal completed_cr['runtime_constraints']['ram'], copied_cr['runtime_constraints'][:ram] + if reuse_enabled + assert copied_cr[:use_existing] + else + refute copied_cr[:use_existing] + end + # If the CR's command is arvados-cwl-runner, the appropriate flag should + # be passed to it + if uses_acr + if reuse_enabled + # arvados-cwl-runner's default behavior is to enable reuse + assert_includes copied_cr['command'], 'arvados-cwl-runner' + assert_not_includes copied_cr['command'], '--disable-reuse' + else + assert_includes copied_cr['command'], 'arvados-cwl-runner' + assert_includes copied_cr['command'], '--disable-reuse' + assert_not_includes copied_cr['command'], '--enable-reuse' + end + else + # If no arvados-cwl-runner is being used, the command should be left alone + assert_equal completed_cr['command'], copied_cr['command'] + end + end end + + [ + ['completed', true], + ['running', true], + ['queued', true], + ['uncommitted', false], + ].each do |cr_fixture, should_show| + test "provenance tab should #{should_show ? '' : 'not'} be shown on #{cr_fixture} container requests" do + cr = api_fixture('container_requests')[cr_fixture] + assert_not_nil cr + get(:show, + {id: cr['uuid']}, + session_for(:active)) + assert_response :success + if should_show + assert_includes @response.body, "href=\"#Provenance\"" + else + assert_not_includes @response.body, "href=\"#Provenance\"" + end + end + end end