diff options
| author | Alyssa Ross | 2016-09-27 22:37:03 +0100 |
|---|---|---|
| committer | Alyssa Ross | 2016-10-25 22:34:34 +0100 |
| commit | 888c44b238b6a5afa705ca46f6a682ac1c4bb729 (patch) | |
| tree | 82451d8dda1cc4b2a07236a6281040b6f326be03 /Library/Homebrew | |
| parent | 08c898f28075d04c0e9921d72d9d3791f0dbef8e (diff) | |
| download | brew-888c44b238b6a5afa705ca46f6a682ac1c4bb729.tar.bz2 | |
uninstall: fix dependent order bug
Diffstat (limited to 'Library/Homebrew')
| -rw-r--r-- | Library/Homebrew/cmd/uninstall.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_uninstall.rb | 35 |
2 files changed, 36 insertions, 1 deletions
diff --git a/Library/Homebrew/cmd/uninstall.rb b/Library/Homebrew/cmd/uninstall.rb index 30806942b..c45e94b79 100644 --- a/Library/Homebrew/cmd/uninstall.rb +++ b/Library/Homebrew/cmd/uninstall.rb @@ -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" diff --git a/Library/Homebrew/test/test_uninstall.rb b/Library/Homebrew/test/test_uninstall.rb index 050934238..fe14a79c2 100644 --- a/Library/Homebrew/test/test_uninstall.rb +++ b/Library/Homebrew/test/test_uninstall.rb @@ -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 |
