1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

[rubygems/rubygems] Update some specs to pass ruby-head CI

These specs were monkeypatching `RUBY_VERSION`, but that obviously
doesn't change the running ruby to behave any different.

The removal of some features, in particular, `String#untaint`, made
these specs fail, because untaint is no longer available under ruby-core
and bundler calls `untaint` when `RUBY_VERSION` is less than "2.7",
which these specs were overwriting it to be.

Rewrite these specs to not overwrite `RUBY_VERSION`, but still test the
same things.

https://github.com/rubygems/rubygems/commit/e8c7b92901
This commit is contained in:
David Rodríguez 2021-12-26 17:41:21 +01:00 committed by Hiroshi SHIBATA
parent 73707e5c51
commit ca3a2e46e8
Notes: git 2021-12-27 10:46:04 +09:00
2 changed files with 60 additions and 50 deletions

View file

@ -499,20 +499,17 @@ RSpec.describe "bundle install with gem sources" do
context "and using an unsupported Ruby version" do
it "prints an error" do
install_gemfile <<-G, :raise_on_error => false
::RUBY_VERSION = '2.0.1'
ruby '~> 2.2'
ruby '~> 1.2'
source "#{file_uri_for(gem_repo1)}"
G
expect(err).to include("Your Ruby version is 2.0.1, but your Gemfile specified ~> 2.2")
expect(err).to include("Your Ruby version is #{RUBY_VERSION}, but your Gemfile specified ~> 1.2")
end
end
context "and using a supported Ruby version" do
before do
install_gemfile <<-G
::RUBY_VERSION = '2.1.3'
::RUBY_PATCHLEVEL = 100
ruby '~> 2.1.0'
ruby '~> #{RUBY_VERSION}'
source "#{file_uri_for(gem_repo1)}"
G
end
@ -529,18 +526,16 @@ RSpec.describe "bundle install with gem sources" do
DEPENDENCIES
RUBY VERSION
ruby 2.1.3p100
#{Bundler::RubyVersion.system}
BUNDLED WITH
#{Bundler::VERSION}
L
end
it "updates Gemfile.lock with updated incompatible ruby version" do
it "updates Gemfile.lock with updated yet still compatible ruby version" do
install_gemfile <<-G
::RUBY_VERSION = '2.2.3'
::RUBY_PATCHLEVEL = 100
ruby '~> 2.2.0'
ruby '~> #{RUBY_VERSION[0..2]}'
source "#{file_uri_for(gem_repo1)}"
G
@ -555,7 +550,7 @@ RSpec.describe "bundle install with gem sources" do
DEPENDENCIES
RUBY VERSION
ruby 2.2.3p100
#{Bundler::RubyVersion.system}
BUNDLED WITH
#{Bundler::VERSION}

View file

@ -980,20 +980,14 @@ RSpec.describe "bundle update when a gem depends on a newer version of bundler"
end
RSpec.describe "bundle update --ruby" do
before do
install_gemfile <<-G
::RUBY_VERSION = '2.1.3'
::RUBY_PATCHLEVEL = 100
ruby '~> 2.1.0'
source "#{file_uri_for(gem_repo1)}"
G
end
context "when the Gemfile removes the ruby" do
before do
install_gemfile <<-G
ruby '~> #{RUBY_VERSION}'
source "#{file_uri_for(gem_repo1)}"
G
gemfile <<-G
::RUBY_VERSION = '2.1.4'
::RUBY_PATCHLEVEL = 222
source "#{file_uri_for(gem_repo1)}"
G
end
@ -1018,10 +1012,13 @@ RSpec.describe "bundle update --ruby" do
context "when the Gemfile specified an updated Ruby version" do
before do
install_gemfile <<-G
ruby '~> #{RUBY_VERSION}'
source "#{file_uri_for(gem_repo1)}"
G
gemfile <<-G
::RUBY_VERSION = '2.1.4'
::RUBY_PATCHLEVEL = 222
ruby '~> 2.1.0'
ruby '~> #{RUBY_VERSION[0..2]}'
source "#{file_uri_for(gem_repo1)}"
G
end
@ -1038,37 +1035,55 @@ RSpec.describe "bundle update --ruby" do
DEPENDENCIES
RUBY VERSION
#{Bundler::RubyVersion.system}
BUNDLED WITH
#{Bundler::VERSION}
L
end
end
context "when a different Ruby is being used than has been versioned" do
before do
install_gemfile <<-G
ruby '~> #{RUBY_VERSION}'
source "#{file_uri_for(gem_repo1)}"
G
gemfile <<-G
ruby '~> 2.1.0'
source "#{file_uri_for(gem_repo1)}"
G
end
it "shows a helpful error message" do
bundle "update --ruby", :raise_on_error => false
expect(err).to include("Your Ruby version is #{Bundler::RubyVersion.system.gem_version}, but your Gemfile specified ~> 2.1.0")
end
end
context "when updating Ruby version and Gemfile `ruby`" do
before do
lockfile <<~L
GEM
remote: #{file_uri_for(gem_repo1)}/
specs:
PLATFORMS
#{lockfile_platforms}
DEPENDENCIES
RUBY VERSION
ruby 2.1.4p222
BUNDLED WITH
#{Bundler::VERSION}
L
end
end
context "when a different Ruby is being used than has been versioned" do
before do
gemfile <<-G
::RUBY_VERSION = '2.2.2'
::RUBY_PATCHLEVEL = 505
ruby '~> 2.1.0'
source "#{file_uri_for(gem_repo1)}"
G
end
it "shows a helpful error message" do
bundle "update --ruby", :raise_on_error => false
expect(err).to include("Your Ruby version is 2.2.2, but your Gemfile specified ~> 2.1.0")
end
end
context "when updating Ruby version and Gemfile `ruby`" do
before do
gemfile <<-G
::RUBY_VERSION = '1.8.3'
::RUBY_PATCHLEVEL = 55
ruby '~> 1.8.0'
ruby '~> #{RUBY_VERSION}'
source "#{file_uri_for(gem_repo1)}"
G
end
@ -1086,7 +1101,7 @@ RSpec.describe "bundle update --ruby" do
DEPENDENCIES
RUBY VERSION
ruby 1.8.3p55
#{Bundler::RubyVersion.system}
BUNDLED WITH
#{Bundler::VERSION}