diff options
author | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-08-27 10:05:04 +0000 |
---|---|---|
committer | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-08-27 10:05:04 +0000 |
commit | 85d461456c154d7b4a72b20369e0d65d7880ce02 (patch) | |
tree | 21e1be2c786c8040a426841768e046fb4dc365b1 /test/rubygems/test_gem_remote_fetcher.rb | |
parent | 3a83ba90c35833bab757998def36cfe872dec461 (diff) | |
download | ruby-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.rb | 64 |
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 |