summaryrefslogtreecommitdiff
path: root/test/rubygems/test_gem_dependency_installer.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/rubygems/test_gem_dependency_installer.rb')
-rw-r--r--test/rubygems/test_gem_dependency_installer.rb530
1 files changed, 282 insertions, 248 deletions
diff --git a/test/rubygems/test_gem_dependency_installer.rb b/test/rubygems/test_gem_dependency_installer.rb
index f2404d61c7..8999723ba1 100644
--- a/test/rubygems/test_gem_dependency_installer.rb
+++ b/test/rubygems/test_gem_dependency_installer.rb
@@ -1,15 +1,16 @@
# frozen_string_literal: true
-require_relative 'helper'
-require 'rubygems/dependency_installer'
-require 'rubygems/security'
+
+require_relative "helper"
+require "rubygems/dependency_installer"
+require "rubygems/security"
class TestGemDependencyInstaller < Gem::TestCase
def setup
super
common_installer_setup
- @gems_dir = File.join @tempdir, 'gems'
- @cache_dir = File.join @gemhome, 'cache'
+ @gems_dir = File.join @tempdir, "gems"
+ @cache_dir = File.join @gemhome, "cache"
FileUtils.mkdir @gems_dir
@@ -25,23 +26,23 @@ class TestGemDependencyInstaller < Gem::TestCase
end
def util_setup_gems
- @a1, @a1_gem = util_gem 'a', '1' do |s|
- s.executables << 'a_bin'
+ @a1, @a1_gem = util_gem "a", "1" do |s|
+ s.executables << "a_bin"
end
- @a1_pre, @a1_pre_gem = util_gem 'a', '1.a'
+ @a1_pre, @a1_pre_gem = util_gem "a", "1.a"
- @b1, @b1_gem = util_gem 'b', '1' do |s|
- s.add_dependency 'a'
- s.add_development_dependency 'aa'
+ @b1, @b1_gem = util_gem "b", "1" do |s|
+ s.add_dependency "a"
+ s.add_development_dependency "aa"
end
- @c1, @c1_gem = util_gem 'c', '1' do |s|
- s.add_development_dependency 'b'
+ @c1, @c1_gem = util_gem "c", "1" do |s|
+ s.add_development_dependency "b"
end
- @d1, @d1_gem = util_gem 'd', '1' do |s|
- s.add_development_dependency 'c'
+ @d1, @d1_gem = util_gem "d", "1" do |s|
+ s.add_development_dependency "c"
end
util_setup_spec_fetcher(@a1, @a1_pre, @b1, @d1)
@@ -55,7 +56,7 @@ class TestGemDependencyInstaller < Gem::TestCase
Dir.chdir @tempdir do
inst = Gem::DependencyInstaller.new
- inst.install 'a'
+ inst.install "a"
end
assert_equal %w[a-1], Gem::Specification.map(&:full_name)
@@ -65,16 +66,16 @@ class TestGemDependencyInstaller < Gem::TestCase
def test_install_prerelease
util_setup_gems
- p1a, gem = util_gem 'a', '10.a'
+ p1a, gem = util_gem "a", "10.a"
util_setup_spec_fetcher(p1a, @a1, @a1_pre)
p1a_data = Gem.read_binary(gem)
- @fetcher.data['http://gems.example.com/gems/a-10.a.gem'] = p1a_data
+ @fetcher.data["http://gems.example.com/gems/a-10.a.gem"] = p1a_data
dep = Gem::Dependency.new "a"
- inst = Gem::DependencyInstaller.new :prerelease => true
+ inst = Gem::DependencyInstaller.new prerelease: true
inst.install dep
assert_equal %w[a-10.a], Gem::Specification.map(&:full_name)
@@ -83,33 +84,33 @@ class TestGemDependencyInstaller < Gem::TestCase
def test_install_prerelease_bug_990
spec_fetcher do |fetcher|
- fetcher.gem 'a', '1.b' do |s|
- s.add_dependency 'b', '~> 1.a'
+ fetcher.gem "a", "1.b" do |s|
+ s.add_dependency "b", "~> 1.a"
end
- fetcher.gem 'b', '1.b' do |s|
- s.add_dependency 'c', '>= 1'
+ fetcher.gem "b", "1.b" do |s|
+ s.add_dependency "c", ">= 1"
end
- fetcher.gem 'c', '1.1.b'
+ fetcher.gem "c", "1.1.b"
end
- dep = Gem::Dependency.new 'a'
+ dep = Gem::Dependency.new "a"
- inst = Gem::DependencyInstaller.new :prerelease => true
+ inst = Gem::DependencyInstaller.new prerelease: true
inst.install dep
assert_equal %w[a-1.b b-1.b c-1.1.b], Gem::Specification.map(&:full_name)
end
def test_install_when_only_prerelease
- p1a, gem = util_gem 'p', '1.a'
+ p1a, gem = util_gem "p", "1.a"
util_setup_spec_fetcher(p1a)
p1a_data = Gem.read_binary(gem)
- @fetcher.data['http://gems.example.com/gems/p-1.a.gem'] = p1a_data
+ @fetcher.data["http://gems.example.com/gems/p-1.a.gem"] = p1a_data
dep = Gem::Dependency.new "p"
inst = Gem::DependencyInstaller.new
@@ -128,10 +129,10 @@ class TestGemDependencyInstaller < Gem::TestCase
p1a_data = Gem.read_binary(@a1_gem)
- @fetcher.data['http://gems.example.com/gems/a-1.gem'] = p1a_data
+ @fetcher.data["http://gems.example.com/gems/a-1.gem"] = p1a_data
dep = Gem::Dependency.new "a"
- inst = Gem::DependencyInstaller.new :prerelease => true
+ inst = Gem::DependencyInstaller.new prerelease: true
inst.install dep
assert_equal %w[a-1], Gem::Specification.map(&:full_name)
@@ -141,8 +142,8 @@ class TestGemDependencyInstaller < Gem::TestCase
def test_install_all_dependencies
util_setup_gems
- _, e1_gem = util_gem 'e', '1' do |s|
- s.add_dependency 'b'
+ _, e1_gem = util_gem "e", "1" do |s|
+ s.add_dependency "b"
end
FileUtils.mv @a1_gem, @tempdir
@@ -152,19 +153,19 @@ class TestGemDependencyInstaller < Gem::TestCase
inst = nil
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new :ignore_dependencies => true
- inst.install 'b'
+ inst = Gem::DependencyInstaller.new ignore_dependencies: true
+ inst.install "b"
end
- assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name },
- 'sanity check'
+ assert_equal %w[b-1], inst.installed_gems.map(&:full_name),
+ "sanity check"
Dir.chdir @tempdir do
inst = Gem::DependencyInstaller.new
- inst.install 'e'
+ inst.install "e"
end
- assert_equal %w[a-1 e-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1 e-1], inst.installed_gems.map(&:full_name)
end
def test_install_cache_dir
@@ -177,11 +178,11 @@ class TestGemDependencyInstaller < Gem::TestCase
inst = nil
Dir.chdir dir do
- inst = Gem::DependencyInstaller.new :cache_dir => @tempdir
- inst.install 'b'
+ inst = Gem::DependencyInstaller.new cache_dir: @tempdir
+ inst.install "b"
end
- assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1 b-1], inst.installed_gems.map(&:full_name)
assert File.exist? File.join(@gemhome, "cache", @a1.file_name)
assert File.exist? File.join(@gemhome, "cache", @b1.file_name)
@@ -190,34 +191,34 @@ class TestGemDependencyInstaller < Gem::TestCase
def test_install_dependencies_satisfied
util_setup_gems
- a2, a2_gem = util_gem 'a', '2'
+ a2, a2_gem = util_gem "a", "2"
- FileUtils.rm_rf File.join(@gemhome, 'gems')
+ FileUtils.rm_rf File.join(@gemhome, "gems")
Gem::Specification.reset
FileUtils.mv @a1_gem, @tempdir
- FileUtils.mv a2_gem, @tempdir # not in index
+ FileUtils.mv a2_gem, @tempdir # not in index
FileUtils.mv @b1_gem, @tempdir
inst = nil
Dir.chdir @tempdir do
inst = Gem::DependencyInstaller.new
- inst.install 'a', req("= 2")
+ inst.install "a", req("= 2")
end
- assert_equal %w[a-2], inst.installed_gems.map {|s| s.full_name },
- 'sanity check'
+ assert_equal %w[a-2], inst.installed_gems.map(&:full_name),
+ "sanity check"
FileUtils.rm File.join(@tempdir, a2.file_name)
Dir.chdir @tempdir do
inst = Gem::DependencyInstaller.new
- inst.install 'b'
+ inst.install "b"
end
assert_equal %w[a-2 b-1], Gem::Specification.map(&:full_name)
- assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[b-1], inst.installed_gems.map(&:full_name)
end
# This asserts that if a gem's dependency is satisfied by an
@@ -226,22 +227,22 @@ class TestGemDependencyInstaller < Gem::TestCase
def test_install_doesnt_upgrade_installed_dependencies
util_setup_gems
- a2, a2_gem = util_gem 'a', '2'
- a3, a3_gem = util_gem 'a', '3'
+ a2, a2_gem = util_gem "a", "2"
+ a3, a3_gem = util_gem "a", "3"
util_setup_spec_fetcher @a1, a3, @b1
- FileUtils.rm_rf File.join(@gemhome, 'gems')
+ FileUtils.rm_rf File.join(@gemhome, "gems")
Gem::Specification.reset
FileUtils.mv @a1_gem, @tempdir
- FileUtils.mv a2_gem, @tempdir # not in index
+ FileUtils.mv a2_gem, @tempdir # not in index
FileUtils.mv @b1_gem, @tempdir
FileUtils.mv a3_gem, @tempdir
Dir.chdir @tempdir do
- Gem::DependencyInstaller.new.install 'a', req("= 2")
+ Gem::DependencyInstaller.new.install "a", req("= 2")
end
FileUtils.rm File.join(@tempdir, a2.file_name)
@@ -250,11 +251,11 @@ class TestGemDependencyInstaller < Gem::TestCase
Dir.chdir @tempdir do
inst = Gem::DependencyInstaller.new
- inst.install 'b'
+ inst.install "b"
end
assert_equal %w[a-2 b-1], Gem::Specification.map(&:full_name)
- assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[b-1], inst.installed_gems.map(&:full_name)
end
def test_install_dependency
@@ -273,19 +274,19 @@ class TestGemDependencyInstaller < Gem::TestCase
FileUtils.mv @b1_gem, @tempdir
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new(:build_docs_in_background => false)
- inst.install 'b'
+ inst = Gem::DependencyInstaller.new(build_docs_in_background: false)
+ inst.install "b"
end
- assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1 b-1], inst.installed_gems.map(&:full_name)
- assert done_installing_ran, 'post installs hook was not run'
+ assert done_installing_ran, "post installs hook was not run"
end
def test_install_dependency_development
util_setup_gems
- @aa1, @aa1_gem = util_gem 'aa', '1'
+ @aa1, @aa1_gem = util_gem "aa", "1"
FileUtils.mv @a1_gem, @tempdir
FileUtils.mv @aa1_gem, @tempdir
@@ -293,17 +294,17 @@ class TestGemDependencyInstaller < Gem::TestCase
inst = nil
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new(:development => true)
- inst.install 'b'
+ inst = Gem::DependencyInstaller.new(development: true)
+ inst.install "b"
end
- assert_equal %w[a-1 aa-1 b-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1 aa-1 b-1], inst.installed_gems.map(&:full_name)
end
def test_install_dependency_development_deep
util_setup_gems
- @aa1, @aa1_gem = util_gem 'aa', '1'
+ @aa1, @aa1_gem = util_gem "aa", "1"
FileUtils.mv @a1_gem, @tempdir
FileUtils.mv @aa1_gem, @tempdir
@@ -313,17 +314,17 @@ class TestGemDependencyInstaller < Gem::TestCase
inst = nil
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new(:development => true)
- inst.install 'd'
+ inst = Gem::DependencyInstaller.new(development: true)
+ inst.install "d"
end
- assert_equal %w[a-1 aa-1 b-1 c-1 d-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1 aa-1 b-1 c-1 d-1], inst.installed_gems.map(&:full_name)
end
def test_install_dependency_development_shallow
util_setup_gems
- @aa1, @aa1_gem = util_gem 'aa', '1'
+ @aa1, @aa1_gem = util_gem "aa", "1"
FileUtils.mv @a1_gem, @tempdir
FileUtils.mv @aa1_gem, @tempdir
@@ -333,11 +334,11 @@ class TestGemDependencyInstaller < Gem::TestCase
inst = nil
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new(:development => true, :dev_shallow => true)
- inst.install 'd'
+ inst = Gem::DependencyInstaller.new(development: true, dev_shallow: true)
+ inst.install "d"
end
- assert_equal %w[c-1 d-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[c-1 d-1], inst.installed_gems.map(&:full_name)
end
def test_install_dependency_existing
@@ -350,29 +351,29 @@ class TestGemDependencyInstaller < Gem::TestCase
Dir.chdir @tempdir do
inst = Gem::DependencyInstaller.new
- inst.install 'b'
+ inst.install "b"
end
- assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[b-1], inst.installed_gems.map(&:full_name)
end
def test_install_dependency_existing_extension
- extconf_rb = File.join @gemhome, 'gems', 'e-1', 'extconf.rb'
+ extconf_rb = File.join @gemhome, "gems", "e-1", "extconf.rb"
FileUtils.mkdir_p File.dirname extconf_rb
- File.open extconf_rb, 'w' do |io|
+ File.open extconf_rb, "w" do |io|
io.write <<-EXTCONF_RB
require 'mkmf'
create_makefile 'e'
EXTCONF_RB
end
- e1 = util_spec 'e', '1', nil, 'extconf.rb' do |s|
- s.extensions << 'extconf.rb'
+ e1 = util_spec "e", "1", nil, "extconf.rb" do |s|
+ s.extensions << "extconf.rb"
end
e1_gem = e1.cache_file
- _, f1_gem = util_gem 'f', '1', 'e' => nil
+ _, f1_gem = util_gem "f", "1", "e" => nil
Gem::Installer.at(e1_gem).install
FileUtils.rm_r e1.extension_dir
@@ -385,20 +386,20 @@ class TestGemDependencyInstaller < Gem::TestCase
Dir.chdir @tempdir
begin
inst = Gem::DependencyInstaller.new
- inst.install 'f'
+ inst.install "f"
ensure
Dir.chdir pwd
end
- assert_equal %w[f-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[f-1], inst.installed_gems.map(&:full_name)
assert_path_exist e1.extension_dir
end
def test_install_dependency_old
- _, e1_gem = util_gem 'e', '1'
- _, f1_gem = util_gem 'f', '1', 'e' => nil
- _, f2_gem = util_gem 'f', '2'
+ _, e1_gem = util_gem "e", "1"
+ _, f1_gem = util_gem "f", "1", "e" => nil
+ _, f2_gem = util_gem "f", "2"
FileUtils.mv e1_gem, @tempdir
FileUtils.mv f1_gem, @tempdir
@@ -407,10 +408,10 @@ class TestGemDependencyInstaller < Gem::TestCase
Dir.chdir @tempdir do
inst = Gem::DependencyInstaller.new
- inst.install 'f'
+ inst.install "f"
end
- assert_equal %w[f-2], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[f-2], inst.installed_gems.map(&:full_name)
end
def test_install_local
@@ -420,11 +421,11 @@ class TestGemDependencyInstaller < Gem::TestCase
inst = nil
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new :domain => :local
- inst.install 'a-1.gem'
+ inst = Gem::DependencyInstaller.new domain: :local
+ inst.install "a-1.gem"
end
- assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1], inst.installed_gems.map(&:full_name)
end
def test_install_local_prerelease
@@ -434,11 +435,11 @@ class TestGemDependencyInstaller < Gem::TestCase
inst = nil
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new :domain => :local
- inst.install 'a-1.a.gem'
+ inst = Gem::DependencyInstaller.new domain: :local
+ inst.install "a-1.a.gem"
end
- assert_equal %w[a-1.a], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1.a], inst.installed_gems.map(&:full_name)
end
def test_install_local_dependency
@@ -450,11 +451,11 @@ class TestGemDependencyInstaller < Gem::TestCase
inst = nil
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new :domain => :local
- inst.install 'b-1.gem'
+ inst = Gem::DependencyInstaller.new domain: :local
+ inst.install "b-1.gem"
end
- assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1 b-1], inst.installed_gems.map(&:full_name)
end
def test_install_local_dependency_installed
@@ -466,13 +467,47 @@ class TestGemDependencyInstaller < Gem::TestCase
inst = nil
Dir.chdir @tempdir do
- Gem::Installer.at('a-1.gem').install
+ Gem::Installer.at("a-1.gem").install
- inst = Gem::DependencyInstaller.new :domain => :local
- inst.install 'b-1.gem'
+ inst = Gem::DependencyInstaller.new domain: :local
+ inst.install "b-1.gem"
end
- assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[b-1], inst.installed_gems.map(&:full_name)
+ end
+
+ def test_install_local_dependency_no_network_for_target_gem
+ a1, a1_gem = util_gem "a", "1"
+ _, b1_gem = util_gem "b", "1" do |s|
+ s.add_dependency "a"
+ end
+
+ util_setup_spec_fetcher(a1)
+
+ a1_data = Gem.read_binary(a1_gem)
+ @fetcher.data["http://gems.example.com/gems/a-1.gem"] = a1_data
+
+ # compact index is available
+ compact_index_response = Gem::Net::HTTPResponse.new "1.1", 200, "OK"
+ compact_index_response.uri = Gem::URI("http://gems.example.com")
+ @fetcher.data["http://gems.example.com/"] = compact_index_response
+
+ # but private local gem not present there
+ @fetcher.data["http://gems.example.com/info/b"] =
+ proc do
+ raise "should not happen"
+ end
+
+ FileUtils.mv b1_gem, @tempdir
+
+ inst = nil
+
+ Dir.chdir @tempdir do
+ inst = Gem::DependencyInstaller.new
+ inst.install "b-1.gem"
+ end
+
+ assert_equal %w[a-1 b-1], inst.installed_gems.map(&:full_name)
end
def test_install_local_subdir
@@ -481,22 +516,22 @@ class TestGemDependencyInstaller < Gem::TestCase
inst = nil
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new :domain => :local
- inst.install 'gems/a-1.gem'
+ inst = Gem::DependencyInstaller.new domain: :local
+ inst.install "gems/a-1.gem"
end
- assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1], inst.installed_gems.map(&:full_name)
end
def test_install_minimal_deps
util_setup_gems
- _, e1_gem = util_gem 'e', '1' do |s|
- s.add_dependency 'b'
+ _, e1_gem = util_gem "e", "1" do |s|
+ s.add_dependency "b"
end
- _, b2_gem = util_gem 'b', '2' do |s|
- s.add_dependency 'a'
+ _, b2_gem = util_gem "b", "2" do |s|
+ s.add_dependency "a"
end
FileUtils.mv @a1_gem, @tempdir
@@ -507,30 +542,30 @@ class TestGemDependencyInstaller < Gem::TestCase
inst = nil
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new :ignore_dependencies => true
- inst.install 'b', req('= 1')
+ inst = Gem::DependencyInstaller.new ignore_dependencies: true
+ inst.install "b", req("= 1")
end
- assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name },
- 'sanity check'
+ assert_equal %w[b-1], inst.installed_gems.map(&:full_name),
+ "sanity check"
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new :minimal_deps => true
- inst.install 'e'
+ inst = Gem::DependencyInstaller.new minimal_deps: true
+ inst.install "e"
end
- assert_equal %w[a-1 e-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1 e-1], inst.installed_gems.map(&:full_name)
end
def test_install_no_minimal_deps
util_setup_gems
- _, e1_gem = util_gem 'e', '1' do |s|
- s.add_dependency 'b'
+ _, e1_gem = util_gem "e", "1" do |s|
+ s.add_dependency "b"
end
- _, b2_gem = util_gem 'b', '2' do |s|
- s.add_dependency 'a'
+ _, b2_gem = util_gem "b", "2" do |s|
+ s.add_dependency "a"
end
FileUtils.mv @a1_gem, @tempdir
@@ -541,19 +576,19 @@ class TestGemDependencyInstaller < Gem::TestCase
inst = nil
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new :ignore_dependencies => true
- inst.install 'b', req('= 1')
+ inst = Gem::DependencyInstaller.new ignore_dependencies: true
+ inst.install "b", req("= 1")
end
- assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name },
- 'sanity check'
+ assert_equal %w[b-1], inst.installed_gems.map(&:full_name),
+ "sanity check"
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new :minimal_deps => false
- inst.install 'e'
+ inst = Gem::DependencyInstaller.new minimal_deps: false
+ inst.install "e"
end
- assert_equal %w[a-1 b-2 e-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1 b-2 e-1], inst.installed_gems.map(&:full_name)
end
def test_install_no_document
@@ -561,12 +596,12 @@ class TestGemDependencyInstaller < Gem::TestCase
done_installing_called = false
- Gem.done_installing do |dep_installer, specs|
+ Gem.done_installing do |dep_installer, _specs|
done_installing_called = true
assert_empty dep_installer.document
end
- inst = Gem::DependencyInstaller.new :domain => :local, :document => []
+ inst = Gem::DependencyInstaller.new domain: :local, document: []
inst.install @a1_gem
@@ -580,14 +615,14 @@ class TestGemDependencyInstaller < Gem::TestCase
inst = nil
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new :env_shebang => true, :wrappers => true, :format_executable => false
- inst.install 'a'
+ inst = Gem::DependencyInstaller.new env_shebang: true, wrappers: true, format_executable: false
+ inst.install "a"
end
env = "/\\S+/env" unless Gem.win_platform?
- assert_match %r{\A#!#{env} #{RbConfig::CONFIG['ruby_install_name']}\n},
- File.read(File.join(@gemhome, 'bin', 'a_bin'))
+ assert_match(/\A#!#{env} #{RbConfig::CONFIG["ruby_install_name"]}\n/,
+ File.read(File.join(@gemhome, "bin", "a_bin")))
end
def test_install_force
@@ -595,15 +630,15 @@ class TestGemDependencyInstaller < Gem::TestCase
FileUtils.mv @b1_gem, @tempdir
si = util_setup_spec_fetcher @b1
- @fetcher.data['http://gems.example.com/gems/yaml'] = si.to_yaml
+ @fetcher.data["http://gems.example.com/gems/yaml"] = si.to_yaml
inst = nil
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new :force => true
- inst.install 'b'
+ inst = Gem::DependencyInstaller.new force: true
+ inst.install "b"
end
- assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[b-1], inst.installed_gems.map(&:full_name)
end
def test_install_build_args
@@ -614,9 +649,8 @@ class TestGemDependencyInstaller < Gem::TestCase
build_args = %w[--a --b="c"]
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new(
- :build_args => build_args)
- inst.install 'a'
+ inst = Gem::DependencyInstaller.new(build_args: build_args)
+ inst.install "a"
end
assert_equal build_args.join("\n"), File.read(inst.installed_gems.first.build_info_file).strip
@@ -629,11 +663,11 @@ class TestGemDependencyInstaller < Gem::TestCase
inst = nil
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new :ignore_dependencies => true
- inst.install 'b'
+ inst = Gem::DependencyInstaller.new ignore_dependencies: true
+ inst.install "b"
end
- assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[b-1], inst.installed_gems.map(&:full_name)
end
def test_install_install_dir
@@ -645,40 +679,40 @@ class TestGemDependencyInstaller < Gem::TestCase
inst = Gem::Installer.at @a1.file_name
inst.install
- gemhome2 = File.join @tempdir, 'gemhome2'
+ gemhome2 = File.join @tempdir, "gemhome2"
Dir.mkdir gemhome2
inst = nil
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new :install_dir => gemhome2
- inst.install 'b'
+ inst = Gem::DependencyInstaller.new install_dir: gemhome2
+ inst.install "b"
end
- assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1 b-1], inst.installed_gems.map(&:full_name)
- assert File.exist?(File.join(gemhome2, 'specifications', @a1.spec_name))
- assert File.exist?(File.join(gemhome2, 'cache', @a1.file_name))
+ assert File.exist?(File.join(gemhome2, "specifications", @a1.spec_name))
+ assert File.exist?(File.join(gemhome2, "cache", @a1.file_name))
end
def test_install_domain_both
util_setup_gems
a1_data = nil
- File.open @a1_gem, 'rb' do |fp|
+ File.open @a1_gem, "rb" do |fp|
a1_data = fp.read
end
- @fetcher.data['http://gems.example.com/gems/a-1.gem'] = a1_data
+ @fetcher.data["http://gems.example.com/gems/a-1.gem"] = a1_data
FileUtils.mv @b1_gem, @tempdir
inst = nil
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new :domain => :both
- inst.install 'b'
+ inst = Gem::DependencyInstaller.new domain: :both
+ inst.install "b"
end
- assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1 b-1], inst.installed_gems.map(&:full_name)
a1, b1 = inst.installed_gems
assert_equal a1.spec_file, a1.loaded_from
@@ -698,11 +732,11 @@ class TestGemDependencyInstaller < Gem::TestCase
inst = nil
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new :domain => :both
- inst.install 'b'
+ inst = Gem::DependencyInstaller.new domain: :both
+ inst.install "b"
end
- assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1 b-1], inst.installed_gems.map(&:full_name)
end
def test_install_domain_local
@@ -713,31 +747,31 @@ class TestGemDependencyInstaller < Gem::TestCase
Dir.chdir @tempdir do
e = assert_raise Gem::UnsatisfiableDependencyError do
- inst = Gem::DependencyInstaller.new :domain => :local
- inst.install 'b'
+ inst = Gem::DependencyInstaller.new domain: :local
+ inst.install "b"
end
expected = "Unable to resolve dependency: 'b (>= 0)' requires 'a (>= 0)'"
assert_equal expected, e.message
end
- assert_equal [], inst.installed_gems.map {|s| s.full_name }
+ assert_equal [], inst.installed_gems.map(&:full_name)
end
def test_install_domain_remote
util_setup_gems
a1_data = nil
- File.open @a1_gem, 'rb' do |fp|
+ File.open @a1_gem, "rb" do |fp|
a1_data = fp.read
end
- @fetcher.data['http://gems.example.com/gems/a-1.gem'] = a1_data
+ @fetcher.data["http://gems.example.com/gems/a-1.gem"] = a1_data
- inst = Gem::DependencyInstaller.new :domain => :remote
- inst.install 'a'
+ inst = Gem::DependencyInstaller.new domain: :remote
+ inst.install "a"
- assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1], inst.installed_gems.map(&:full_name)
end
def test_install_dual_repository
@@ -750,23 +784,23 @@ class TestGemDependencyInstaller < Gem::TestCase
gemhome2 = "#{@gemhome}2"
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new :install_dir => gemhome2
- inst.install 'a'
+ inst = Gem::DependencyInstaller.new install_dir: gemhome2
+ inst.install "a"
end
- assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name },
- 'sanity check'
+ assert_equal %w[a-1], inst.installed_gems.map(&:full_name),
+ "sanity check"
- ENV['GEM_HOME'] = @gemhome
- ENV['GEM_PATH'] = [@gemhome, gemhome2].join File::PATH_SEPARATOR
+ ENV["GEM_HOME"] = @gemhome
+ ENV["GEM_PATH"] = [@gemhome, gemhome2].join File::PATH_SEPARATOR
Gem.clear_paths
Dir.chdir @tempdir do
inst = Gem::DependencyInstaller.new
- inst.install 'b'
+ inst.install "b"
end
- assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[b-1], inst.installed_gems.map(&:full_name)
end
def test_install_reinstall
@@ -777,8 +811,8 @@ class TestGemDependencyInstaller < Gem::TestCase
inst = nil
Dir.chdir @tempdir do
- inst = Gem::DependencyInstaller.new :force => true
- inst.install 'a'
+ inst = Gem::DependencyInstaller.new force: true
+ inst.install "a"
end
assert_equal %w[a-1], Gem::Specification.map(&:full_name)
@@ -789,30 +823,30 @@ class TestGemDependencyInstaller < Gem::TestCase
util_setup_gems
a1_data = nil
- File.open @a1_gem, 'rb' do |fp|
+ File.open @a1_gem, "rb" do |fp|
a1_data = fp.read
end
- @fetcher.data['http://gems.example.com/gems/a-1.gem'] = a1_data
+ @fetcher.data["http://gems.example.com/gems/a-1.gem"] = a1_data
inst = Gem::DependencyInstaller.new
Dir.chdir @tempdir do
- inst.install 'a'
+ inst.install "a"
end
- assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1], inst.installed_gems.map(&:full_name)
end
def test_install_remote_dep
util_setup_gems
a1_data = nil
- File.open @a1_gem, 'rb' do |fp|
+ File.open @a1_gem, "rb" do |fp|
a1_data = fp.read
end
- @fetcher.data['http://gems.example.com/gems/a-1.gem'] = a1_data
+ @fetcher.data["http://gems.example.com/gems/a-1.gem"] = a1_data
inst = Gem::DependencyInstaller.new
@@ -821,28 +855,28 @@ class TestGemDependencyInstaller < Gem::TestCase
inst.install dep
end
- assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1], inst.installed_gems.map(&:full_name)
end
def test_install_remote_platform_newer
util_setup_gems
- a2_o, a2_o_gem = util_gem 'a', '2' do |s|
+ a2_o, a2_o_gem = util_gem "a", "2" do |s|
s.platform = Gem::Platform.new %w[cpu other_platform 1]
end
si = util_setup_spec_fetcher @a1, a2_o
- @fetcher.data['http://gems.example.com/gems/yaml'] = si.to_yaml
+ @fetcher.data["http://gems.example.com/gems/yaml"] = si.to_yaml
a1_data = nil
a2_o_data = nil
- File.open @a1_gem, 'rb' do |fp|
+ File.open @a1_gem, "rb" do |fp|
a1_data = fp.read
end
- File.open a2_o_gem, 'rb' do |fp|
+ File.open a2_o_gem, "rb" do |fp|
a2_o_data = fp.read
end
@@ -851,103 +885,103 @@ class TestGemDependencyInstaller < Gem::TestCase
@fetcher.data["http://gems.example.com/gems/#{a2_o.file_name}"] =
a2_o_data
- inst = Gem::DependencyInstaller.new :domain => :remote
- inst.install 'a'
+ inst = Gem::DependencyInstaller.new domain: :remote
+ inst.install "a"
- assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1], inst.installed_gems.map(&:full_name)
end
def test_install_platform_is_ignored_when_a_file_is_specified
- _, a_gem = util_gem 'a', '1' do |s|
+ _, a_gem = util_gem "a", "1" do |s|
s.platform = Gem::Platform.new %w[cpu other_platform 1]
end
- inst = Gem::DependencyInstaller.new :domain => :local
+ inst = Gem::DependencyInstaller.new domain: :local
inst.install a_gem
- assert_equal %w[a-1-cpu-other_platform-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[a-1-cpu-other_platform-1], inst.installed_gems.map(&:full_name)
end
- require 'rubygems/openssl'
+ require "rubygems/openssl"
if Gem::HAVE_OPENSSL
def test_install_security_policy
util_setup_gems
- data = File.open(@a1_gem, 'rb') {|f| f.read }
- @fetcher.data['http://gems.example.com/gems/a-1.gem'] = data
+ data = File.open(@a1_gem, "rb", &:read)
+ @fetcher.data["http://gems.example.com/gems/a-1.gem"] = data
- data = File.open(@b1_gem, 'rb') {|f| f.read }
- @fetcher.data['http://gems.example.com/gems/b-1.gem'] = data
+ data = File.open(@b1_gem, "rb", &:read)
+ @fetcher.data["http://gems.example.com/gems/b-1.gem"] = data
policy = Gem::Security::HighSecurity
- inst = Gem::DependencyInstaller.new :security_policy => policy
+ inst = Gem::DependencyInstaller.new security_policy: policy
e = assert_raise Gem::Security::Exception do
- inst.install 'b'
+ inst.install "b"
end
- assert_equal 'unsigned gems are not allowed by the High Security policy',
+ assert_equal "unsigned gems are not allowed by the High Security policy",
e.message
- assert_equal %w[], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[], inst.installed_gems.map(&:full_name)
end
end
# Wrappers don't work on mswin
- unless win_platform?
+ unless Gem.win_platform?
def test_install_no_wrappers
util_setup_gems
- @fetcher.data['http://gems.example.com/gems/a-1.gem'] = read_binary(@a1_gem)
+ @fetcher.data["http://gems.example.com/gems/a-1.gem"] = read_binary(@a1_gem)
- inst = Gem::DependencyInstaller.new :wrappers => false, :format_executable => false
- inst.install 'a'
+ inst = Gem::DependencyInstaller.new wrappers: false, format_executable: false
+ inst.install "a"
- refute_match(%r{This file was generated by RubyGems.},
- File.read(File.join(@gemhome, 'bin', 'a_bin')))
+ refute_match(/This file was generated by RubyGems./,
+ File.read(File.join(@gemhome, "bin", "a_bin")))
end
end
def test_install_version
util_setup_d
- data = File.open(@d2_gem, 'rb') {|f| f.read }
- @fetcher.data['http://gems.example.com/gems/d-2.gem'] = data
+ data = File.open(@d2_gem, "rb", &:read)
+ @fetcher.data["http://gems.example.com/gems/d-2.gem"] = data
- data = File.open(@d1_gem, 'rb') {|f| f.read }
- @fetcher.data['http://gems.example.com/gems/d-1.gem'] = data
+ data = File.open(@d1_gem, "rb", &:read)
+ @fetcher.data["http://gems.example.com/gems/d-1.gem"] = data
inst = Gem::DependencyInstaller.new
- inst.install 'd', '= 1'
+ inst.install "d", "= 1"
- assert_equal %w[d-1], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[d-1], inst.installed_gems.map(&:full_name)
end
def test_install_version_default
util_setup_d
- data = File.open(@d2_gem, 'rb') {|f| f.read }
- @fetcher.data['http://gems.example.com/gems/d-2.gem'] = data
+ data = File.open(@d2_gem, "rb", &:read)
+ @fetcher.data["http://gems.example.com/gems/d-2.gem"] = data
- data = File.open(@d1_gem, 'rb') {|f| f.read }
- @fetcher.data['http://gems.example.com/gems/d-1.gem'] = data
+ data = File.open(@d1_gem, "rb", &:read)
+ @fetcher.data["http://gems.example.com/gems/d-1.gem"] = data
inst = Gem::DependencyInstaller.new
- inst.install 'd'
+ inst.install "d"
- assert_equal %w[d-2], inst.installed_gems.map {|s| s.full_name }
+ assert_equal %w[d-2], inst.installed_gems.map(&:full_name)
end
def test_install_legacy_spec_with_nil_required_ruby_version
- path = File.expand_path 'data/null-required-ruby-version.gemspec.rz', __dir__
+ path = File.expand_path "data/null-required-ruby-version.gemspec.rz", __dir__
spec = Marshal.load Gem.read_binary(path)
def spec.validate(*args); end
util_build_gem spec
- cache_file = File.join @tempdir, 'gems', "#{spec.original_name}.gem"
+ cache_file = File.join @tempdir, "gems", "#{spec.original_name}.gem"
FileUtils.mkdir_p File.dirname cache_file
FileUtils.mv spec.cache_file, cache_file
@@ -955,9 +989,9 @@ class TestGemDependencyInstaller < Gem::TestCase
data = Gem.read_binary(cache_file)
- @fetcher.data['http://gems.example.com/gems/activesupport-1.0.0.gem'] = data
+ @fetcher.data["http://gems.example.com/gems/activesupport-1.0.0.gem"] = data
- dep = Gem::Dependency.new 'activesupport'
+ dep = Gem::Dependency.new "activesupport"
inst = Gem::DependencyInstaller.new
inst.install dep
@@ -966,13 +1000,13 @@ class TestGemDependencyInstaller < Gem::TestCase
end
def test_install_legacy_spec_with_nil_required_rubygems_version
- path = File.expand_path 'data/null-required-rubygems-version.gemspec.rz', __dir__
+ path = File.expand_path "data/null-required-rubygems-version.gemspec.rz", __dir__
spec = Marshal.load Gem.read_binary(path)
def spec.validate(*args); end
util_build_gem spec
- cache_file = File.join @tempdir, 'gems', "#{spec.original_name}.gem"
+ cache_file = File.join @tempdir, "gems", "#{spec.original_name}.gem"
FileUtils.mkdir_p File.dirname cache_file
FileUtils.mv spec.cache_file, cache_file
@@ -980,9 +1014,9 @@ class TestGemDependencyInstaller < Gem::TestCase
data = Gem.read_binary(cache_file)
- @fetcher.data['http://gems.example.com/gems/activesupport-1.0.0.gem'] = data
+ @fetcher.data["http://gems.example.com/gems/activesupport-1.0.0.gem"] = data
- dep = Gem::Dependency.new 'activesupport'
+ dep = Gem::Dependency.new "activesupport"
inst = Gem::DependencyInstaller.new
inst.install dep
@@ -994,7 +1028,7 @@ class TestGemDependencyInstaller < Gem::TestCase
util_setup_gems
inst = Gem::DependencyInstaller.new
- dep = Gem::Dependency.new 'b', '>= 0'
+ dep = Gem::Dependency.new "b", ">= 0"
Gem::Specification.reset
@@ -1015,7 +1049,7 @@ class TestGemDependencyInstaller < Gem::TestCase
FileUtils.mv @a1_gem, @tempdir
inst = Gem::DependencyInstaller.new
- dep = Gem::Dependency.new 'a', '>= 0'
+ dep = Gem::Dependency.new "a", ">= 0"
set = nil
Dir.chdir @tempdir do
@@ -1030,12 +1064,12 @@ class TestGemDependencyInstaller < Gem::TestCase
remote, local = gems
- assert_equal 'a-1', local.spec.full_name, 'local spec'
+ assert_equal "a-1", local.spec.full_name, "local spec"
assert_equal File.join(@tempdir, @a1.file_name),
- local.source.download(local.spec), 'local path'
+ local.source.download(local.spec), "local path"
- assert_equal 'a-1', remote.spec.full_name, 'remote spec'
- assert_equal Gem::Source.new(@gem_repo), remote.source, 'remote path'
+ assert_equal "a-1", remote.spec.full_name, "remote spec"
+ assert_equal Gem::Source.new(@gem_repo), remote.source, "remote path"
end
def test_find_gems_with_sources_prerelease
@@ -1043,7 +1077,7 @@ class TestGemDependencyInstaller < Gem::TestCase
installer = Gem::DependencyInstaller.new
- dependency = Gem::Dependency.new('a', Gem::Requirement.default)
+ dependency = Gem::Dependency.new("a", Gem::Requirement.default)
set = Gem::Deprecate.skip_during do
installer.find_gems_with_sources(dependency)
@@ -1051,8 +1085,8 @@ class TestGemDependencyInstaller < Gem::TestCase
releases = set.all_specs
- assert releases.any? {|s| s.name == 'a' and s.version.to_s == '1' }
- refute releases.any? {|s| s.name == 'a' and s.version.to_s == '1.a' }
+ assert releases.any? {|s| s.name == "a" && s.version.to_s == "1" }
+ refute releases.any? {|s| s.name == "a" && s.version.to_s == "1.a" }
dependency.prerelease = true
@@ -1067,15 +1101,15 @@ class TestGemDependencyInstaller < Gem::TestCase
def test_find_gems_with_sources_with_best_only_and_platform
util_setup_gems
- a1_x86_mingw32, = util_gem 'a', '1' do |s|
- s.platform = 'x86-mingw32'
+ a1_x86_mingw32, = util_gem "a", "1" do |s|
+ s.platform = "x86-mingw32"
end
util_setup_spec_fetcher @a1, a1_x86_mingw32
- Gem.platforms << Gem::Platform.new('x86-mingw32')
+ Gem.platforms << Gem::Platform.new("x86-mingw32")
installer = Gem::DependencyInstaller.new
- dependency = Gem::Dependency.new('a', Gem::Requirement.default)
+ dependency = Gem::Dependency.new("a", Gem::Requirement.default)
set = Gem::Deprecate.skip_during do
installer.find_gems_with_sources(dependency, true)
@@ -1091,7 +1125,7 @@ class TestGemDependencyInstaller < Gem::TestCase
installer = Gem::DependencyInstaller.new
- dep = Gem::Dependency.new('a')
+ dep = Gem::Dependency.new("a")
out = Gem::Deprecate.skip_during do
installer.find_gems_with_sources(dep)
@@ -1108,9 +1142,9 @@ class TestGemDependencyInstaller < Gem::TestCase
FileUtils.mv @b1_gem, @tempdir
inst = Gem::DependencyInstaller.new
- request_set = inst.resolve_dependencies 'b', req('>= 0')
+ request_set = inst.resolve_dependencies "b", req(">= 0")
- requests = request_set.sorted_requests.map {|req| req.full_name }
+ requests = request_set.sorted_requests.map(&:full_name)
assert_equal %w[a-1 b-1], requests
end
@@ -1121,10 +1155,10 @@ class TestGemDependencyInstaller < Gem::TestCase
FileUtils.mv @a1_gem, @tempdir
FileUtils.mv @b1_gem, @tempdir
- inst = Gem::DependencyInstaller.new :ignore_dependencies => true
- request_set = inst.resolve_dependencies 'b', req('>= 0')
+ inst = Gem::DependencyInstaller.new ignore_dependencies: true
+ request_set = inst.resolve_dependencies "b", req(">= 0")
- requests = request_set.sorted_requests.map {|req| req.full_name }
+ requests = request_set.sorted_requests.map(&:full_name)
assert request_set.ignore_dependencies
@@ -1134,21 +1168,21 @@ class TestGemDependencyInstaller < Gem::TestCase
def test_resolve_dependencies_local
util_setup_gems
- @a2, @a2_gem = util_gem 'a', '2'
+ @a2, @a2_gem = util_gem "a", "2"
FileUtils.mv @a1_gem, @tempdir
FileUtils.mv @a2_gem, @tempdir
inst = Gem::DependencyInstaller.new
- request_set = inst.resolve_dependencies 'a-1.gem', req('>= 0')
+ request_set = inst.resolve_dependencies "a-1.gem", req(">= 0")
- requests = request_set.sorted_requests.map {|req| req.full_name }
+ requests = request_set.sorted_requests.map(&:full_name)
assert_equal %w[a-1], requests
end
def util_setup_d
- @d1, @d1_gem = util_gem 'd', '1'
- @d2, @d2_gem = util_gem 'd', '2'
+ @d1, @d1_gem = util_gem "d", "1"
+ @d2, @d2_gem = util_gem "d", "2"
util_setup_spec_fetcher(@d1, @d2)
end