Skip to content

Commit e96313f

Browse files
formulary_spec: update API tests to avoid mocking
Stop mocking the formulary loader method. We just need to set the environment variable so that it knows to load things from the API. Fix spec that doesn't work with the `CoreTap.formula_names`. That method assumes that we always have a valid `ruby_source_path` in the API JSON even though that was optional for a while after launching the API if my memory serves me. It's probably fine to assume this should always be set though and I changed it to use `Hash#fetch` to give use better error messages if something goes wrong in the future. Remove unused `allow(x).to receive(y).and_call_original` in tap spec.
1 parent 5d3fae3 commit e96313f

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

Library/Homebrew/tap.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1169,7 +1169,8 @@ def formula_files_by_name
11691169
name, formula_hash = item
11701170
# If there's more than one item with the same path: use the longer one to prioritise more specific results.
11711171
existing_path = hash[name]
1172-
new_path = File.join(tap_path, formula_hash["ruby_source_path"]) # Pathname equivalent is slow in a tight loop
1172+
# Pathname equivalent is slow in a tight loop
1173+
new_path = File.join(tap_path, formula_hash.fetch("ruby_source_path"))
11731174
hash[name] = Pathname(new_path) if existing_path.nil? || existing_path.to_s.length < new_path.length
11741175
end
11751176
end

Library/Homebrew/test/formulary_spec.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,6 @@ class Wrong#{described_class.class_s(formula_name)} < Formula
158158

159159
context "with installed Formula" do
160160
before do
161-
allow(described_class).to receive(:loader_for).and_call_original
162-
163161
# don't try to load/fetch gcc/glibc
164162
allow(DevelopmentTools).to receive_messages(needs_libc_formula?: false, needs_compiler_formula?: false)
165163
end
@@ -329,6 +327,7 @@ def formula_json_contents(extra_items = {})
329327
"run_type" => "immediate",
330328
"working_dir" => "/$HOME",
331329
},
330+
"ruby_source_path" => "Formula/#{formula_name}.rb",
332331
}.merge(extra_items),
333332
}
334333
end
@@ -378,7 +377,7 @@ def formula_json_contents(extra_items = {})
378377
end
379378

380379
before do
381-
allow(described_class).to receive(:loader_for).and_return(described_class::FormulaAPILoader.new(formula_name))
380+
ENV.delete("HOMEBREW_NO_INSTALL_FROM_API")
382381

383382
# don't try to load/fetch gcc/glibc
384383
allow(DevelopmentTools).to receive_messages(needs_libc_formula?: false, needs_compiler_formula?: false)

0 commit comments

Comments
 (0)