diff options
| author | Alyssa Ross | 2016-11-17 16:18:50 +0000 |
|---|---|---|
| committer | Alyssa Ross | 2017-01-01 14:26:28 +0000 |
| commit | 05b85a7bef112a2d3db7cd56c819a62d9bb34e1b (patch) | |
| tree | f36483b8afd26b45600e6d67c2409380e268aa1f | |
| parent | 81b40f6564a26814acab5ec9cf353fd677734f5d (diff) | |
| download | brew-05b85a7bef112a2d3db7cd56c819a62d9bb34e1b.tar.bz2 | |
keg: update installed dependency resolution
Closes #1525. (See there for a motivation for this change.)
| -rw-r--r-- | Library/Homebrew/keg.rb | 7 | ||||
| -rw-r--r-- | Library/Homebrew/test/keg_test.rb | 12 |
2 files changed, 13 insertions, 6 deletions
diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb index 74fd88c2e..b7af6427f 100644 --- a/Library/Homebrew/keg.rb +++ b/Library/Homebrew/keg.rb @@ -385,6 +385,7 @@ class Keg end def installed_dependents + return [] unless linked? tap = Tab.for_keg(self).source["tap"] Keg.all.select do |keg| tab = Tab.for_keg(keg) @@ -394,12 +395,10 @@ class Keg # in case of conflicts between formulae from different taps. begin dep_formula = Formulary.factory(dep["full_name"]) - next false unless dep_formula == to_formula + dep_formula == to_formula rescue FormulaUnavailableError - next false unless "#{tap}/#{name}" == dep["full_name"] + next "#{tap}/#{name}" == dep["full_name"] end - - dep["version"] == version.to_s end end end diff --git a/Library/Homebrew/test/keg_test.rb b/Library/Homebrew/test/keg_test.rb index 660ccd882..7b396b563 100644 --- a/Library/Homebrew/test/keg_test.rb +++ b/Library/Homebrew/test/keg_test.rb @@ -340,6 +340,7 @@ class InstalledDependantsTests < LinkTestCase def setup super @dependent = setup_test_keg("bar", "1.0") + @keg.link end def alter_tab(keg = @dependent) @@ -442,8 +443,8 @@ class InstalledDependantsTests < LinkTestCase def test_same_name_different_version_in_tab dependencies [{ "full_name" => "foo", "version" => "1.1" }] - assert_empty @keg.installed_dependents - assert_nil Keg.find_some_installed_dependents([@keg]) + assert_equal [@dependent], @keg.installed_dependents + assert_equal [[@keg], ["bar 1.0"]], Keg.find_some_installed_dependents([@keg]) end def test_different_name_same_version_in_tab @@ -465,4 +466,11 @@ class InstalledDependantsTests < LinkTestCase assert_empty @keg.installed_dependents assert_equal [[@keg], ["bar"]], Keg.find_some_installed_dependents([@keg]) end + + def test_unlinked + @keg.unlink + dependencies [{ "full_name" => "foo", "version" => "1.0" }] + assert_empty @keg.installed_dependents + assert_nil Keg.find_some_installed_dependents([@keg]) + end end |
