From 5d5daaa09f7aa057fabcf3ae24c60c54d8f96fe2 Mon Sep 17 00:00:00 2001 From: Douglas Eichelberger Date: Fri, 6 Sep 2024 13:58:32 -0700 Subject: [PATCH] Use FormulaInstaller OS extensions --- Library/Homebrew/formula_installer.rb | 2 ++ .../Homebrew/test/formula_installer_spec.rb | 21 +++++++++++++ .../test/os/linux/formula_installer_spec.rb | 25 +++++++++++++++ .../test/os/mac/formula_installer_spec.rb | 31 +++++++++++++++++++ 4 files changed, 79 insertions(+) create mode 100644 Library/Homebrew/test/os/linux/formula_installer_spec.rb create mode 100644 Library/Homebrew/test/os/mac/formula_installer_spec.rb diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index eeaaf127d7..a028176c93 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -1546,3 +1546,5 @@ on_request: installed_on_request?, options:) $stderr.puts @requirement_messages end end + +require "extend/os/formula_installer" diff --git a/Library/Homebrew/test/formula_installer_spec.rb b/Library/Homebrew/test/formula_installer_spec.rb index d4b6284b3d..43906c1c9e 100644 --- a/Library/Homebrew/test/formula_installer_spec.rb +++ b/Library/Homebrew/test/formula_installer_spec.rb @@ -450,6 +450,27 @@ RSpec.describe FormulaInstaller do end end + describe "#fresh_install" do + subject(:formula_installer) { described_class.new(Testball.new) } + + it "is false by default" do + formula = Testball.new + expect(formula_installer.fresh_install?(formula)).to be false + end + + it "is false in developer mode" do + formula = Testball.new + allow(Homebrew::EnvConfig).to receive_messages(developer?: true) + expect(formula_installer.fresh_install?(formula)).to be false + end + + it "is false on outdated releases" do + formula = Testball.new + allow(OS::Mac.version).to receive_messages(outdated_release?: true) + expect(formula_installer.fresh_install?(formula)).to be false + end + end + describe "#install_service" do it "works if service is set" do formula = Testball.new diff --git a/Library/Homebrew/test/os/linux/formula_installer_spec.rb b/Library/Homebrew/test/os/linux/formula_installer_spec.rb new file mode 100644 index 0000000000..f5c47599de --- /dev/null +++ b/Library/Homebrew/test/os/linux/formula_installer_spec.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +require "formula_installer" +require "test/support/fixtures/testball" + +RSpec.describe FormulaInstaller do + include FileUtils + + subject(:keg) { described_class.new(keg_path) } + + describe "#fresh_install" do + subject(:formula_installer) { described_class.new(Testball.new) } + + it "is true by default" do + formula = Testball.new + expect(formula_installer.fresh_install?(formula)).to be true + end + + it "is false in developer mode" do + formula = Testball.new + allow(Homebrew::EnvConfig).to receive_messages(developer?: true) + expect(formula_installer.fresh_install?(formula)).to be false + end + end +end diff --git a/Library/Homebrew/test/os/mac/formula_installer_spec.rb b/Library/Homebrew/test/os/mac/formula_installer_spec.rb new file mode 100644 index 0000000000..21b83da6c3 --- /dev/null +++ b/Library/Homebrew/test/os/mac/formula_installer_spec.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +require "formula_installer" +require "test/support/fixtures/testball" + +RSpec.describe FormulaInstaller do + include FileUtils + + subject(:keg) { described_class.new(keg_path) } + + describe "#fresh_install" do + subject(:formula_installer) { described_class.new(Testball.new) } + + it "is true by default" do + formula = Testball.new + expect(formula_installer.fresh_install?(formula)).to be true + end + + it "is false in developer mode" do + formula = Testball.new + allow(Homebrew::EnvConfig).to receive_messages(developer?: true) + expect(formula_installer.fresh_install?(formula)).to be false + end + + it "is false on outdated releases" do + formula = Testball.new + allow(OS::Mac.version).to receive_messages(outdated_release?: true) + expect(formula_installer.fresh_install?(formula)).to be false + end + end +end