summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBundlerbot <bot@bundler.io>2019-04-29 21:58:48 +0000
committerBundlerbot <bot@bundler.io>2019-04-29 21:58:48 +0000
commit68d6e628e19e1e842bb09d4eb231c3bcff541033 (patch)
tree26c234b848519fd28b3f99e5c8dd9d7f457949d6
parent896269a45902f587bb722ebbd50dbf1eeee9d25b (diff)
parent11597fef24274bf1542384512faed697d7f41e3b (diff)
downloadbundler-68d6e628e19e1e842bb09d4eb231c3bcff541033.tar.gz
Merge #7138
7138: Remove unnecessary `BUNDLER_SPEC_RUN` env variable r=indirect a=deivid-rodriguez ### What was the end-user problem that led to this PR? The problem was that our library code contains logic that's only necessary for bundler's specs. I think library code should not contain this kind of code, since it affects end users. ### What is your fix for the problem, implemented in this PR? My fix is to remove the logic, and instead ensure the specs satisfy what the code wanted to ensure (that specs pass even when there's a Gemfile further up in the directory hierarchy outside of the bundler's development copy). Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
-rw-r--r--lib/bundler/shared_helpers.rb13
-rw-r--r--spec/bundler/cli_spec.rb1
-rw-r--r--spec/bundler/settings_spec.rb1
-rw-r--r--spec/bundler/shared_helpers_spec.rb1
-rw-r--r--spec/commands/check_spec.rb1
-rw-r--r--spec/commands/config_spec.rb4
-rw-r--r--spec/other/cli_dispatch_spec.rb2
-rw-r--r--spec/runtime/load_spec.rb14
-rw-r--r--spec/spec_helper.rb1
-rw-r--r--spec/support/helpers.rb6
10 files changed, 15 insertions, 29 deletions
diff --git a/lib/bundler/shared_helpers.rb b/lib/bundler/shared_helpers.rb
index a0982f561f..e56a44a559 100644
--- a/lib/bundler/shared_helpers.rb
+++ b/lib/bundler/shared_helpers.rb
@@ -253,19 +253,6 @@ module Bundler
current = File.expand_path(SharedHelpers.pwd).untaint
until !File.directory?(current) || current == previous
- if ENV["BUNDLE_SPEC_RUN"]
- # avoid stepping above the tmp directory when testing
- gemspec = if ENV["BUNDLE_RUBY"] && ENV["BUNDLE_GEM"]
- # for Ruby Core
- "lib/bundler/bundler.gemspec"
- else
- "bundler.gemspec"
- end
-
- # avoid stepping above the tmp directory when testing
- return nil if File.file?(File.join(current, gemspec))
- end
-
names.each do |name|
filename = File.join(current, name)
yield filename
diff --git a/spec/bundler/cli_spec.rb b/spec/bundler/cli_spec.rb
index 2e12fbfc6b..eca911cc15 100644
--- a/spec/bundler/cli_spec.rb
+++ b/spec/bundler/cli_spec.rb
@@ -141,6 +141,7 @@ To install the latest version, run `gem install bundler`
bundle! "config get --parseable foo"
expect(last_command.stdboth).to eq ""
+ ensure_no_gemfile
bundle "platform --ruby"
expect(last_command.stdboth).to eq "Could not locate Gemfile"
end
diff --git a/spec/bundler/settings_spec.rb b/spec/bundler/settings_spec.rb
index 339428eb48..f105770c17 100644
--- a/spec/bundler/settings_spec.rb
+++ b/spec/bundler/settings_spec.rb
@@ -10,6 +10,7 @@ RSpec.describe Bundler::Settings do
subject(:settings) { described_class.new(nil) }
it "raises a GemfileNotFound error with explanation" do
+ ensure_no_gemfile
expect { subject.set_local("foo", "bar") }.
to raise_error(Bundler::GemfileNotFound, "Could not locate Gemfile")
end
diff --git a/spec/bundler/shared_helpers_spec.rb b/spec/bundler/shared_helpers_spec.rb
index f42d9ed485..7cd6aa7566 100644
--- a/spec/bundler/shared_helpers_spec.rb
+++ b/spec/bundler/shared_helpers_spec.rb
@@ -25,6 +25,7 @@ RSpec.describe Bundler::SharedHelpers do
before { ENV["BUNDLE_GEMFILE"] = nil }
it "raises a GemfileNotFound error" do
+ ensure_no_gemfile
expect { subject.default_gemfile }.to raise_error(
Bundler::GemfileNotFound, "Could not locate Gemfile"
)
diff --git a/spec/commands/check_spec.rb b/spec/commands/check_spec.rb
index cf88736612..d724ea79fa 100644
--- a/spec/commands/check_spec.rb
+++ b/spec/commands/check_spec.rb
@@ -199,6 +199,7 @@ RSpec.describe "bundle check" do
end
it "outputs an error when the default Gemfile is not found" do
+ ensure_no_gemfile
bundle :check
expect(exitstatus).to eq(10) if exitstatus
expect(err).to include("Could not locate Gemfile")
diff --git a/spec/commands/config_spec.rb b/spec/commands/config_spec.rb
index 40fab95803..abe31b1955 100644
--- a/spec/commands/config_spec.rb
+++ b/spec/commands/config_spec.rb
@@ -391,10 +391,10 @@ E
describe "subcommands" do
it "list", :ruby_repo do
bundle! "config list"
- expect(out).to eq "Settings are listed in order of priority. The top value will be used.\nspec_run\nSet via BUNDLE_SPEC_RUN: \"true\""
+ expect(out).to eq "Settings are listed in order of priority. The top value will be used."
bundle! "config list", :parseable => true
- expect(out).to eq "spec_run=true"
+ expect(out).to be_empty
end
it "get" do
diff --git a/spec/other/cli_dispatch_spec.rb b/spec/other/cli_dispatch_spec.rb
index 548539ac89..1d4489acc3 100644
--- a/spec/other/cli_dispatch_spec.rb
+++ b/spec/other/cli_dispatch_spec.rb
@@ -2,12 +2,14 @@
RSpec.describe "bundle command names" do
it "work when given fully" do
+ ensure_no_gemfile
bundle "install"
expect(err).to eq("Could not locate Gemfile")
expect(last_command.stdboth).not_to include("Ambiguous command")
end
it "work when not ambiguous" do
+ ensure_no_gemfile
bundle "ins"
expect(err).to eq("Could not locate Gemfile")
expect(last_command.stdboth).not_to include("Ambiguous command")
diff --git a/spec/runtime/load_spec.rb b/spec/runtime/load_spec.rb
index b74dbde3f6..05ed076b6d 100644
--- a/spec/runtime/load_spec.rb
+++ b/spec/runtime/load_spec.rb
@@ -45,6 +45,7 @@ RSpec.describe "Bundler.load" do
describe "without a gemfile" do
it "raises an exception if the default gemfile is not found" do
+ ensure_no_gemfile
expect do
Bundler.load
end.to raise_error(Bundler::GemfileNotFound, /could not locate gemfile/i)
@@ -56,19 +57,6 @@ RSpec.describe "Bundler.load" do
Bundler.load
end.to raise_error(Bundler::GemfileNotFound, /omg\.rb/)
end
-
- it "does not find a Gemfile above the testing directory" do
- bundler_gemfile = tmp.join("../Gemfile")
- unless File.exist?(bundler_gemfile)
- FileUtils.touch(bundler_gemfile)
- @remove_bundler_gemfile = true
- end
- begin
- expect { Bundler.load }.to raise_error(Bundler::GemfileNotFound)
- ensure
- bundler_gemfile.rmtree if @remove_bundler_gemfile
- end
- end
end
describe "when called twice" do
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 35cf8bfefb..ba7b362b5b 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -25,7 +25,6 @@ $debug = false
Spec::Manpages.setup unless Gem.win_platform?
Spec::Rubygems.setup
ENV["RUBYOPT"] = "#{ENV["RUBYOPT"]} -r#{Spec::Path.spec_dir}/support/hax.rb"
-ENV["BUNDLE_SPEC_RUN"] = "true"
# Don't wrap output in tests
ENV["THOR_COLUMNS"] = "10000"
diff --git a/spec/support/helpers.rb b/spec/support/helpers.rb
index 478fe60822..0567b26c01 100644
--- a/spec/support/helpers.rb
+++ b/spec/support/helpers.rb
@@ -313,6 +313,12 @@ module Spec
bundle :lock, opts
end
+ # Makes tests that require absence of any Gemfiles pass, even if the running
+ # system has a Gemfile further up from the specs folder
+ def ensure_no_gemfile
+ allow(Bundler::SharedHelpers).to receive(:search_up).and_return(nil)
+ end
+
def install_gems(*gems)
options = gems.last.is_a?(Hash) ? gems.pop : {}
gem_repo = options.fetch(:gem_repo) { gem_repo1 }