From 004e8175c6ceb58f026e79e6bbd0ddac9e8380f6 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Sat, 25 Feb 2017 13:26:50 +0100 Subject: [PATCH] Add `formula` spec helper. --- Library/Homebrew/test/spec_helper.rb | 2 ++ .../Homebrew/test/support/helper/formula.rb | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 Library/Homebrew/test/support/helper/formula.rb diff --git a/Library/Homebrew/test/spec_helper.rb b/Library/Homebrew/test/spec_helper.rb index 3724e42569..9a4dbe026d 100644 --- a/Library/Homebrew/test/spec_helper.rb +++ b/Library/Homebrew/test/spec_helper.rb @@ -16,6 +16,7 @@ require "tap" require "test/support/helper/shutup" require "test/support/helper/fixtures" +require "test/support/helper/formula" require "test/support/helper/spec/shared_context/integration_test" TEST_DIRECTORIES = [ @@ -32,6 +33,7 @@ RSpec.configure do |config| config.order = :random config.include(Test::Helper::Shutup) config.include(Test::Helper::Fixtures) + config.include(Test::Helper::Formula) config.before(:each) do |example| if example.metadata[:needs_macos] skip "Not on macOS." unless OS.mac? diff --git a/Library/Homebrew/test/support/helper/formula.rb b/Library/Homebrew/test/support/helper/formula.rb new file mode 100644 index 0000000000..7f55f4b666 --- /dev/null +++ b/Library/Homebrew/test/support/helper/formula.rb @@ -0,0 +1,19 @@ +require "formulary" + +module Test + module Helper + module Formula + def formula(name = "formula_name", path: Formulary.core_path(name), spec: :stable, alias_path: nil, &block) + Class.new(::Formula, &block).new(name, path, spec, alias_path: alias_path) + end + + # Use a stubbed {Formulary::FormulaLoader} to make a given formula be found + # when loading from {Formulary} with `ref`. + def stub_formula_loader(formula, ref = formula.full_name) + loader = double(get_formula: formula) + allow(Formulary).to receive(:loader_for).with(ref, from: :keg).and_return(loader) + allow(Formulary).to receive(:loader_for).with(ref, from: nil).and_return(loader) + end + end + end +end