uninstall: fix dependent order bug
This commit is contained in:
parent
08c898f280
commit
888c44b238
@ -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"
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user