From a2806c0a3f7cc1a2c38539a6e208dff7a3172a88 Mon Sep 17 00:00:00 2001 From: Radhika Chippada Date: Thu, 8 Jan 2015 13:01:36 -0500 Subject: [PATCH] 4523: separate filename based tests and description based tests. --- .../test/integration/collections_api_test.rb | 94 +++++++++++-------- 1 file changed, 54 insertions(+), 40 deletions(-) diff --git a/services/api/test/integration/collections_api_test.rb b/services/api/test/integration/collections_api_test.rb index 8d3ea7e8b5..83c5b7faaf 100644 --- a/services/api/test/integration/collections_api_test.rb +++ b/services/api/test/integration/collections_api_test.rb @@ -133,27 +133,36 @@ class CollectionsApiTest < ActionDispatch::IntegrationTest assert_equal 'a name', json_response['name'] end - test "create collection, verify file_names not returned, and search with filename" do - def search_using_file_name name, expected_items, desc, pdh - get '/arvados/v1/collections', { - where: { any: ['contains', name] } - }, auth(:active) - assert_response :success - response_items = json_response['items'] - assert_not_nil response_items - if expected_items == 0 - assert_equal 0, json_response['items_available'] - assert_equal 0, response_items.size - else - assert_equal expected_items, response_items.size - first_item = response_items.first - assert_not_nil first_item - assert_equal desc, first_item['description'] - assert_equal pdh, first_item['portable_data_hash'] - assert_nil first_item['file_names'] - end - end + test "create collection, update description, and search for description" do + signing_opts = { + key: Rails.configuration.blob_signing_key, + api_token: api_token(:active), + } + signed_locator = Blob.sign_locator('bad42fa702ae1234d999fef11b46f450+44', signing_opts) + + # create collection + post "/arvados/v1/collections", { + format: :json, + collection: "{\"manifest_text\":\". #{signed_locator} 0:44:foo.txt\\n\"}" + }, auth(:active) + assert_response :success + assert_equal '087e2f211aba2881c08fd8d1646522a3+51', json_response['portable_data_hash'] + + # update collection's description + put "/arvados/v1/collections/#{json_response['uuid']}", { + format: :json, + collection: { description: "something specific" } + }, auth(:active) + assert_response :success + assert_equal 'something specific', json_response['description'] + assert_equal '087e2f211aba2881c08fd8d1646522a3+51', json_response['portable_data_hash'] + + # search + search_using_filter 'specific', 1, '087e2f211aba2881c08fd8d1646522a3+51' + search_using_filter 'not specific enough', 0, nil + end + test "create collection, update manifest, and search with filename" do signing_opts = { key: Rails.configuration.blob_signing_key, api_token: api_token(:active), @@ -168,28 +177,15 @@ class CollectionsApiTest < ActionDispatch::IntegrationTest assert_response :success assert_equal true, json_response['manifest_text'].include?('my_test_file.txt') assert_equal '0f99f4087beb13dec46d36db9fa6cebf+60', json_response['portable_data_hash'] - assert_nil json_response['description'] assert_nil json_response['file_names'] created = json_response # search using the filename - search_using_file_name 'my_test_file.txt', 1, nil, '0f99f4087beb13dec46d36db9fa6cebf+60' - - # update collection's desc - put "/arvados/v1/collections/#{created['uuid']}", { - format: :json, - collection: { description: "my test collection description" } - }, auth(:active) - assert_response :success - assert_equal created['uuid'], json_response['uuid'] - assert_equal true, json_response['manifest_text'].include?('my_test_file.txt') - assert_equal 'my test collection description', json_response['description'] - assert_equal '0f99f4087beb13dec46d36db9fa6cebf+60', json_response['portable_data_hash'] - assert_nil json_response['file_names'] + search_using_filter 'my_test_file.txt', 1, '0f99f4087beb13dec46d36db9fa6cebf+60' # update the collection's manifest text - put "/arvados/v1/collections/#{json_response['uuid']}", { + put "/arvados/v1/collections/#{created['uuid']}", { format: :json, collection: "{\"manifest_text\":\". #{signed_locator} 0:44:my_updated_test_file.txt\\n\"}" }, auth(:active) @@ -197,12 +193,30 @@ class CollectionsApiTest < ActionDispatch::IntegrationTest assert_equal created['uuid'], json_response['uuid'] assert_equal true, json_response['manifest_text'].include?('my_updated_test_file.txt') assert_equal false, json_response['manifest_text'].include?('my_test_file.txt') - assert_equal 'my test collection description', json_response['description'] - assert_equal '17d7d7e6f09ae17e3b580143586a1a3f+68', json_response['portable_data_hash'] assert_nil json_response['file_names'] - search_using_file_name 'my_updated_test_file.txt', 1, 'my test collection description', '17d7d7e6f09ae17e3b580143586a1a3f+68' - search_using_file_name 'my_test_file.txt', 0, nil, nil - search_using_file_name 'there_is_no_such_file.txt', 0, nil, nil + # search using the new filename + search_using_filter 'my_updated_test_file.txt', 1, '17d7d7e6f09ae17e3b580143586a1a3f+68' + search_using_filter 'my_test_file.txt', 0, nil + search_using_filter 'there_is_no_such_file.txt', 0, nil + end + + def search_using_filter search_filter, expected_items, pdh + get '/arvados/v1/collections', { + where: { any: ['contains', search_filter] } + }, auth(:active) + assert_response :success + response_items = json_response['items'] + assert_not_nil response_items + if expected_items == 0 + assert_equal 0, json_response['items_available'] + assert_equal 0, response_items.size + else + assert_equal expected_items, response_items.size + first_item = response_items.first + assert_not_nil first_item + assert_equal pdh, first_item['portable_data_hash'] + assert_nil first_item['file_names'] + end end end -- 2.30.2