uninstall: fix dependent order bug
This commit is contained in:
parent
08c898f280
commit
888c44b238
@ -16,7 +16,7 @@ module Homebrew
|
||||
|
||||
if !ARGV.force?
|
||||
ARGV.kegs.each do |keg|
|
||||
dependents = keg.installed_dependents
|
||||
dependents = keg.installed_dependents - ARGV.kegs
|
||||
if dependents.any?
|
||||
dependents_output = dependents.map { |k| "#{k.name} #{k.version}" }.join(", ")
|
||||
conjugation = dependents.count == 1 ? "is" : "are"
|
||||
|
||||
@ -1,8 +1,43 @@
|
||||
require "helper/integration_command_test_case"
|
||||
|
||||
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
|
||||
cmd("install", testball)
|
||||
assert_match "Uninstalling testball", cmd("uninstall", "--force", testball)
|
||||
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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user