aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMike McQuaid2017-01-17 09:12:47 +0000
committerGitHub2017-01-17 09:12:47 +0000
commit3d37e3b67fa0c007ab0d6b6cea35f203084b8905 (patch)
tree70489e1e10c1005ee9b097024dffcadc2a2efbc4 /Library
parent10b8d27d118c5db7ce4293861cded28e8516e849 (diff)
parent33b955a3f24d835f45d439f97ecabb7d6d51b7ad (diff)
downloadbrew-3d37e3b67fa0c007ab0d6b6cea35f203084b8905.tar.bz2
Merge pull request #1849 from alyssais/requirement_tests
tests: test Formula#recursive_requirements
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/test/formula_test.rb38
1 files changed, 38 insertions, 0 deletions
diff --git a/Library/Homebrew/test/formula_test.rb b/Library/Homebrew/test/formula_test.rb
index 81022d220..2d2136a05 100644
--- a/Library/Homebrew/test/formula_test.rb
+++ b/Library/Homebrew/test/formula_test.rb
@@ -689,6 +689,44 @@ class FormulaTests < Homebrew::TestCase
assert_equal %w[foo/bar/f1 baz/qux/f2], f3.runtime_dependencies.map(&:name)
end
+ def test_requirements
+ f1 = formula("f1") do
+ url "f1-1"
+
+ depends_on :python
+ depends_on x11: :recommended
+ depends_on xcode: ["1.0", :optional]
+ end
+ stub_formula_loader f1
+
+ python = PythonRequirement.new
+ x11 = X11Requirement.new("x11", [:recommended])
+ xcode = XcodeRequirement.new(["1.0", :optional])
+
+ # Default block should filter out deps that aren't being used
+ assert_equal Set[python, x11], Set.new(f1.recursive_requirements)
+
+ f1.build = BuildOptions.new(["--with-xcode", "--without-x11"], f1.options)
+ assert_equal Set[python, xcode], Set.new(f1.recursive_requirements)
+ f1.build = f1.stable.build
+
+ f2 = formula("f2") do
+ url "f2-1"
+ depends_on "f1"
+ end
+
+ assert_equal Set[python, x11], Set.new(f2.recursive_requirements)
+
+ # Empty block should allow all requirements
+ assert_equal Set[python, x11, xcode], Set.new(f2.recursive_requirements {})
+
+ # Requirements can be pruned
+ requirements = f2.recursive_requirements do |_dependent, requirement|
+ Requirement.prune if requirement.is_a?(PythonRequirement)
+ end
+ assert_equal Set[x11, xcode], Set.new(requirements)
+ end
+
def test_to_hash
f1 = formula("foo") do
url "foo-1.0"