summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--spec/commands/show_spec.rb2
-rw-r--r--spec/install/gemfile/git_spec.rb4
-rw-r--r--spec/install/gemfile/groups_spec.rb6
-rw-r--r--spec/install/gemfile/path_spec.rb4
-rw-r--r--spec/install/gemfile/sources_spec.rb6
-rw-r--r--spec/other/major_deprecation_spec.rb86
-rw-r--r--spec/runtime/require_spec.rb12
-rw-r--r--spec/support/helpers.rb10
-rw-r--r--spec/support/matchers.rb24
9 files changed, 79 insertions, 75 deletions
diff --git a/spec/commands/show_spec.rb b/spec/commands/show_spec.rb
index 8e3d0194e6..298618747f 100644
--- a/spec/commands/show_spec.rb
+++ b/spec/commands/show_spec.rb
@@ -157,7 +157,7 @@ RSpec.describe "bundle show" do
it "does not output git errors" do
bundle :show
- expect(last_command.stderr).to eq_err("")
+ expect(err_without_deprecations).to be_empty
end
end
diff --git a/spec/install/gemfile/git_spec.rb b/spec/install/gemfile/git_spec.rb
index cac571754c..2cb6c7485f 100644
--- a/spec/install/gemfile/git_spec.rb
+++ b/spec/install/gemfile/git_spec.rb
@@ -1067,7 +1067,7 @@ RSpec.describe "bundle install with git sources" do
bundle :install,
:requires => [lib_path("install_hooks.rb")]
- expect(last_command.stderr).to eq_err("Ran pre-install hook: foo-1.0")
+ expect(err_without_deprecations).to eq("Ran pre-install hook: foo-1.0")
end
it "runs post-install hooks" do
@@ -1087,7 +1087,7 @@ RSpec.describe "bundle install with git sources" do
bundle :install,
:requires => [lib_path("install_hooks.rb")]
- expect(last_command.stderr).to eq_err("Ran post-install hook: foo-1.0")
+ expect(err_without_deprecations).to eq("Ran post-install hook: foo-1.0")
end
it "complains if the install hook fails" do
diff --git a/spec/install/gemfile/groups_spec.rb b/spec/install/gemfile/groups_spec.rb
index 1b739e18ce..2787172057 100644
--- a/spec/install/gemfile/groups_spec.rb
+++ b/spec/install/gemfile/groups_spec.rb
@@ -25,7 +25,7 @@ RSpec.describe "bundle install with groups" do
puts ACTIVESUPPORT
R
- expect(last_command.stderr).to eq_err("ZOMG LOAD ERROR")
+ expect(err_without_deprecations).to eq("ZOMG LOAD ERROR")
end
it "installs gems with inline :groups into those groups" do
@@ -36,7 +36,7 @@ RSpec.describe "bundle install with groups" do
puts THIN
R
- expect(last_command.stderr).to eq_err("ZOMG LOAD ERROR")
+ expect(err_without_deprecations).to eq("ZOMG LOAD ERROR")
end
it "sets up everything if Bundler.setup is used with no groups" do
@@ -57,7 +57,7 @@ RSpec.describe "bundle install with groups" do
puts THIN
RUBY
- expect(last_command.stderr).to eq_err("ZOMG LOAD ERROR")
+ expect(err_without_deprecations).to eq("ZOMG LOAD ERROR")
end
it "sets up old groups when they have previously been removed" do
diff --git a/spec/install/gemfile/path_spec.rb b/spec/install/gemfile/path_spec.rb
index 224c28269e..40c137cd4a 100644
--- a/spec/install/gemfile/path_spec.rb
+++ b/spec/install/gemfile/path_spec.rb
@@ -575,7 +575,7 @@ RSpec.describe "bundle install with explicit source paths" do
bundle :install,
:requires => [lib_path("install_hooks.rb")]
- expect(last_command.stderr).to eq_err("Ran pre-install hook: foo-1.0")
+ expect(err_without_deprecations).to eq("Ran pre-install hook: foo-1.0")
end
it "runs post-install hooks" do
@@ -595,7 +595,7 @@ RSpec.describe "bundle install with explicit source paths" do
bundle :install,
:requires => [lib_path("install_hooks.rb")]
- expect(last_command.stderr).to eq_err("Ran post-install hook: foo-1.0")
+ expect(err_without_deprecations).to eq("Ran post-install hook: foo-1.0")
end
it "complains if the install hook fails" do
diff --git a/spec/install/gemfile/sources_spec.rb b/spec/install/gemfile/sources_spec.rb
index f9e5d072bf..2ab1f29de5 100644
--- a/spec/install/gemfile/sources_spec.rb
+++ b/spec/install/gemfile/sources_spec.rb
@@ -30,7 +30,7 @@ RSpec.describe "bundle install with gems on multiple sources" do
xit "shows a deprecation" do
bundle :install
- expect(err).to have_major_deprecation a_string_including("Your Gemfile contains multiple primary sources.")
+ expect(deprecations).to include("Your Gemfile contains multiple primary sources.")
end
it "warns about ambiguous gems, but installs anyway, prioritizing sources last to first" do
@@ -64,7 +64,7 @@ RSpec.describe "bundle install with gems on multiple sources" do
end
xit "shows a deprecation" do
- expect(err).to have_major_deprecation a_string_including("Your Gemfile contains multiple primary sources.")
+ expect(deprecations).to include("Your Gemfile contains multiple primary sources.")
end
it "warns about ambiguous gems, but installs anyway" do
@@ -257,7 +257,7 @@ RSpec.describe "bundle install with gems on multiple sources" do
end
xit "shows a deprecation" do
- expect(err).to have_major_deprecation a_string_including("Your Gemfile contains multiple primary sources.")
+ expect(deprecations).to include("Your Gemfile contains multiple primary sources.")
end
it "installs from the other source and warns about ambiguous gems" do
diff --git a/spec/other/major_deprecation_spec.rb b/spec/other/major_deprecation_spec.rb
index de9c05ec67..ab294ad444 100644
--- a/spec/other/major_deprecation_spec.rb
+++ b/spec/other/major_deprecation_spec.rb
@@ -3,38 +3,52 @@
RSpec.describe "major deprecations" do
let(:warnings) { err }
- before do
- create_file "gems.rb", <<-G
- source "file:#{gem_repo1}"
- ruby #{RUBY_VERSION.dump}
- gem "rack"
- G
- bundle! "install"
- end
-
describe "Bundler" do
+ before do
+ create_file "gems.rb", <<-G
+ source "file:#{gem_repo1}"
+ ruby #{RUBY_VERSION.dump}
+ gem "rack"
+ G
+ bundle! "install"
+ end
+
describe ".clean_env" do
- it "is deprecated in favor of .unbundled_env" do
+ before do
source = "Bundler.clean_env"
bundle "exec ruby -e #{source.dump}"
- expect(warnings).to have_major_deprecation \
+ end
+
+ it "is not deprecated", :bundler => "< 2" do
+ expect(deprecations).to be_empty
+ end
+
+ it "is deprecated in favor of .unbundled_env", :bundler => "2" do
+ expect(deprecations).to include \
"`Bundler.clean_env` has been deprecated in favor of `Bundler.unbundled_env`. " \
"If you instead want the environment before bundler was originally loaded, use `Bundler.original_env`"
end
end
describe ".environment" do
- it "is deprecated in favor of .load" do
+ before do
source = "Bundler.environment"
bundle "exec ruby -e #{source.dump}"
- expect(warnings).to have_major_deprecation "Bundler.environment has been removed in favor of Bundler.load"
+ end
+
+ it "is not deprecated", :bundler => "< 2" do
+ expect(deprecations).to be_empty
+ end
+
+ it "is deprecated in favor of .load", :bundler => "2" do
+ expect(deprecations).to include "Bundler.environment has been removed in favor of Bundler.load"
end
end
describe "bundle update --quiet" do
it "does not print any deprecations" do
bundle :update, :quiet => true
- expect(warnings).not_to have_major_deprecation
+ expect(deprecations).to be_empty
end
end
@@ -45,28 +59,24 @@ RSpec.describe "major deprecations" do
it "does not warn when no options are given", :bundler => "< 2" do
bundle! "update"
- expect(warnings).not_to have_major_deprecation
+ expect(deprecations).to be_empty
end
it "warns when no options are given", :bundler => "2" do
bundle! "update"
- expect(warnings).to have_major_deprecation a_string_including("Pass --all to `bundle update` to update everything")
+ expect(deprecations).to include("Pass --all to `bundle update` to update everything")
end
it "does not warn when --all is passed" do
bundle! "update --all"
- expect(warnings).not_to have_major_deprecation
+ expect(deprecations).to be_empty
end
end
describe "bundle install --binstubs" do
xit "should output a deprecation warning" do
- gemfile <<-G
- gem 'rack'
- G
-
bundle :install, :binstubs => true
- expect(warnings).to have_major_deprecation a_string_including("The --binstubs option will be removed")
+ expect(deprecations).to include("The --binstubs option will be removed")
end
end
end
@@ -79,7 +89,7 @@ RSpec.describe "major deprecations" do
G
bundle :install
- expect(warnings).not_to have_major_deprecation
+ expect(deprecations).to be_empty
end
it "should print a proper warning when both gems.rb and Gemfile present, and use Gemfile", :bundler => "< 2" do
@@ -111,13 +121,15 @@ RSpec.describe "major deprecations" do
end
context "with flags" do
- it "should print a deprecation warning about autoremembering flags", :bundler => "3" do
+ before do
install_gemfile <<-G, :path => "vendor/bundle"
source "file://#{gem_repo1}"
gem "rack"
G
+ end
- expect(warnings).to have_major_deprecation a_string_including(
+ it "should print a deprecation warning about autoremembering flags", :bundler => "3" do
+ expect(deprecations).to include(
"flags passed to commands will no longer be automatically remembered."
)
end
@@ -140,7 +152,7 @@ RSpec.describe "major deprecations" do
it "should print a deprecation warning" do
bundle "install #{flag_name} #{value}"
- expect(warnings).to have_major_deprecation(
+ expect(deprecations).to include(
"The `#{flag_name}` flag is deprecated because it relied on " \
"being remembered accross bundler invokations, which bundler " \
"will no longer do in future versions. Instead please use " \
@@ -153,7 +165,7 @@ RSpec.describe "major deprecations" do
it "should not print a deprecation warning" do
bundle "install #{flag_name} #{value}"
- expect(warnings).not_to have_major_deprecation
+ expect(deprecations).to be_empty
end
end
end
@@ -193,12 +205,18 @@ RSpec.describe "major deprecations" do
end
context "when `bundler/deployment` is required in a ruby script" do
- it "should print a capistrano deprecation warning" do
+ before do
ruby(<<-RUBY)
require 'bundler/deployment'
RUBY
+ end
+
+ it "should not print a capistrano deprecation warning", :bundler => "< 2" do
+ expect(deprecations).to be_empty
+ end
- expect(warnings).to have_major_deprecation("Bundler no longer integrates " \
+ it "should print a capistrano deprecation warning", :bundler => "2" do
+ expect(deprecations).to include("Bundler no longer integrates " \
"with Capistrano, but Capistrano provides " \
"its own integration with Bundler via the " \
"capistrano-bundler gem. Use it instead.")
@@ -288,11 +306,11 @@ The :gist git source is deprecated, and will be removed in the future. Add this
end
it "does not print a deprecation warning", :bundler => "< 2" do
- expect(warnings).not_to have_major_deprecation
+ expect(deprecations).to be_empty
end
it "prints a deprecation warning", :bundler => "2" do
- expect(warnings).to have_major_deprecation a_string_including("use `bundle list` instead of `bundle show`")
+ expect(deprecations).to include("use `bundle list` instead of `bundle show`")
end
end
@@ -302,12 +320,12 @@ The :gist git source is deprecated, and will be removed in the future. Add this
end
it "does not print a deprecation warning", :bundler => "< 2" do
- expect(warnings).not_to have_major_deprecation
+ expect(deprecations).to be_empty
end
it "prints a deprecation warning", :bundler => "2" do
- expect(warnings).to have_major_deprecation \
- a_string_including("bundle console will be replaced by `bin/console` generated by `bundle gem <name>`")
+ expect(deprecations).to include \
+ "bundle console will be replaced by `bin/console` generated by `bundle gem <name>`"
end
end
end
diff --git a/spec/runtime/require_spec.rb b/spec/runtime/require_spec.rb
index 7a32fc6117..c9cfa199d3 100644
--- a/spec/runtime/require_spec.rb
+++ b/spec/runtime/require_spec.rb
@@ -121,7 +121,7 @@ RSpec.describe "Bundler.require" do
Bundler.require
R
- expect(last_command.stderr).to eq_err("ZOMG LOAD ERROR")
+ expect(err_without_deprecations).to eq("ZOMG LOAD ERROR")
end
it "displays a helpful message if the required gem throws an error" do
@@ -160,7 +160,7 @@ RSpec.describe "Bundler.require" do
RUBY
run(cmd)
- expect(last_command.stderr).to eq_err("ZOMG LOAD ERROR: cannot load such file -- load-bar")
+ expect(err_without_deprecations).to eq("ZOMG LOAD ERROR: cannot load such file -- load-bar")
end
describe "with namespaced gems" do
@@ -211,7 +211,7 @@ RSpec.describe "Bundler.require" do
load_error_run <<-R, "jquery-rails"
Bundler.require
R
- expect(last_command.stderr).to eq_err("ZOMG LOAD ERROR")
+ expect(err_without_deprecations).to eq("ZOMG LOAD ERROR")
end
it "handles the case where regex fails" do
@@ -234,7 +234,7 @@ RSpec.describe "Bundler.require" do
RUBY
run(cmd)
- expect(last_command.stderr).to eq_err("ZOMG LOAD ERROR")
+ expect(err_without_deprecations).to eq("ZOMG LOAD ERROR")
end
it "doesn't swallow the error when the library has an unrelated error" do
@@ -258,7 +258,7 @@ RSpec.describe "Bundler.require" do
RUBY
run(cmd)
- expect(last_command.stderr).to eq_err("ZOMG LOAD ERROR: cannot load such file -- load-bar")
+ expect(err_without_deprecations).to eq("ZOMG LOAD ERROR: cannot load such file -- load-bar")
end
end
@@ -366,7 +366,7 @@ RSpec.describe "Bundler.require" do
load_error_run <<-R, "no_such_file_omg"
Bundler.require
R
- expect(last_command.stderr).to eq_err("ZOMG LOAD ERROR")
+ expect(err_without_deprecations).to eq("ZOMG LOAD ERROR")
end
end
end
diff --git a/spec/support/helpers.rb b/spec/support/helpers.rb
index a5ff292f01..151c99c3ff 100644
--- a/spec/support/helpers.rb
+++ b/spec/support/helpers.rb
@@ -48,6 +48,16 @@ module Spec
Bundler.feature_flag.error_on_stderr? ? last_command.stderr : last_command.stdout
end
+ MAJOR_DEPRECATION = /^\[DEPRECATED\]\s*/.freeze
+
+ def err_without_deprecations
+ last_command.stderr.gsub(/#{MAJOR_DEPRECATION}.+[\n]?/, "")
+ end
+
+ def deprecations
+ err.split("\n").select {|l| l =~ MAJOR_DEPRECATION }.join("\n").split(MAJOR_DEPRECATION)
+ end
+
def exitstatus
last_command.exitstatus
end
diff --git a/spec/support/matchers.rb b/spec/support/matchers.rb
index 2e2c51edfa..0a9285837a 100644
--- a/spec/support/matchers.rb
+++ b/spec/support/matchers.rb
@@ -60,28 +60,6 @@ module Spec
end
end
- MAJOR_DEPRECATION = /^\[DEPRECATED\]\s*/.freeze
-
- RSpec::Matchers.define :eq_err do |expected|
- diffable
- match do |actual|
- actual.gsub(/#{MAJOR_DEPRECATION}.+[\n]?/, "") == expected
- end
- end
-
- RSpec::Matchers.define :have_major_deprecation do |expected|
- diffable
- match do |actual|
- deprecations = actual.split(MAJOR_DEPRECATION)
-
- return !expected.nil? if deprecations.empty?
-
- deprecations.any? do |d|
- !d.empty? && values_match?(expected, d.strip)
- end
- end
- end
-
RSpec::Matchers.define :have_dep do |*args|
dep = Bundler::Dependency.new(*args)
@@ -155,7 +133,6 @@ module Spec
rescue StandardError => e
next "#{name} is not installed:\n#{indent(e)}"
end
- last_command.stdout.gsub!(/#{MAJOR_DEPRECATION}.*$/, "")
actual_version, actual_platform = last_command.stdout.strip.split(/\s+/, 2)
unless Gem::Version.new(actual_version) == Gem::Version.new(version)
next "#{name} was expected to be at version #{version} but was #{actual_version}"
@@ -170,7 +147,6 @@ module Spec
rescue StandardError
next "#{name} does not have a source defined:\n#{indent(e)}"
end
- last_command.stdout.gsub!(/#{MAJOR_DEPRECATION}.*$/, "")
unless last_command.stdout.strip == source
next "Expected #{name} (#{version}) to be installed from `#{source}`, was actually from `#{out}`"
end