aboutsummaryrefslogtreecommitdiffstats
path: root/test/rubygems/test_gem_remote_fetcher.rb
diff options
context:
space:
mode:
authorhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-08-27 10:05:04 +0000
committerhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-08-27 10:05:04 +0000
commit85d461456c154d7b4a72b20369e0d65d7880ce02 (patch)
tree21e1be2c786c8040a426841768e046fb4dc365b1 /test/rubygems/test_gem_remote_fetcher.rb
parent3a83ba90c35833bab757998def36cfe872dec461 (diff)
downloadruby-85d461456c154d7b4a72b20369e0d65d7880ce02.tar.gz
Merge master branch from rubygems upstream.
* It's preparation to release RubyGems 3.0.0.beta2 and Ruby 2.6.0 preview 3. * https://github.com/rubygems/rubygems/compare/v3.0.0.beta1...fad2eb15a282b19dfcb4b48bc95b8b39ebb4511f git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rubygems/test_gem_remote_fetcher.rb')
-rw-r--r--test/rubygems/test_gem_remote_fetcher.rb64
1 files changed, 56 insertions, 8 deletions
diff --git a/test/rubygems/test_gem_remote_fetcher.rb b/test/rubygems/test_gem_remote_fetcher.rb
index 1eed0c7670..dfef55c7ca 100644
--- a/test/rubygems/test_gem_remote_fetcher.rb
+++ b/test/rubygems/test_gem_remote_fetcher.rb
@@ -731,10 +731,9 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg==
assert_equal "murphy", fetcher.fetch_path(@server_uri)
end
- def test_fetch_s3
+ def assert_fetch_s3(url)
fetcher = Gem::RemoteFetcher.new nil
@fetcher = fetcher
- url = 's3://testuser:testpass@my-bucket/gems/specs.4.8.gz'
$fetched_uri = nil
def fetcher.request(uri, request_class, last_modified = nil)
@@ -756,15 +755,64 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg==
$fetched_uri = nil
end
- def test_fetch_s3_no_creds
+ def test_fetch_s3_config_creds
+ Gem.configuration[:s3_source] = {
+ 'my-bucket' => {:id => 'testuser', :secret => 'testpass'}
+ }
+ url = 's3://my-bucket/gems/specs.4.8.gz'
+ assert_fetch_s3 url
+ ensure
+ Gem.configuration[:s3_source] = nil
+ end
+
+ def test_fetch_s3_url_creds
+ url = 's3://testuser:testpass@my-bucket/gems/specs.4.8.gz'
+ assert_fetch_s3 url
+ end
+
+ def refute_fetch_s3(url, expected_message)
fetcher = Gem::RemoteFetcher.new nil
@fetcher = fetcher
- url = 's3://my-bucket/gems/specs.4.8.gz'
+
e = assert_raises Gem::RemoteFetcher::FetchError do
fetcher.fetch_s3 URI.parse(url)
end
- assert_match "credentials needed", e.message
+ assert_match expected_message, e.message
+ end
+
+ def test_fetch_s3_no_source_key
+ url = 's3://my-bucket/gems/specs.4.8.gz'
+ refute_fetch_s3 url, 'no s3_source key exists in .gemrc'
+ end
+
+ def test_fetch_s3_no_host
+ Gem.configuration[:s3_source] = {
+ 'my-bucket' => {:id => 'testuser', :secret => 'testpass'}
+ }
+
+ url = 's3://other-bucket/gems/specs.4.8.gz'
+ refute_fetch_s3 url, 'no key for host other-bucket in s3_source in .gemrc'
+ ensure
+ Gem.configuration[:s3_source] = nil
+ end
+
+ def test_fetch_s3_no_id
+ Gem.configuration[:s3_source] = { 'my-bucket' => {:secret => 'testpass'} }
+
+ url = 's3://my-bucket/gems/specs.4.8.gz'
+ refute_fetch_s3 url, 's3_source for my-bucket missing id or secret'
+ ensure
+ Gem.configuration[:s3_source] = nil
+ end
+
+ def test_fetch_s3_no_secret
+ Gem.configuration[:s3_source] = { 'my-bucket' => {:id => 'testuser'} }
+
+ url = 's3://my-bucket/gems/specs.4.8.gz'
+ refute_fetch_s3 url, 's3_source for my-bucket missing id or secret'
+ ensure
+ Gem.configuration[:s3_source] = nil
end
def test_observe_no_proxy_env_single_host
@@ -846,9 +894,9 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg==
with_configured_fetcher(
":ssl_ca_cert: #{temp_ca_cert}\n" +
":ssl_client_cert: #{temp_client_cert}\n") do |fetcher|
- assert_raises Gem::RemoteFetcher::FetchError do
- fetcher.fetch_path("https://localhost:#{ssl_server.config[:Port]}/yaml")
- end
+ assert_raises Gem::RemoteFetcher::FetchError do
+ fetcher.fetch_path("https://localhost:#{ssl_server.config[:Port]}/yaml")
+ end
end
end