diff options
Diffstat (limited to 'test/rubygems/test_gem_dependency_installer.rb')
-rw-r--r-- | test/rubygems/test_gem_dependency_installer.rb | 530 |
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 |