Merge pull request #14621 from Bo98/api-uses_from_macos-fix

formulary: fix uses_from_macos handling on macOS
This commit is contained in:
Mike McQuaid 2023-02-14 11:24:44 +00:00 committed by GitHub
commit 70db4bc723
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 2 deletions

View File

@ -194,14 +194,14 @@ module Formulary
end end
json_formula["dependencies"].each do |dep| json_formula["dependencies"].each do |dep|
next if uses_from_macos_names.include? dep next if uses_from_macos_names.include?(dep) && !Homebrew::SimulateSystem.simulating_or_running_on_macos?
depends_on dep depends_on dep
end end
[:build, :test, :recommended, :optional].each do |type| [:build, :test, :recommended, :optional].each do |type|
json_formula["#{type}_dependencies"].each do |dep| json_formula["#{type}_dependencies"].each do |dep|
next if uses_from_macos_names.include? dep next if uses_from_macos_names.include?(dep) && !Homebrew::SimulateSystem.simulating_or_running_on_macos?
depends_on dep => type depends_on dep => type
end end

View File

@ -273,6 +273,16 @@ describe Formulary do
} }
end end
let(:older_macos_variations_json) do
{
"variations" => {
Utils::Bottles.tag.to_s => {
"dependencies" => ["uses_from_macos_dep"],
},
},
}
end
let(:linux_variations_json) do let(:linux_variations_json) do
{ {
"variations" => { "variations" => {
@ -338,6 +348,7 @@ describe Formulary do
expect(formula).to be_a(Formula) expect(formula).to be_a(Formula)
expect(formula.deps.count).to eq 6 expect(formula.deps.count).to eq 6
expect(formula.deps.map(&:name).include?("variations_dep")).to be true expect(formula.deps.map(&:name).include?("variations_dep")).to be true
expect(formula.deps.map(&:name).include?("uses_from_macos_dep")).to be false
end end
it "returns a Formula without duplicated deps and uses_from_macos with variations on Linux", :needs_linux do it "returns a Formula without duplicated deps and uses_from_macos with variations on Linux", :needs_linux do
@ -349,6 +360,16 @@ describe Formulary do
expect(formula.deps.count).to eq 6 expect(formula.deps.count).to eq 6
expect(formula.deps.map(&:name).include?("uses_from_macos_dep")).to be true expect(formula.deps.map(&:name).include?("uses_from_macos_dep")).to be true
end end
it "returns a Formula with the correct uses_from_macos dep on older macOS", :needs_macos do
allow(Homebrew::API::Formula)
.to receive(:all_formulae).and_return formula_json_contents(older_macos_variations_json)
formula = described_class.factory(formula_name)
expect(formula).to be_a(Formula)
expect(formula.deps.count).to eq 5
expect(formula.deps.map(&:name).include?("uses_from_macos_dep")).to be true
end
end end
end end