From 74aea8e92d78201db65b6eedfd9ec60954264fc1 Mon Sep 17 00:00:00 2001 From: apainintheneck Date: Tue, 19 Mar 2024 22:18:02 -0700 Subject: [PATCH] spec_helper: add :no_api test scope This sets the HOMEBREW_NO_INSTALL_FROM_API environment variable to prevent the selected tests from using the API. We will need this as we transition to having the API be enabled by default when running the tests but it's also nice as a sanity check with the :needs_utils_curl scope in a few places. --- .../test/cask/cask_loader/from_api_loader_spec.rb | 6 +----- Library/Homebrew/test/cask/cask_loader_spec.rb | 12 ++---------- Library/Homebrew/test/cask/cask_spec.rb | 6 ++---- Library/Homebrew/test/formulary_spec.rb | 3 +-- Library/Homebrew/test/spec_helper.rb | 4 ++++ Library/Homebrew/test/tap_spec.rb | 3 +-- 6 files changed, 11 insertions(+), 23 deletions(-) diff --git a/Library/Homebrew/test/cask/cask_loader/from_api_loader_spec.rb b/Library/Homebrew/test/cask/cask_loader/from_api_loader_spec.rb index 7e567e95fe6d4..eb21387245271 100644 --- a/Library/Homebrew/test/cask/cask_loader/from_api_loader_spec.rb +++ b/Library/Homebrew/test/cask/cask_loader/from_api_loader_spec.rb @@ -22,11 +22,7 @@ describe ".can_load?" do include_context "with API setup", "test-opera" - context "when not using the API" do - before do - ENV["HOMEBREW_NO_INSTALL_FROM_API"] = "1" - end - + context "when not using the API", :no_api do it "returns false" do expect(described_class.try_new(token)).to be_nil end diff --git a/Library/Homebrew/test/cask/cask_loader_spec.rb b/Library/Homebrew/test/cask/cask_loader_spec.rb index e7fcc9696ec78..62be102cea7b3 100644 --- a/Library/Homebrew/test/cask/cask_loader_spec.rb +++ b/Library/Homebrew/test/cask/cask_loader_spec.rb @@ -30,11 +30,7 @@ .and_return(cask_renames) end - context "when not using the API" do - before do - ENV["HOMEBREW_NO_INSTALL_FROM_API"] = "1" - end - + context "when not using the API", :no_api do it "warns when using the short token" do expect do expect(described_class.for("version-newest")).to be_a Cask::CaskLoader::FromPathLoader @@ -67,11 +63,7 @@ end end - context "when not using the API" do - before do - ENV["HOMEBREW_NO_INSTALL_FROM_API"] = "1" - end - + context "when not using the API", :no_api do context "when a cask is migrated" do let(:token) { "local-caffeine" } diff --git a/Library/Homebrew/test/cask/cask_spec.rb b/Library/Homebrew/test/cask/cask_spec.rb index 6558078ee0379..cadba6516e3d1 100644 --- a/Library/Homebrew/test/cask/cask_spec.rb +++ b/Library/Homebrew/test/cask/cask_spec.rb @@ -46,15 +46,13 @@ expect(c.token).to eq("caffeine") end - it "returns an instance of the Cask from a URL", :needs_utils_curl do - expect(Homebrew::API).not_to receive(:fetch_json_api_file) + it "returns an instance of the Cask from a URL", :needs_utils_curl, :no_api do c = Cask::CaskLoader.load("file://#{tap_path}/Casks/local-caffeine.rb") expect(c).to be_a(described_class) expect(c.token).to eq("local-caffeine") end - it "raises an error when failing to download a Cask from a URL", :needs_utils_curl do - expect(Homebrew::API).not_to receive(:fetch_json_api_file) + it "raises an error when failing to download a Cask from a URL", :needs_utils_curl, :no_api do expect do Cask::CaskLoader.load("file://#{tap_path}/Casks/notacask.rb") end.to raise_error(Cask::CaskUnavailableError) diff --git a/Library/Homebrew/test/formulary_spec.rb b/Library/Homebrew/test/formulary_spec.rb index 8e34f0fb42179..3bb7491bdf0c5 100644 --- a/Library/Homebrew/test/formulary_spec.rb +++ b/Library/Homebrew/test/formulary_spec.rb @@ -119,8 +119,7 @@ class Wrong#{described_class.class_s(formula_name)} < Formula expect(described_class.factory(formula_path)).to be_a(Formula) end - it "returns a Formula when given a URL", :needs_utils_curl do - expect(Homebrew::API).not_to receive(:fetch_json_api_file) + it "returns a Formula when given a URL", :needs_utils_curl, :no_api do formula = described_class.factory("file://#{formula_path}") expect(formula).to be_a(Formula) end diff --git a/Library/Homebrew/test/spec_helper.rb b/Library/Homebrew/test/spec_helper.rb index 47e5eff4016fc..70fa46df38f5b 100644 --- a/Library/Homebrew/test/spec_helper.rb +++ b/Library/Homebrew/test/spec_helper.rb @@ -174,6 +174,10 @@ ERROR end + config.before(:each, :no_api) do + ENV["HOMEBREW_NO_INSTALL_FROM_API"] = "1" + end + config.before(:each, :needs_svn) do svn_shim = HOMEBREW_SHIMS_PATH/"shared/svn" skip "Subversion is not installed." unless quiet_system svn_shim, "--version" diff --git a/Library/Homebrew/test/tap_spec.rb b/Library/Homebrew/test/tap_spec.rb index 44a771fc31a17..ecfa2b8996aa3 100644 --- a/Library/Homebrew/test/tap_spec.rb +++ b/Library/Homebrew/test/tap_spec.rb @@ -488,8 +488,7 @@ def setup_completion(link:) expect(described_class.to_a).to include(CoreTap.instance) end - it "omits the core tap without the api" do - ENV["HOMEBREW_NO_INSTALL_FROM_API"] = "1" + it "omits the core tap without the api", :no_api do expect(described_class.to_a).not_to include(CoreTap.instance) end end