keg: fix fallback dependencies with multiple kegs

Fixes #1524.
This commit is contained in:
Alyssa Ross 2016-12-30 17:41:57 +00:00
parent e2689a697c
commit 01e1f7d49e
2 changed files with 14 additions and 1 deletions

View File

@ -105,7 +105,13 @@ class Keg
#
# This happens after the initial dependency check because it's sloooow.
remaining_formulae = Formula.installed.select do |f|
f.installed_kegs.any? { |k| Tab.for_keg(k).runtime_dependencies.nil? }
installed_kegs = f.installed_kegs
# All installed kegs are going to be removed anyway,
# so it doesn't matter what they depend on.
next false if (installed_kegs - kegs).empty?
installed_kegs.any? { |k| Tab.for_keg(k).runtime_dependencies.nil? }
end
keg_names = kegs.map(&:name)

View File

@ -382,6 +382,13 @@ class InstalledDependantsTests < LinkTestCase
assert_equal [[@keg], ["bar"]], Keg.find_some_installed_dependents([@keg])
end
def test_uninstalling_dependent_and_dependency
dependencies nil
Formula["bar"].class.depends_on "foo"
assert_empty @keg.installed_dependents
assert_nil Keg.find_some_installed_dependents([@keg, @dependent])
end
def test_empty_dependencies_in_tab
dependencies []
assert_empty @keg.installed_dependents