aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test
diff options
context:
space:
mode:
authorMike McQuaid2017-12-07 14:56:12 +0000
committerMike McQuaid2017-12-07 14:56:12 +0000
commitb9cf7b2bbc9439080ad397574381b1e8bf1e1f9a (patch)
tree7fdbdfe231bdefe6b97a6b961d66095b00ebadf9 /Library/Homebrew/test
parent286d74eec2dad60562f81f9fc02043ad82466b5c (diff)
downloadbrew-b9cf7b2bbc9439080ad397574381b1e8bf1e1f9a.tar.bz2
formula_installer: avoid irrelevant build deps.
If dependents are already installed ensure their build dependencies (and requirements) don't end up in the dependency/requirement tree. Fixes #3033.
Diffstat (limited to 'Library/Homebrew/test')
-rw-r--r--Library/Homebrew/test/formula_installer_spec.rb16
1 files changed, 15 insertions, 1 deletions
diff --git a/Library/Homebrew/test/formula_installer_spec.rb b/Library/Homebrew/test/formula_installer_spec.rb
index 1e3c04b68..b85e75b81 100644
--- a/Library/Homebrew/test/formula_installer_spec.rb
+++ b/Library/Homebrew/test/formula_installer_spec.rb
@@ -140,19 +140,22 @@ describe FormulaInstaller do
@install_bottle_for_dependent = false
allow(@requirement).to receive(:satisfied?).and_return(satisfied?)
allow(@requirement).to receive(:satisfied_by_formula?).and_return(satisfied_by_formula?)
+ allow(@requirement).to receive(:build?).and_return(build?)
@dependent = formula do
url "foo"
version "0.1"
depends_on :python3
end
+ allow(@dependent).to receive(:installed?).and_return(installed?)
@fi = FormulaInstaller.new(@dependent)
end
- subject { @fi.install_requirement_formula?(@requirement_dependency, @requirement, @install_bottle_for_dependent) }
+ subject { @fi.install_requirement_formula?(@requirement_dependency, @requirement, @dependent, @install_bottle_for_dependent) }
context "it returns false when requirement is satisfied" do
let(:satisfied?) { true }
let(:satisfied_by_formula?) { false }
+ let(:build?) { false }
let(:installed?) { false }
it { is_expected.to be false }
end
@@ -160,6 +163,15 @@ describe FormulaInstaller do
context "it returns false when requirement is satisfied but default formula is installed" do
let(:satisfied?) { true }
let(:satisfied_by_formula?) { false }
+ let(:build?) { false }
+ let(:installed?) { false }
+ it { is_expected.to be false }
+ end
+
+ context "it returns false when requirement is :build and dependent is installed" do
+ let(:satisfied?) { false }
+ let(:satisfied_by_formula?) { false }
+ let(:build?) { true }
let(:installed?) { true }
it { is_expected.to be false }
end
@@ -167,6 +179,7 @@ describe FormulaInstaller do
context "it returns true when requirement isn't satisfied" do
let(:satisfied?) { false }
let(:satisfied_by_formula?) { false }
+ let(:build?) { false }
let(:installed?) { false }
it { is_expected.to be true }
end
@@ -174,6 +187,7 @@ describe FormulaInstaller do
context "it returns true when requirement is satisfied by a formula" do
let(:satisfied?) { true }
let(:satisfied_by_formula?) { true }
+ let(:build?) { false }
let(:installed?) { false }
it { is_expected.to be true }
end