summaryrefslogtreecommitdiff
path: root/test/rubygems/test_gem_request_set.rb
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-11-30 23:27:52 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-11-30 23:27:52 +0000
commit73fc703f7cbb2e6dfd50897d26b37fe8e76064e3 (patch)
tree0296426c8ac01331f2d33dde54fd9f1e183ea974 /test/rubygems/test_gem_request_set.rb
parent6727297dfecddaef6b1166a7f442db2a22929c65 (diff)
* lib/rubygems: Update to RubyGems master 66e5c39. Notable changes:
Implement gem.deps.rb (Gemfile) .lock support Fixed `gem uninstall` for a relative directory in GEM_HOME. * test/rubygems: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rubygems/test_gem_request_set.rb')
-rw-r--r--test/rubygems/test_gem_request_set.rb74
1 files changed, 73 insertions, 1 deletions
diff --git a/test/rubygems/test_gem_request_set.rb b/test/rubygems/test_gem_request_set.rb
index 6719be372c..324d0cd7a8 100644
--- a/test/rubygems/test_gem_request_set.rb
+++ b/test/rubygems/test_gem_request_set.rb
@@ -45,16 +45,88 @@ class TestGemRequestSet < Gem::TestCase
rs = Gem::RequestSet.new
installed = []
+ open 'gem.deps.rb', 'w' do |io|
+ io.puts 'gem "a"'
+ io.flush
+
+ result = rs.install_from_gemdeps :gemdeps => io.path do |req, installer|
+ installed << req.full_name
+ end
+
+ assert_kind_of Array, result # what is supposed to be in here?
+ end
+
+ assert_includes installed, 'a-2'
+ assert_path_exists File.join @gemhome, 'gems', 'a-2'
+ assert_path_exists 'gem.deps.rb.lock'
+ end
+
+ def test_install_from_gemdeps_install_dir
+ spec_fetcher do |fetcher|
+ fetcher.gem 'a', 2
+ end
+
+ util_clear_gems
+ refute_path_exists File.join Gem.dir, 'gems', 'a-2'
+
+ rs = Gem::RequestSet.new
+ installed = []
+
Tempfile.open 'gem.deps.rb' do |io|
io.puts 'gem "a"'
io.flush
- rs.install_from_gemdeps :gemdeps => io.path do |req, installer|
+ options = {
+ :gemdeps => io.path,
+ :install_dir => "#{@gemhome}2",
+ }
+
+ rs.install_from_gemdeps options do |req, installer|
installed << req.full_name
end
end
assert_includes installed, 'a-2'
+ refute_path_exists File.join Gem.dir, 'gems', 'a-2'
+ end
+
+ def test_install_from_gemdeps_lockfile
+ spec_fetcher do |fetcher|
+ fetcher.gem 'a', 1
+ fetcher.gem 'a', 2
+ fetcher.gem 'b', 1, 'a' => '>= 0'
+ end
+
+ rs = Gem::RequestSet.new
+ installed = []
+
+ open 'gem.deps.rb.lock', 'w' do |io|
+ io.puts <<-LOCKFILE
+GEM
+ remote: #{@gem_repo}
+ specs:
+ a (1)
+ b (1)
+ a
+
+PLATFORMS
+ #{Gem::Platform::RUBY}
+
+DEPENDENCIES
+ b
+ LOCKFILE
+ end
+
+ open 'gem.deps.rb', 'w' do |io|
+ io.puts 'gem "b"'
+ end
+
+ rs.install_from_gemdeps :gemdeps => 'gem.deps.rb' do |req, installer|
+ installed << req.full_name
+ end
+
+ assert_includes installed, 'b-1'
+ assert_includes installed, 'a-1'
end
def test_load_gemdeps