aboutsummaryrefslogtreecommitdiffstats
path: root/test/rubygems/test_gem_request_set.rb
diff options
context:
space:
mode:
authorHiroshi SHIBATA <hsbt@ruby-lang.org>2020-02-01 11:14:04 +0900
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2020-02-01 11:14:57 +0900
commit600a715c9bde99fe2e9a669465d78833445273e8 (patch)
tree8244622e8cc02b40dd0dad29d30fc60a11342396 /test/rubygems/test_gem_request_set.rb
parentadc303131187654d8ce83f3db17eefa3d5bae26c (diff)
downloadruby-600a715c9bde99fe2e9a669465d78833445273e8.tar.gz
Merge the current master branch of rubygems/rubygems.
Just started to develop RubyGems 3.2.0.
Diffstat (limited to 'test/rubygems/test_gem_request_set.rb')
-rw-r--r--test/rubygems/test_gem_request_set.rb52
1 files changed, 52 insertions, 0 deletions
diff --git a/test/rubygems/test_gem_request_set.rb b/test/rubygems/test_gem_request_set.rb
index ac344015e7..fb71829471 100644
--- a/test/rubygems/test_gem_request_set.rb
+++ b/test/rubygems/test_gem_request_set.rb
@@ -183,6 +183,58 @@ DEPENDENCIES
assert_path_exists File.join @gemhome, 'specifications', 'b-1.gemspec'
end
+ def test_install_from_gemdeps_complex_dependencies
+ quick_gem("z", 1)
+ quick_gem("z", "1.0.1")
+ quick_gem("z", "1.0.2")
+ quick_gem("z", "1.0.3")
+ quick_gem("z", 2)
+
+ spec_fetcher do |fetcher|
+ fetcher.download "z", 1
+ end
+
+ rs = Gem::RequestSet.new
+ installed = []
+
+ File.open 'Gemfile.lock', 'w' do |io|
+ io.puts <<-LOCKFILE
+GEM
+ remote: #{@gem_repo}
+ specs:
+ z (1)
+
+PLATFORMS
+ #{Gem::Platform::RUBY}
+
+DEPENDENCIES
+ z (~> 1.0, >= 1.0.1)
+ LOCKFILE
+ end
+
+ File.open 'testo.gemspec', 'w' do |io|
+ io.puts <<-LOCKFILE
+Gem::Specification.new do |spec|
+ spec.name = 'testo'
+ spec.version = '1.0.0'
+ spec.add_dependency('z', '~> 1.0', '>= 1.0.1')
+end
+ LOCKFILE
+ end
+
+ File.open 'Gemfile', 'w' do |io|
+ io.puts("gemspec")
+ end
+
+ rs.install_from_gemdeps :gemdeps => 'Gemfile' do |req, installer|
+ installed << req.full_name
+ end
+
+ assert_includes installed, 'z-1.0.3'
+
+ assert_path_exists File.join @gemhome, 'specifications', 'z-1.0.3.gemspec'
+ end
+
def test_install_from_gemdeps_version_mismatch
spec_fetcher do |fetcher|
fetcher.gem 'a', 2