From 0d9020838fd19c5f4b677c4576159e561bfe7de1 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sun, 15 Jan 2017 19:50:07 +0000 Subject: [PATCH 1/2] tests: test Formula#recursive_requirements --- Library/Homebrew/test/formula_test.rb | 38 +++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/Library/Homebrew/test/formula_test.rb b/Library/Homebrew/test/formula_test.rb index 81022d2202..e295875e7e 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" From 33b955a3f24d835f45d439f97ecabb7d6d51b7ad Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Mon, 16 Jan 2017 21:58:57 +0000 Subject: [PATCH 2/2] tests: fix style of recursive_requirements tests --- Library/Homebrew/test/formula_test.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/test/formula_test.rb b/Library/Homebrew/test/formula_test.rb index e295875e7e..2d2136a05b 100644 --- a/Library/Homebrew/test/formula_test.rb +++ b/Library/Homebrew/test/formula_test.rb @@ -694,8 +694,8 @@ class FormulaTests < Homebrew::TestCase url "f1-1" depends_on :python - depends_on :x11 => :recommended - depends_on :xcode => ['1.0', :optional] + depends_on x11: :recommended + depends_on xcode: ["1.0", :optional] end stub_formula_loader f1 @@ -721,7 +721,7 @@ class FormulaTests < Homebrew::TestCase assert_equal Set[python, x11, xcode], Set.new(f2.recursive_requirements {}) # Requirements can be pruned - requirements = f2.recursive_requirements do |dependent, requirement| + requirements = f2.recursive_requirements do |_dependent, requirement| Requirement.prune if requirement.is_a?(PythonRequirement) end assert_equal Set[x11, xcode], Set.new(requirements)