uninstall: fix dependent order bug

This commit is contained in:
Alyssa Ross 2016-09-27 22:37:03 +01:00
parent 08c898f280
commit 888c44b238
2 changed files with 36 additions and 1 deletions

View File

@ -16,7 +16,7 @@ module Homebrew
if !ARGV.force? if !ARGV.force?
ARGV.kegs.each do |keg| ARGV.kegs.each do |keg|
dependents = keg.installed_dependents dependents = keg.installed_dependents - ARGV.kegs
if dependents.any? if dependents.any?
dependents_output = dependents.map { |k| "#{k.name} #{k.version}" }.join(", ") dependents_output = dependents.map { |k| "#{k.name} #{k.version}" }.join(", ")
conjugation = dependents.count == 1 ? "is" : "are" conjugation = dependents.count == 1 ? "is" : "are"

View File

@ -1,8 +1,43 @@
require "helper/integration_command_test_case" require "helper/integration_command_test_case"
class IntegrationCommandTestUninstall < IntegrationCommandTestCase class IntegrationCommandTestUninstall < IntegrationCommandTestCase
def setup
super
@f1_path = setup_test_formula "testball_f1", <<-CONTENT
def install
FileUtils.touch prefix/touch("hello")
end
CONTENT
@f2_path = setup_test_formula "testball_f2", <<-CONTENT
depends_on "testball_f1"
def install
FileUtils.touch prefix/touch("hello")
end
CONTENT
end
def test_uninstall def test_uninstall
cmd("install", testball) cmd("install", testball)
assert_match "Uninstalling testball", cmd("uninstall", "--force", testball) assert_match "Uninstalling testball", cmd("uninstall", "--force", testball)
end end
def test_uninstall_leaving_dependents
cmd("install", "testball_f2")
assert_match "Refusing to uninstall", cmd_fail("uninstall", "testball_f1")
assert_match "Uninstalling #{Formulary.factory(@f2_path).rack}",
cmd("uninstall", "testball_f2")
end
def test_uninstall_dependent_first
cmd("install", "testball_f2")
assert_match "Uninstalling #{Formulary.factory(@f1_path).rack}",
cmd("uninstall", "testball_f2", "testball_f1")
end
def test_uninstall_dependent_last
cmd("install", "testball_f2")
assert_match "Uninstalling #{Formulary.factory(@f2_path).rack}",
cmd("uninstall", "testball_f1", "testball_f2")
end
end end