diff options
| author | Luis J. Gonzalez <lgonzalez@sonatype.com> | 2026-01-26 14:39:00 -0500 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2026-02-13 06:53:50 +0000 |
| commit | 74c066a711972ba0927d980ce0010ec68c77e74e (patch) | |
| tree | 14674e8b69d771dc44ffea17f1d13963e8dbd22d /test | |
| parent | f94f28481b8450c0dfa18304be420fd969321b7e (diff) | |
[ruby/rubygems] Add support for custom error response from external registries
https://github.com/ruby/rubygems/commit/b021dde989
Diffstat (limited to 'test')
| -rw-r--r-- | test/rubygems/test_gem_remote_fetcher.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/rubygems/test_gem_remote_fetcher.rb b/test/rubygems/test_gem_remote_fetcher.rb index 9228193152..c35da2fc5a 100644 --- a/test/rubygems/test_gem_remote_fetcher.rb +++ b/test/rubygems/test_gem_remote_fetcher.rb @@ -643,6 +643,41 @@ class TestGemRemoteFetcher < Gem::TestCase end end + def test_fetch_http_with_custom_error_header + fetcher = Gem::RemoteFetcher.new nil + @fetcher = fetcher + url = "http://gems.example.com/error" + + def fetcher.request(uri, request_class, last_modified = nil) + res = Gem::Net::HTTPBadRequest.new nil, 403, "Forbidden" + res.add_field "X-Error-Message", "Component blocked by policy" + res + end + + e = assert_raise Gem::RemoteFetcher::FetchError do + fetcher.fetch_http Gem::URI.parse(url) + end + + assert_equal "Bad response Component blocked by policy 403 (#{url})", e.message + end + + def test_fetch_http_without_custom_error_header + fetcher = Gem::RemoteFetcher.new nil + @fetcher = fetcher + url = "http://gems.example.com/error" + + def fetcher.request(uri, request_class, last_modified = nil) + res = Gem::Net::HTTPBadRequest.new nil, 403, "Forbidden" + res + end + + e = assert_raise Gem::RemoteFetcher::FetchError do + fetcher.fetch_http Gem::URI.parse(url) + end + + assert_equal "Bad response Forbidden 403 (#{url})", e.message + end + private def assert_error(exception_class = Exception) |
