Merge pull request #16903 from apainintheneck/prevent-unexpected-network-calls-in-tests
Prevent unexpected network calls in tests
This commit is contained in:
commit
7b2bfee363
@ -256,11 +256,15 @@ module Homebrew
|
||||
paths = []
|
||||
|
||||
if formula_path.exist? ||
|
||||
(!CoreTap.instance.installed? && Homebrew::API::Formula.all_formulae.key?(path.basename.to_s))
|
||||
(!Homebrew::EnvConfig.no_install_from_api? &&
|
||||
!CoreTap.instance.installed? &&
|
||||
Homebrew::API::Formula.all_formulae.key?(path.basename.to_s))
|
||||
paths << formula_path
|
||||
end
|
||||
if cask_path.exist? ||
|
||||
(!CoreCaskTap.instance.installed? && Homebrew::API::Cask.all_casks.key?(path.basename.to_s))
|
||||
(!Homebrew::EnvConfig.no_install_from_api? &&
|
||||
!CoreCaskTap.instance.installed? &&
|
||||
Homebrew::API::Cask.all_casks.key?(path.basename.to_s))
|
||||
paths << cask_path
|
||||
end
|
||||
|
||||
|
||||
@ -22,11 +22,7 @@ RSpec.describe Cask::CaskLoader::FromAPILoader, :cask do
|
||||
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
|
||||
|
||||
@ -30,11 +30,7 @@ RSpec.describe Cask::CaskLoader, :cask do
|
||||
.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 @@ RSpec.describe Cask::CaskLoader, :cask do
|
||||
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" }
|
||||
|
||||
|
||||
@ -46,13 +46,13 @@ RSpec.describe Cask::Cask, :cask do
|
||||
expect(c.token).to eq("caffeine")
|
||||
end
|
||||
|
||||
it "returns an instance of the Cask from a URL" do
|
||||
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" do
|
||||
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)
|
||||
|
||||
@ -3,6 +3,11 @@
|
||||
require "utils"
|
||||
|
||||
RSpec.describe Cask::Info, :cask do
|
||||
before do
|
||||
# Prevent unnecessary network requests in `Utils::Analytics.cask_output`
|
||||
ENV["HOMEBREW_NO_ANALYTICS"] = "1"
|
||||
end
|
||||
|
||||
it "displays some nice info about the specified Cask" do
|
||||
expect do
|
||||
described_class.info(Cask::CaskLoader.load("local-transmission"))
|
||||
|
||||
@ -119,7 +119,7 @@ RSpec.describe Formulary do
|
||||
expect(described_class.factory(formula_path)).to be_a(Formula)
|
||||
end
|
||||
|
||||
it "returns a Formula when given a URL" do
|
||||
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
|
||||
@ -383,6 +383,10 @@ RSpec.describe Formulary do
|
||||
before do
|
||||
ENV.delete("HOMEBREW_NO_INSTALL_FROM_API")
|
||||
|
||||
# avoid unnecessary network calls
|
||||
allow(Homebrew::API::Formula).to receive_messages(all_aliases: {}, all_renames: {})
|
||||
allow(CoreTap.instance).to receive(:tap_migrations).and_return({})
|
||||
|
||||
# don't try to load/fetch gcc/glibc
|
||||
allow(DevelopmentTools).to receive_messages(needs_libc_formula?: false, needs_compiler_formula?: false)
|
||||
end
|
||||
|
||||
@ -165,6 +165,19 @@ RSpec.configure do |config|
|
||||
skip "Requires network connection." unless ENV["HOMEBREW_TEST_ONLINE"]
|
||||
end
|
||||
|
||||
config.before do |example|
|
||||
next if example.metadata.key?(:needs_network)
|
||||
next if example.metadata.key?(:needs_utils_curl)
|
||||
|
||||
allow(Utils::Curl).to receive(:curl_executable).and_raise(<<~ERROR)
|
||||
Unexpected call to Utils::Curl.curl_executable without setting :needs_network or :needs_utils_curl.
|
||||
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"
|
||||
|
||||
@ -192,7 +192,7 @@ RSpec.describe Tap do
|
||||
end
|
||||
|
||||
describe "#remote" do
|
||||
it "returns the remote URL" do
|
||||
it "returns the remote URL", :needs_network do
|
||||
setup_git_repo
|
||||
|
||||
expect(homebrew_foo_tap.remote).to eq("https://github.com/Homebrew/homebrew-foo")
|
||||
@ -488,8 +488,7 @@ RSpec.describe Tap do
|
||||
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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user