diff options
Diffstat (limited to 'test/rubygems/test_gem_dependency_installer.rb')
-rw-r--r-- | test/rubygems/test_gem_dependency_installer.rb | 100 |
1 files changed, 42 insertions, 58 deletions
diff --git a/test/rubygems/test_gem_dependency_installer.rb b/test/rubygems/test_gem_dependency_installer.rb index af6b922fe3..2b95597d4b 100644 --- a/test/rubygems/test_gem_dependency_installer.rb +++ b/test/rubygems/test_gem_dependency_installer.rb @@ -6,7 +6,6 @@ class TestGemDependencyInstaller < Gem::TestCase def setup super - common_installer_setup @gems_dir = File.join @tempdir, 'gems' @cache_dir = File.join @gemhome, 'cache' @@ -173,8 +172,7 @@ class TestGemDependencyInstaller < Gem::TestCase FileUtils.mv @a1_gem, @tempdir FileUtils.mv @b1_gem, @tempdir - FileUtils.mv e1_gem, @tempdir - + FileUtils.mv e1_gem, @tempdir inst = nil Dir.chdir @tempdir do @@ -182,15 +180,40 @@ class TestGemDependencyInstaller < Gem::TestCase inst.install 'b' end - assert_equal %w[b-1], inst.installed_gems.map { |s| s.full_name }, - 'sanity check' - Dir.chdir @tempdir do inst = Gem::DependencyInstaller.new inst.install 'e' end - assert_equal %w[a-1 e-1], inst.installed_gems.map { |s| s.full_name } + assert_equal %w[e-1 a-1], inst.installed_gems.map { |s| s.full_name } + end + + def test_install_ignore_satified_deps + util_setup_gems + + _, e1_gem = util_gem 'e', '1' do |s| + s.add_dependency 'b' + end + + util_clear_gems + + FileUtils.mv @a1_gem, @tempdir + FileUtils.mv @b1_gem, @tempdir + FileUtils.mv e1_gem, @tempdir + + Dir.chdir @tempdir do + i = Gem::DependencyInstaller.new :ignore_dependencies => true + i.install 'b' + end + + inst = nil + + Dir.chdir @tempdir do + inst = Gem::DependencyInstaller.new :minimal_deps => true + inst.install 'e' + end + + assert_equal %w[e-1], inst.installed_gems.map { |s| s.full_name } end def test_install_cache_dir @@ -223,18 +246,15 @@ class TestGemDependencyInstaller < Gem::TestCase 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', Gem::Requirement.create("= 2") end - assert_equal %w[a-2], inst.installed_gems.map { |s| s.full_name }, - 'sanity check' - FileUtils.rm File.join(@tempdir, a2.file_name) Dir.chdir @tempdir do @@ -262,18 +282,19 @@ class TestGemDependencyInstaller < Gem::TestCase 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 + FileUtils.mv a3_gem, @tempdir + + inst = nil Dir.chdir @tempdir do - Gem::DependencyInstaller.new.install 'a', req("= 2") + inst = Gem::DependencyInstaller.new + inst.install 'a', Gem::Requirement.create("= 2") end FileUtils.rm File.join(@tempdir, a2.file_name) - inst = nil - Dir.chdir @tempdir do inst = Gem::DependencyInstaller.new inst.install 'b' @@ -467,42 +488,6 @@ class TestGemDependencyInstaller < Gem::TestCase assert_equal %w[a-1], inst.installed_gems.map { |s| s.full_name } end - def test_install_minimal_deps - util_setup_gems - - _, 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' - end - - util_clear_gems - - FileUtils.mv @a1_gem, @tempdir - FileUtils.mv @b1_gem, @tempdir - FileUtils.mv b2_gem, @tempdir - FileUtils.mv e1_gem, @tempdir - - inst = nil - - Dir.chdir @tempdir do - 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' - - Dir.chdir @tempdir do - 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 } - end - def test_install_env_shebang util_setup_gems @@ -642,12 +627,12 @@ class TestGemDependencyInstaller < Gem::TestCase inst = nil Dir.chdir @tempdir do - e = assert_raises Gem::UnsatisfiableDependencyError do + e = assert_raises Gem::DependencyError do inst = Gem::DependencyInstaller.new :domain => :local inst.install 'b' end - expected = "Unable to resolve dependency: b (= 1) requires a (>= 0)" + expected = "Unable to resolve dependencies: b requires a (>= 0)" assert_equal expected, e.message end @@ -925,13 +910,12 @@ class TestGemDependencyInstaller < Gem::TestCase gems = set.sorted assert_equal 2, gems.length - - remote, local = gems - + local = gems.first 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' + remote = gems.last assert_equal 'a-1', remote.spec.full_name, 'remote spec' assert_equal Gem::Source.new(@gem_repo), remote.source, 'remote path' |