diff options
author | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2019-11-11 17:57:45 +0900 |
---|---|---|
committer | SHIBATA Hiroshi <hsbt@ruby-lang.org> | 2019-11-11 18:56:25 +0900 |
commit | 7585bc31877d4f9725f8de51b4a2faf47acb6f34 (patch) | |
tree | adf61a7c20f7e54b595ebde05284b5e2862f552c /spec/bundler/bundler | |
parent | fd69f82675bf93a848e5aa58d117bf8bbf604188 (diff) |
Merge Bundler 2.1.0.pre.3
Features:
- Add caller information to some deprecation messages to make them easier to fix [#7361](https://github.com/bundler/bundler/pull/7361)
- Reconcile `bundle cache` vs `bundle package` everywhere. Now in docs, CLI help and everywhere else `bundle cache` is the preferred version and `bundle package` remains as an alias [#7389](https://github.com/bundler/bundler/pull/7389)
- Display some basic `bundler` documentation together with ruby's RDoc based documentation [#7394](https://github.com/bundler/bundler/pull/7394)
Bugfixes:
- Fix typos deprecation message and upgrading docs [#7374](https://github.com/bundler/bundler/pull/7374)
- Deprecation warnings about `taint` usage on ruby 2.7 [#7385](https://github.com/bundler/bundler/pull/7385)
- Fix `--help` flag not correctly delegating to `man` when used with command aliases [#7388](https://github.com/bundler/bundler/pull/7388)
- `bundle add` should cache newly added gems if an application cache exists [#7393](https://github.com/bundler/bundler/pull/7393)
- Stop using an insecure folder as a "fallback home" when user home is not defined [#7416](https://github.com/bundler/bundler/pull/7416)
- Fix `bundler/inline` warning about `Bundler.root` redefinition [#7417](https://github.com/bundler/bundler/pull/7417)
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/2668
Diffstat (limited to 'spec/bundler/bundler')
-rw-r--r-- | spec/bundler/bundler/bundler_spec.rb | 38 | ||||
-rw-r--r-- | spec/bundler/bundler/cli_spec.rb | 50 | ||||
-rw-r--r-- | spec/bundler/bundler/friendly_errors_spec.rb | 2 | ||||
-rw-r--r-- | spec/bundler/bundler/plugin_spec.rb | 2 | ||||
-rw-r--r-- | spec/bundler/bundler/ruby_version_spec.rb | 20 | ||||
-rw-r--r-- | spec/bundler/bundler/settings_spec.rb | 2 | ||||
-rw-r--r-- | spec/bundler/bundler/shared_helpers_spec.rb | 2 | ||||
-rw-r--r-- | spec/bundler/bundler/source_spec.rb | 31 | ||||
-rw-r--r-- | spec/bundler/bundler/ui/shell_spec.rb | 2 |
9 files changed, 105 insertions, 44 deletions
diff --git a/spec/bundler/bundler/bundler_spec.rb b/spec/bundler/bundler/bundler_spec.rb index 74cf7ae05d..247838600b 100644 --- a/spec/bundler/bundler/bundler_spec.rb +++ b/spec/bundler/bundler/bundler_spec.rb @@ -232,16 +232,13 @@ EOF path = "/home/oggy" allow(Bundler.rubygems).to receive(:user_home).and_return(path) allow(File).to receive(:directory?).with(path).and_return false - allow(Etc).to receive(:getlogin).and_return("USER") - allow(Dir).to receive(:tmpdir).and_return("/TMP") - allow(FileTest).to receive(:exist?).with("/TMP/bundler/home").and_return(true) - expect(FileUtils).to receive(:mkpath).with("/TMP/bundler/home/USER") + allow(Bundler).to receive(:tmp).and_return(Pathname.new("/tmp/trulyrandom")) message = <<EOF `/home/oggy` is not a directory. -Bundler will use `/TMP/bundler/home/USER' as your home directory temporarily. +Bundler will use `/tmp/trulyrandom' as your home directory temporarily. EOF expect(Bundler.ui).to receive(:warn).with(message) - expect(Bundler.user_home).to eq(Pathname("/TMP/bundler/home/USER")) + expect(Bundler.user_home).to eq(Pathname("/tmp/trulyrandom")) end end @@ -254,16 +251,13 @@ EOF allow(File).to receive(:directory?).with(path).and_return true allow(File).to receive(:writable?).with(path).and_return false allow(File).to receive(:directory?).with(dotbundle).and_return false - allow(Etc).to receive(:getlogin).and_return("USER") - allow(Dir).to receive(:tmpdir).and_return("/TMP") - allow(FileTest).to receive(:exist?).with("/TMP/bundler/home").and_return(true) - expect(FileUtils).to receive(:mkpath).with("/TMP/bundler/home/USER") + allow(Bundler).to receive(:tmp).and_return(Pathname.new("/tmp/trulyrandom")) message = <<EOF `/home/oggy` is not writable. -Bundler will use `/TMP/bundler/home/USER' as your home directory temporarily. +Bundler will use `/tmp/trulyrandom' as your home directory temporarily. EOF expect(Bundler.ui).to receive(:warn).with(message) - expect(Bundler.user_home).to eq(Pathname("/TMP/bundler/home/USER")) + expect(Bundler.user_home).to eq(Pathname("/tmp/trulyrandom")) end context ".bundle exists and have correct permissions" do @@ -282,31 +276,17 @@ EOF context "home directory is not set" do it "should issue warning and return a temporary user home" do allow(Bundler.rubygems).to receive(:user_home).and_return(nil) - allow(Etc).to receive(:getlogin).and_return("USER") - allow(Dir).to receive(:tmpdir).and_return("/TMP") - allow(FileTest).to receive(:exist?).with("/TMP/bundler/home").and_return(true) - expect(FileUtils).to receive(:mkpath).with("/TMP/bundler/home/USER") + allow(Bundler).to receive(:tmp).and_return(Pathname.new("/tmp/trulyrandom")) message = <<EOF Your home directory is not set. -Bundler will use `/TMP/bundler/home/USER' as your home directory temporarily. +Bundler will use `/tmp/trulyrandom' as your home directory temporarily. EOF expect(Bundler.ui).to receive(:warn).with(message) - expect(Bundler.user_home).to eq(Pathname("/TMP/bundler/home/USER")) + expect(Bundler.user_home).to eq(Pathname("/tmp/trulyrandom")) end end end - describe "#tmp_home_path" do - it "should create temporary user home" do - allow(Dir).to receive(:tmpdir).and_return("/TMP") - allow(FileTest).to receive(:exist?).with("/TMP/bundler/home").and_return(false) - expect(FileUtils).to receive(:mkpath).once.ordered.with("/TMP/bundler/home") - expect(FileUtils).to receive(:mkpath).once.ordered.with("/TMP/bundler/home/USER") - expect(File).to receive(:chmod).with(0o777, "/TMP/bundler/home") - expect(Bundler.tmp_home_path("USER", "")).to eq(Pathname("/TMP/bundler/home/USER")) - end - end - describe "#requires_sudo?" do let!(:tmpdir) { Dir.mktmpdir } let(:bundle_path) { Pathname("#{tmpdir}/bundle") } diff --git a/spec/bundler/bundler/cli_spec.rb b/spec/bundler/bundler/cli_spec.rb index 02e5155733..ddcd699d6c 100644 --- a/spec/bundler/bundler/cli_spec.rb +++ b/spec/bundler/bundler/cli_spec.rb @@ -27,6 +27,56 @@ RSpec.describe "bundle executable" do expect(out).to eq("Hello, world") end + describe "aliases" do + it "aliases e to exec" do + bundle "e --help" + + expect(out).to include("BUNDLE-EXEC") + end + + it "aliases ex to exec" do + bundle "ex --help" + + expect(out).to include("BUNDLE-EXEC") + end + + it "aliases exe to exec" do + bundle "exe --help" + + expect(out).to include("BUNDLE-EXEC") + end + + it "aliases c to check" do + bundle "c --help" + + expect(out).to include("BUNDLE-CHECK") + end + + it "aliases i to install" do + bundle "i --help" + + expect(out).to include("BUNDLE-INSTALL") + end + + it "aliases ls to list" do + bundle "ls --help" + + expect(out).to include("BUNDLE-LIST") + end + + it "aliases package to cache" do + bundle "package --help" + + expect(out).to include("BUNDLE-CACHE") + end + + it "aliases pack to cache" do + bundle "pack --help" + + expect(out).to include("BUNDLE-CACHE") + end + end + context "with no arguments" do it "prints a concise help message", :bundler => "3" do bundle! "" diff --git a/spec/bundler/bundler/friendly_errors_spec.rb b/spec/bundler/bundler/friendly_errors_spec.rb index 858831c448..47e7a5d3cd 100644 --- a/spec/bundler/bundler/friendly_errors_spec.rb +++ b/spec/bundler/bundler/friendly_errors_spec.rb @@ -94,7 +94,7 @@ RSpec.describe Bundler, "friendly errors" do end it "writes to Bundler.ui.trace" do - expect(Bundler.ui).to receive(:trace).with(orig_error, nil, true) + expect(Bundler.ui).to receive(:trace).with(orig_error) Bundler::FriendlyErrors.log_error(error) end end diff --git a/spec/bundler/bundler/plugin_spec.rb b/spec/bundler/bundler/plugin_spec.rb index eaa0b80905..e0e2e9afdf 100644 --- a/spec/bundler/bundler/plugin_spec.rb +++ b/spec/bundler/bundler/plugin_spec.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require_relative "../support/streams" + RSpec.describe Bundler::Plugin do Plugin = Bundler::Plugin diff --git a/spec/bundler/bundler/ruby_version_spec.rb b/spec/bundler/bundler/ruby_version_spec.rb index 868d81088d..8c6c071d7f 100644 --- a/spec/bundler/bundler/ruby_version_spec.rb +++ b/spec/bundler/bundler/ruby_version_spec.rb @@ -400,12 +400,20 @@ RSpec.describe "Bundler::RubyVersion and its subclasses" do let(:bundler_system_ruby_version) { subject } around do |example| - begin - old_ruby_version = Bundler::RubyVersion.instance_variable_get("@ruby_version") - Bundler::RubyVersion.instance_variable_set("@ruby_version", nil) - example.run - ensure - Bundler::RubyVersion.instance_variable_set("@ruby_version", old_ruby_version) + if Bundler::RubyVersion.instance_variable_defined?("@ruby_version") + begin + old_ruby_version = Bundler::RubyVersion.instance_variable_get("@ruby_version") + Bundler::RubyVersion.remove_instance_variable("@ruby_version") + example.run + ensure + Bundler::RubyVersion.instance_variable_set("@ruby_version", old_ruby_version) + end + else + begin + example.run + ensure + Bundler::RubyVersion.remove_instance_variable("@ruby_version") + end end end diff --git a/spec/bundler/bundler/settings_spec.rb b/spec/bundler/bundler/settings_spec.rb index 7e1dadded7..2a285fdcf3 100644 --- a/spec/bundler/bundler/settings_spec.rb +++ b/spec/bundler/bundler/settings_spec.rb @@ -67,7 +67,7 @@ that would suck --ehhh=oh geez it looks like i might have broken bundler somehow context "when $TMPDIR is not writable" do it "does not raise" do expect(Bundler.rubygems).to receive(:user_home).twice.and_return(nil) - expect(FileUtils).to receive(:mkpath).twice.with(File.join(Dir.tmpdir, "bundler", "home")).and_raise(Errno::EROFS, "Read-only file system @ dir_s_mkdir - /tmp/bundler") + expect(Bundler).to receive(:tmp).twice.and_raise(Errno::EROFS, "Read-only file system @ dir_s_mkdir - /tmp/bundler") expect(subject.send(:global_config_file)).to be_nil end diff --git a/spec/bundler/bundler/shared_helpers_spec.rb b/spec/bundler/bundler/shared_helpers_spec.rb index 0340cb7bae..4530a9a5cd 100644 --- a/spec/bundler/bundler/shared_helpers_spec.rb +++ b/spec/bundler/bundler/shared_helpers_spec.rb @@ -236,7 +236,7 @@ RSpec.describe Bundler::SharedHelpers do shared_examples_for "ENV['RUBYOPT'] gets set correctly" do it "ensures -rbundler/setup is at the beginning of ENV['RUBYOPT']" do subject.set_bundle_environment - expect(ENV["RUBYOPT"].split(" ")).to start_with("-r#{lib}/bundler/setup") + expect(ENV["RUBYOPT"].split(" ")).to start_with("-r#{lib_dir}/bundler/setup") end end diff --git a/spec/bundler/bundler/source_spec.rb b/spec/bundler/bundler/source_spec.rb index 5b11503d23..0c35c27fdf 100644 --- a/spec/bundler/bundler/source_spec.rb +++ b/spec/bundler/bundler/source_spec.rb @@ -59,7 +59,6 @@ RSpec.describe Bundler::Source do context "with color", :no_color_tty do before do allow($stdout).to receive(:tty?).and_return(true) - Bundler.ui = Bundler::UI::Shell.new end it "should return a string with the spec name and version and locked spec version" do @@ -68,7 +67,11 @@ RSpec.describe Bundler::Source do end context "without color" do - before { Bundler.ui = Bundler::UI::Shell.new("no-color" => true) } + around do |example| + with_ui(Bundler::UI::Shell.new("no-color" => true)) do + example.run + end + end it "should return a string with the spec name and version and locked spec version" do expect(subject.version_message(spec)).to eq("nokogiri >= 1.6 (was < 1.5)") @@ -83,7 +86,6 @@ RSpec.describe Bundler::Source do context "with color", :no_color_tty do before do allow($stdout).to receive(:tty?).and_return(true) - Bundler.ui = Bundler::UI::Shell.new end it "should return a string with the locked spec version in yellow" do @@ -92,7 +94,11 @@ RSpec.describe Bundler::Source do end context "without color" do - before { Bundler.ui = Bundler::UI::Shell.new("no-color" => true) } + around do |example| + with_ui(Bundler::UI::Shell.new("no-color" => true)) do + example.run + end + end it "should return a string with the locked spec version in yellow" do expect(subject.version_message(spec)).to eq("nokogiri 1.6.1 (was 1.7.0)") @@ -107,7 +113,6 @@ RSpec.describe Bundler::Source do context "with color", :no_color_tty do before do allow($stdout).to receive(:tty?).and_return(true) - Bundler.ui = Bundler::UI::Shell.new end it "should return a string with the locked spec version in green" do @@ -116,7 +121,11 @@ RSpec.describe Bundler::Source do end context "without color" do - before { Bundler.ui = Bundler::UI::Shell.new("no-color" => true) } + around do |example| + with_ui(Bundler::UI::Shell.new("no-color" => true)) do + example.run + end + end it "should return a string with the locked spec version in yellow" do expect(subject.version_message(spec)).to eq("nokogiri 1.7.1 (was 1.7.0)") @@ -178,4 +187,14 @@ RSpec.describe Bundler::Source do end end end + +private + + def with_ui(ui) + old_ui = Bundler.ui + Bundler.ui = ui + yield + ensure + Bundler.ui = old_ui + end end diff --git a/spec/bundler/bundler/ui/shell_spec.rb b/spec/bundler/bundler/ui/shell_spec.rb index 632477096e..536014c6aa 100644 --- a/spec/bundler/bundler/ui/shell_spec.rb +++ b/spec/bundler/bundler/ui/shell_spec.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require_relative "../../support/streams" + RSpec.describe Bundler::UI::Shell do subject { described_class.new } |