From 37f824377fce1bb0fb3ae94f858e2b9417b67b56 Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Wed, 18 Aug 2021 19:37:11 +0900 Subject: Merge RubyGems 3.2.26 and Bundler 2.2.26 --- spec/bundler/commands/binstubs_spec.rb | 4 +- spec/bundler/commands/config_spec.rb | 10 +++++ spec/bundler/commands/exec_spec.rb | 4 +- spec/bundler/commands/install_spec.rb | 20 +++++++++- spec/bundler/commands/lock_spec.rb | 2 +- spec/bundler/commands/newgem_spec.rb | 48 ++++++++++++----------- spec/bundler/commands/post_bundle_message_spec.rb | 1 - 7 files changed, 59 insertions(+), 30 deletions(-) (limited to 'spec/bundler/commands') diff --git a/spec/bundler/commands/binstubs_spec.rb b/spec/bundler/commands/binstubs_spec.rb index fb5da98bf3..c8eef55266 100644 --- a/spec/bundler/commands/binstubs_spec.rb +++ b/spec/bundler/commands/binstubs_spec.rb @@ -287,8 +287,6 @@ RSpec.describe "bundle binstubs " do end it "sets correct permissions for binstubs" do - skip "https://github.com/rubygems/rubygems/issues/3352" if Gem.win_platform? - with_umask(0o002) do install_gemfile <<-G source "#{file_uri_for(gem_repo1)}" @@ -297,7 +295,7 @@ RSpec.describe "bundle binstubs " do bundle "binstubs rack" binary = bundled_app("bin/rackup") - expect(File.stat(binary).mode.to_s(8)).to eq("100775") + expect(File.stat(binary).mode.to_s(8)).to eq(Gem.win_platform? ? "100644" : "100775") end end diff --git a/spec/bundler/commands/config_spec.rb b/spec/bundler/commands/config_spec.rb index 4e13a7903e..48f0ceab78 100644 --- a/spec/bundler/commands/config_spec.rb +++ b/spec/bundler/commands/config_spec.rb @@ -88,6 +88,16 @@ RSpec.describe ".bundle/config" do bundle "config get path", :env => { "BUNDLE_USER_CONFIG" => bundle_user_config } expect(out).to include("Set for the current user (#{bundle_user_config}): \"vendor\"") end + + context "when not explicitly configured, but BUNDLE_USER_HOME set" do + let(:bundle_user_home) { bundled_app(".bundle").to_s } + + it "uses the right location" do + bundle "config set path vendor", :env => { "BUNDLE_USER_HOME" => bundle_user_home } + bundle "config get path", :env => { "BUNDLE_USER_HOME" => bundle_user_home } + expect(out).to include("Set for the current user (#{bundle_user_home}/config): \"vendor\"") + end + end end describe "global" do diff --git a/spec/bundler/commands/exec_spec.rb b/spec/bundler/commands/exec_spec.rb index 68c4726608..c6648f0a7a 100644 --- a/spec/bundler/commands/exec_spec.rb +++ b/spec/bundler/commands/exec_spec.rb @@ -836,7 +836,7 @@ RSpec.describe "bundle exec" do let(:exit_code) { Bundler::GemNotFound.new.status_code } let(:expected) { "" } let(:expected_err) { <<-EOS.strip } -Could not find gem 'rack (= 2)' in rubygems repository #{file_uri_for(gem_repo1)}/ or installed locally. +Could not find gem 'rack (= 2)' in locally installed gems. The source contains the following versions of 'rack': 0.9.1, 1.0.0 Run `bundle install` to install missing gems. EOS @@ -863,7 +863,7 @@ Run `bundle install` to install missing gems. let(:exit_code) { Bundler::GemNotFound.new.status_code } let(:expected) { "" } let(:expected_err) { <<-EOS.strip } -Could not find gem 'rack (= 2)' in rubygems repository #{file_uri_for(gem_repo1)}/ or installed locally. +Could not find gem 'rack (= 2)' in locally installed gems. The source contains the following versions of 'rack': 1.0.0 Run `bundle install` to install missing gems. EOS diff --git a/spec/bundler/commands/install_spec.rb b/spec/bundler/commands/install_spec.rb index 412000341f..35c45b68b7 100644 --- a/spec/bundler/commands/install_spec.rb +++ b/spec/bundler/commands/install_spec.rb @@ -336,7 +336,7 @@ RSpec.describe "bundle install with gem sources" do expect(err).to include("This Gemfile does not include an explicit global source. " \ "Not using an explicit global source may result in a different lockfile being generated depending on " \ - "the gems you have installed locally before bundler is run." \ + "the gems you have installed locally before bundler is run. " \ "Instead, define a global source in your Gemfile like this: source \"https://rubygems.org\".") end @@ -759,4 +759,22 @@ RSpec.describe "bundle install with gem sources" do ) end end + + context "with --local flag" do + before do + system_gems "rack-1.0.0", :path => default_bundle_path + end + + it "respects installed gems without fetching any remote sources" do + install_gemfile <<-G, :local => true + source "#{file_uri_for(gem_repo1)}" + + source "https://not-existing-source" do + gem "rack" + end + G + + expect(last_command).to be_success + end + end end diff --git a/spec/bundler/commands/lock_spec.rb b/spec/bundler/commands/lock_spec.rb index 21eb6e5456..171ec1ba1d 100644 --- a/spec/bundler/commands/lock_spec.rb +++ b/spec/bundler/commands/lock_spec.rb @@ -86,7 +86,7 @@ RSpec.describe "bundle lock" do it "does not fetch remote specs when using the --local option" do bundle "lock --update --local", :raise_on_error => false - expect(err).to match(/installed locally/) + expect(err).to match(/locally installed gems/) end it "works with --gemfile flag" do diff --git a/spec/bundler/commands/newgem_spec.rb b/spec/bundler/commands/newgem_spec.rb index 5cdb3ed5e3..73ae721c69 100644 --- a/spec/bundler/commands/newgem_spec.rb +++ b/spec/bundler/commands/newgem_spec.rb @@ -29,36 +29,32 @@ RSpec.describe "bundle gem" do end describe "git repo initialization" do - shared_examples_for "a gem with an initial git repo" do - before do - bundle "gem #{gem_name} #{flags}" - end - - it "generates a gem skeleton with a .git folder", :readline do - gem_skeleton_assertions - expect(bundled_app("#{gem_name}/.git")).to exist - end + it "generates a gem skeleton with a .git folder", :readline do + bundle "gem #{gem_name}" + gem_skeleton_assertions + expect(bundled_app("#{gem_name}/.git")).to exist end - context "when using the default" do - it_behaves_like "a gem with an initial git repo" do - let(:flags) { "" } - end + it "generates a gem skeleton with a .git folder when passing --git", :readline do + bundle "gem #{gem_name} --git" + gem_skeleton_assertions + expect(bundled_app("#{gem_name}/.git")).to exist end - context "when explicitly passing --git" do - it_behaves_like "a gem with an initial git repo" do - let(:flags) { "--git" } - end + it "generates a gem skeleton without a .git folder when passing --no-git", :readline do + bundle "gem #{gem_name} --no-git" + gem_skeleton_assertions + expect(bundled_app("#{gem_name}/.git")).not_to exist end - context "when passing --no-git", :readline do + context "on a path with spaces" do before do - bundle "gem #{gem_name} --no-git" + Dir.mkdir(bundled_app("path with spaces")) end - it "generates a gem skeleton without a .git folder" do - gem_skeleton_assertions - expect(bundled_app("#{gem_name}/.git")).not_to exist + + it "properly initializes git repo", :readline do + bundle "gem #{gem_name}", :dir => bundled_app("path with spaces") + expect(bundled_app("path with spaces/#{gem_name}/.git")).to exist end end end @@ -475,6 +471,14 @@ RSpec.describe "bundle gem" do expect(bundled_app("#{gem_name}/lib/#{require_path}.rb").read).to match(/class Error < StandardError; end$/) end + it "does not include the gemspec file in files" do + bundle "gem #{gem_name}" + + bundler_gemspec = Bundler::GemHelper.new(gemspec_dir).gemspec + + expect(bundler_gemspec.files).not_to include("#{gem_name}.gemspec") + end + it "runs rake without problems" do bundle "gem #{gem_name}" diff --git a/spec/bundler/commands/post_bundle_message_spec.rb b/spec/bundler/commands/post_bundle_message_spec.rb index 72f8020b44..3050b87754 100644 --- a/spec/bundler/commands/post_bundle_message_spec.rb +++ b/spec/bundler/commands/post_bundle_message_spec.rb @@ -121,7 +121,6 @@ RSpec.describe "post bundle message" do G expect(err).to include <<-EOS.strip Could not find gem 'not-a-gem' in rubygems repository #{file_uri_for(gem_repo1)}/ or installed locally. -The source does not contain any versions of 'not-a-gem' EOS end -- cgit v1.2.3