summaryrefslogtreecommitdiff
path: root/test/rubygems/test_gem_resolver_installer_set.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/rubygems/test_gem_resolver_installer_set.rb')
-rw-r--r--test/rubygems/test_gem_resolver_installer_set.rb28
1 files changed, 23 insertions, 5 deletions
diff --git a/test/rubygems/test_gem_resolver_installer_set.rb b/test/rubygems/test_gem_resolver_installer_set.rb
index 76c9c04a3c..928a16b9d3 100644
--- a/test/rubygems/test_gem_resolver_installer_set.rb
+++ b/test/rubygems/test_gem_resolver_installer_set.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rubygems/test_case'
+require_relative 'helper'
class TestGemResolverInstallerSet < Gem::TestCase
def test_add_always_install
@@ -16,7 +16,7 @@ class TestGemResolverInstallerSet < Gem::TestCase
assert_equal %w[a-2], set.always_install.map {|s| s.full_name }
- e = assert_raises Gem::UnsatisfiableDependencyError do
+ e = assert_raise Gem::UnsatisfiableDependencyError do
set.add_always_install dep('b')
end
@@ -29,7 +29,7 @@ class TestGemResolverInstallerSet < Gem::TestCase
set = Gem::Resolver::InstallerSet.new :both
- e = assert_raises Gem::UnsatisfiableDependencyError do
+ e = assert_raise Gem::UnsatisfiableDependencyError do
set.add_always_install dep 'a'
end
@@ -64,6 +64,24 @@ class TestGemResolverInstallerSet < Gem::TestCase
assert_equal %w[a-1], set.always_install.map {|s| s.full_name }
end
+ def test_add_always_install_prerelease_github_problem
+ spec_fetcher do |fetcher|
+ fetcher.gem 'a', 1
+ end
+
+ # Github has an issue in which it will generate a misleading prerelease output in its RubyGems server API and
+ # returns a 0 version for the gem while it doesn't exist.
+ @fetcher.data["#{@gem_repo}prerelease_specs.#{Gem.marshal_version}.gz"] = util_gzip(Marshal.dump([
+ Gem::NameTuple.new('a', Gem::Version.new(0), 'ruby'),
+ ]))
+
+ set = Gem::Resolver::InstallerSet.new :both
+
+ set.add_always_install dep('a')
+
+ assert_equal %w[a-1], set.always_install.map {|s| s.full_name }
+ end
+
def test_add_always_install_prerelease_only
spec_fetcher do |fetcher|
fetcher.gem 'a', '3.a'
@@ -71,7 +89,7 @@ class TestGemResolverInstallerSet < Gem::TestCase
set = Gem::Resolver::InstallerSet.new :both
- assert_raises Gem::UnsatisfiableDependencyError do
+ assert_raise Gem::UnsatisfiableDependencyError do
set.add_always_install dep('a')
end
end
@@ -192,7 +210,7 @@ class TestGemResolverInstallerSet < Gem::TestCase
def (set.remote_set).prefetch(_)
raise "called"
end
- assert_raises(RuntimeError){ set.prefetch(nil) }
+ assert_raise(RuntimeError){ set.prefetch(nil) }
set = Gem::Resolver::InstallerSet.new :local
def (set.remote_set).prefetch(_)