aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorAlyssa Ross2016-12-27 22:58:44 +0000
committerAlyssa Ross2016-12-27 22:58:44 +0000
commit3a27d8121970dab95f2d28db81189ddf9619c0f5 (patch)
tree3632c8f261e2f0cba7c694b8bfb91ba004b63fb8 /Library
parente5d7e13c63e7e942f3acdd5c0fac7bed624f52c4 (diff)
downloadbrew-3a27d8121970dab95f2d28db81189ddf9619c0f5.tar.bz2
keg: fix dependents with unavailable formulae
Because of an accidental use of `=` instead of `==`, the source formula check would be skipped when determining if a keg depended on another one (so only the versions would be compared). Fixed that comparison, and updated the corresponding test. Glad I caught that!
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/keg.rb4
-rw-r--r--Library/Homebrew/test/keg_test.rb8
2 files changed, 7 insertions, 5 deletions
diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb
index 3d2d21d69..756b27288 100644
--- a/Library/Homebrew/keg.rb
+++ b/Library/Homebrew/keg.rb
@@ -357,7 +357,7 @@ class Keg
end
def installed_dependents
- my_tab = Tab.for_keg(self)
+ tap = Tab.for_keg(self).source["tap"]
Keg.all.select do |keg|
tab = Tab.for_keg(keg)
next if tab.runtime_dependencies.nil? # no dependency information saved.
@@ -368,7 +368,7 @@ class Keg
dep_formula = Formulary.factory(dep["full_name"])
next false unless dep_formula == to_formula
rescue FormulaUnavailableError
- next false unless my_tab["full_name"] = dep["full_name"]
+ next false unless "#{tap}/#{name}" == dep["full_name"]
end
dep["version"] == version.to_s
diff --git a/Library/Homebrew/test/keg_test.rb b/Library/Homebrew/test/keg_test.rb
index cf5f13a6c..4fe7c6a3c 100644
--- a/Library/Homebrew/test/keg_test.rb
+++ b/Library/Homebrew/test/keg_test.rb
@@ -360,9 +360,11 @@ class InstalledDependantsTests < LinkTestCase
# from a file path or URL.
def test_unknown_formula
Formulary.unstub(:loader_for)
- alter_tab { |t| t.source["tap"] = "some/tap" }
- dependencies [{ "full_name" => "some/tap/bar", "version" => "1.0" }]
- alter_tab { |t| t.source["path"] = nil }
+ alter_tab(@keg) do |t|
+ t.source["tap"] = "some/tap"
+ t.source["path"] = nil
+ end
+ dependencies [{ "full_name" => "some/tap/foo", "version" => "1.0" }]
assert_equal [@dependent], @keg.installed_dependents
assert_equal [[@keg], ["bar 1.0"]], Keg.find_some_installed_dependents([@keg])
end