projects
/
arvados.git
/ commitdiff
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
b3fd367
)
3782: Isolate file_enumerator stubbing to the current test. Introduce mocha.
author
Tom Clegg <tom@curoverse.com>
Tue, 30 Sep 2014 14:57:13 +0000
(10:57 -0400)
committer
Tom Clegg <tom@curoverse.com>
Tue, 30 Sep 2014 14:57:13 +0000
(10:57 -0400)
apps/workbench/Gemfile
patch
|
blob
|
history
apps/workbench/Gemfile.lock
patch
|
blob
|
history
apps/workbench/test/functional/collections_controller_test.rb
patch
|
blob
|
history
apps/workbench/test/test_helper.rb
patch
|
blob
|
history
diff --git
a/apps/workbench/Gemfile
b/apps/workbench/Gemfile
index b96fee18e0d42451bc8ab6d152deb31d20f03ee7..46d017e1840b5d22b3c47b84c1ef3e504433d9c0 100644
(file)
--- a/
apps/workbench/Gemfile
+++ b/
apps/workbench/Gemfile
@@
-43,6
+43,7
@@
group :test do
# still mandatory.
gem 'simplecov', '~> 0.7.1', require: false
gem 'simplecov-rcov', require: false
# still mandatory.
gem 'simplecov', '~> 0.7.1', require: false
gem 'simplecov-rcov', require: false
+ gem 'mocha', require: false
end
gem 'jquery-rails'
end
gem 'jquery-rails'
diff --git
a/apps/workbench/Gemfile.lock
b/apps/workbench/Gemfile.lock
index bdf39138819841d4cded1766eb49f70500c56599..a676e54f631c4755e5395dfa38c9f20c6389d159 100644
(file)
--- a/
apps/workbench/Gemfile.lock
+++ b/
apps/workbench/Gemfile.lock
@@
-117,9
+117,12
@@
GEM
mail (2.5.4)
mime-types (~> 1.16)
treetop (~> 1.4.8)
mail (2.5.4)
mime-types (~> 1.16)
treetop (~> 1.4.8)
+ metaclass (0.0.4)
mime-types (1.25.1)
mini_portile (0.5.2)
minitest (5.3.3)
mime-types (1.25.1)
mini_portile (0.5.2)
minitest (5.3.3)
+ mocha (1.1.0)
+ metaclass (~> 0.0.1)
multi_json (1.10.0)
multipart-post (1.2.0)
net-scp (1.1.2)
multi_json (1.10.0)
multipart-post (1.2.0)
net-scp (1.1.2)
@@
-241,6
+244,7
@@
DEPENDENCIES
less
less-rails
minitest (>= 5.0.0)
less
less-rails
minitest (>= 5.0.0)
+ mocha
multi_json
oj
passenger
multi_json
oj
passenger
diff --git
a/apps/workbench/test/functional/collections_controller_test.rb
b/apps/workbench/test/functional/collections_controller_test.rb
index 674e908c3562e5dac26801a3cf7d4b177a6196f5..9e668a8c688a221cb1bd1bcadfa41ec02e2b6a37 100644
(file)
--- a/
apps/workbench/test/functional/collections_controller_test.rb
+++ b/
apps/workbench/test/functional/collections_controller_test.rb
@@
-3,6
+3,15
@@
require 'test_helper'
class CollectionsControllerTest < ActionController::TestCase
NONEXISTENT_COLLECTION = "ffffffffffffffffffffffffffffffff+0"
class CollectionsControllerTest < ActionController::TestCase
NONEXISTENT_COLLECTION = "ffffffffffffffffffffffffffffffff+0"
+ def stub_file_content
+ # For the duration of the current test case, stub file download
+ # content with a randomized (but recognizable) string. Return the
+ # string, the test case can use it in assertions.
+ txt = 'the quick brown fox ' + rand(2**32).to_s
+ @controller.stubs(:file_enumerator).returns([txt])
+ txt
+ end
+
def collection_params(collection_name, file_name=nil)
uuid = api_fixture('collections')[collection_name.to_s]['uuid']
params = {uuid: uuid, id: uuid}
def collection_params(collection_name, file_name=nil)
uuid = api_fixture('collections')[collection_name.to_s]['uuid']
params = {uuid: uuid, id: uuid}
@@
-42,14
+51,6
@@
class CollectionsControllerTest < ActionController::TestCase
assert_response response
end
assert_response response
end
- # Mock the collection file reader to avoid external calls and return
- # a predictable string.
- CollectionsController.class_eval do
- def file_enumerator(opts)
- [[opts[:arvados_api_token], opts[:uuid], opts[:file]].join('/')]
- end
- end
-
test "viewing a collection" do
show_collection(:foo_file, :active)
assert_equal([['.', 'foo', 3]], assigns(:object).files)
test "viewing a collection" do
show_collection(:foo_file, :active)
assert_equal([['.', 'foo', 3]], assigns(:object).files)
@@
-111,9
+112,10
@@
class CollectionsControllerTest < ActionController::TestCase
test "getting a file from Keep" do
params = collection_params(:foo_file, 'foo')
sess = session_for(:active)
test "getting a file from Keep" do
params = collection_params(:foo_file, 'foo')
sess = session_for(:active)
+ expect_content = stub_file_content
get(:show_file, params, sess)
assert_response :success
get(:show_file, params, sess)
assert_response :success
- assert_equal(expect
ed_contents(params, sess)
, @response.body,
+ assert_equal(expect
_content
, @response.body,
"failed to get a correct file from Keep")
end
"failed to get a correct file from Keep")
end
@@
-135,9
+137,10
@@
class CollectionsControllerTest < ActionController::TestCase
params = collection_params(:foo_file, 'foo')
read_token = api_fixture('api_client_authorizations')['active']['api_token']
params[:reader_token] = read_token
params = collection_params(:foo_file, 'foo')
read_token = api_fixture('api_client_authorizations')['active']['api_token']
params[:reader_token] = read_token
+ expect_content = stub_file_content
get(:show_file, params)
assert_response :success
get(:show_file, params)
assert_response :success
- assert_equal(expect
ed_contents(params, read_token)
, @response.body,
+ assert_equal(expect
_content
, @response.body,
"failed to get a correct file from Keep using a reader token")
assert_not_equal(read_token, session[:arvados_api_token],
"using a reader token set the session's API token")
"failed to get a correct file from Keep using a reader token")
assert_not_equal(read_token, session[:arvados_api_token],
"using a reader token set the session's API token")
@@
-156,9
+159,10
@@
class CollectionsControllerTest < ActionController::TestCase
sess = session_for(:expired)
read_token = api_fixture('api_client_authorizations')['active']['api_token']
params[:reader_token] = read_token
sess = session_for(:expired)
read_token = api_fixture('api_client_authorizations')['active']['api_token']
params[:reader_token] = read_token
+ expect_content = stub_file_content
get(:show_file, params, sess)
assert_response :success
get(:show_file, params, sess)
assert_response :success
- assert_equal(expect
ed_contents(params, read_token)
, @response.body,
+ assert_equal(expect
_content
, @response.body,
"failed to get a correct file from Keep using a reader token")
assert_not_equal(read_token, session[:arvados_api_token],
"using a reader token set the session's API token")
"failed to get a correct file from Keep using a reader token")
assert_not_equal(read_token, session[:arvados_api_token],
"using a reader token set the session's API token")
diff --git
a/apps/workbench/test/test_helper.rb
b/apps/workbench/test/test_helper.rb
index 72469bc0598af198ade1db06a2b7880c1994530c..11957983122d3a7942bfcc18f3074dcf67fceb55 100644
(file)
--- a/
apps/workbench/test/test_helper.rb
+++ b/
apps/workbench/test/test_helper.rb
@@
-22,6
+22,7
@@
end
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
+require 'mocha/mini_test'
class ActiveSupport::TestCase
# Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in
class ActiveSupport::TestCase
# Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in