aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test
diff options
context:
space:
mode:
authorMike McQuaid2017-03-25 10:59:54 +0000
committerMike McQuaid2017-03-25 10:59:54 +0000
commit0cc9d93885b7824e702156c50c46d22158b5a57f (patch)
tree5f86bbc9ccabfe1ee45a1aae0aecd77b86a73c4d /Library/Homebrew/test
parent098ed84df4113f4a04a386765dd1c7537fa39f72 (diff)
downloadbrew-0cc9d93885b7824e702156c50c46d22158b5a57f.tar.bz2
formula_installer: tweak req formula additions.
Rather than just checking if a requirement's dependency is installed or not check if the requirement was actually satisfied by a particular formula rather than e.g. just having a `default_formula` defined.
Diffstat (limited to 'Library/Homebrew/test')
-rw-r--r--Library/Homebrew/test/formula_installer_spec.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/Library/Homebrew/test/formula_installer_spec.rb b/Library/Homebrew/test/formula_installer_spec.rb
index 600b4560f..f5218db73 100644
--- a/Library/Homebrew/test/formula_installer_spec.rb
+++ b/Library/Homebrew/test/formula_installer_spec.rb
@@ -134,4 +134,43 @@ describe FormulaInstaller do
fi.check_install_sanity
}.to raise_error(CannotInstallFormulaError)
end
+
+ describe "#install_requirement_formula?" do
+ before do
+ @requirement = Python3Requirement.new
+ allow(@requirement).to receive(:satisfied?).and_return(satisfied?)
+ allow(@requirement).to receive(:satisfied_by_formula?).and_return(satisfied_by_formula?)
+ allow_any_instance_of(Dependency).to receive(:installed?).and_return(installed?)
+ @dependent = formula do
+ url "foo"
+ version "0.1"
+ depends_on :python3
+ end
+ @build = BuildOptions.new [], []
+ @fi = FormulaInstaller.new(@dependent)
+ end
+
+ subject { @fi.install_requirement_formula?(@requirement, @dependent, @build) }
+
+ context "it returns false when requirement is satisfied" do
+ let(:satisfied?) { true }
+ let(:satisfied_by_formula?) { false }
+ let(:installed?) { false }
+ it { is_expected.to be false }
+ end
+
+ context "it returns true when requirement isn't satisfied" do
+ let(:satisfied?) { false }
+ let(:satisfied_by_formula?) { false }
+ let(:installed?) { false }
+ it { is_expected.to be true }
+ end
+
+ context "it returns true when requirement is satisfied by a formula" do
+ let(:satisfied?) { true }
+ let(:satisfied_by_formula?) { true }
+ let(:installed?) { false }
+ it { is_expected.to be true }
+ end
+ end
end