mirror of
https://github.com/ruby/ruby.git
synced 2025-08-26 06:25:31 +02:00
[rubygems/rubygems] Refactor reseting RUBYGEMS_GEMDEPS
in tests
91dca11112
This commit is contained in:
parent
43aecf216e
commit
76b77d9275
Notes:
git
2021-08-31 19:07:13 +09:00
1 changed files with 133 additions and 141 deletions
|
@ -19,7 +19,6 @@ class TestGem < Gem::TestCase
|
||||||
|
|
||||||
common_installer_setup
|
common_installer_setup
|
||||||
|
|
||||||
ENV.delete 'RUBYGEMS_GEMDEPS'
|
|
||||||
@additional = %w[a b].map {|d| File.join @tempdir, d }
|
@additional = %w[a b].map {|d| File.join @tempdir, d }
|
||||||
|
|
||||||
util_remove_interrupt_command
|
util_remove_interrupt_command
|
||||||
|
@ -663,24 +662,22 @@ class TestGem < Gem::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_self_use_gemdeps
|
def test_self_use_gemdeps
|
||||||
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], '-'
|
with_rubygems_gemdeps('-') do
|
||||||
|
FileUtils.mkdir_p 'detect/a/b'
|
||||||
|
FileUtils.mkdir_p 'detect/a/Isolate'
|
||||||
|
|
||||||
FileUtils.mkdir_p 'detect/a/b'
|
FileUtils.touch 'detect/Isolate'
|
||||||
FileUtils.mkdir_p 'detect/a/Isolate'
|
|
||||||
|
|
||||||
FileUtils.touch 'detect/Isolate'
|
begin
|
||||||
|
Dir.chdir 'detect/a/b'
|
||||||
|
|
||||||
begin
|
Gem.use_gemdeps
|
||||||
Dir.chdir 'detect/a/b'
|
|
||||||
|
|
||||||
Gem.use_gemdeps
|
assert_equal add_bundler_full_name([]), loaded_spec_names
|
||||||
|
ensure
|
||||||
assert_equal add_bundler_full_name([]), loaded_spec_names
|
Dir.chdir @tempdir
|
||||||
ensure
|
end
|
||||||
Dir.chdir @tempdir
|
|
||||||
end
|
end
|
||||||
ensure
|
|
||||||
ENV['RUBYGEMS_GEMDEPS'] = rubygems_gemdeps
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_self_dir
|
def test_self_dir
|
||||||
|
@ -1690,11 +1687,11 @@ class TestGem < Gem::TestCase
|
||||||
f.puts "gem 'c'"
|
f.puts "gem 'c'"
|
||||||
end
|
end
|
||||||
|
|
||||||
ENV['RUBYGEMS_GEMDEPS'] = path
|
with_rubygems_gemdeps(path) do
|
||||||
|
Gem.use_gemdeps
|
||||||
|
|
||||||
Gem.use_gemdeps
|
assert_equal add_bundler_full_name(%W[a-1 b-1 c-1]), loaded_spec_names
|
||||||
|
end
|
||||||
assert_equal add_bundler_full_name(%W[a-1 b-1 c-1]), loaded_spec_names
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_auto_activation_of_used_gemdeps_file
|
def test_auto_activation_of_used_gemdeps_file
|
||||||
|
@ -1712,13 +1709,13 @@ class TestGem < Gem::TestCase
|
||||||
f.puts "gem 'c'"
|
f.puts "gem 'c'"
|
||||||
end
|
end
|
||||||
|
|
||||||
ENV['RUBYGEMS_GEMDEPS'] = "-"
|
with_rubygems_gemdeps("-") do
|
||||||
|
expected_specs = [a, b, util_spec("bundler", Bundler::VERSION), c].compact.map(&:full_name)
|
||||||
|
|
||||||
expected_specs = [a, b, util_spec("bundler", Bundler::VERSION), c].compact.map(&:full_name)
|
Gem.use_gemdeps
|
||||||
|
|
||||||
Gem.use_gemdeps
|
assert_equal expected_specs, loaded_spec_names
|
||||||
|
end
|
||||||
assert_equal expected_specs, loaded_spec_names
|
|
||||||
end
|
end
|
||||||
|
|
||||||
BUNDLER_LIB_PATH = File.expand_path $LOAD_PATH.find {|lp| File.file?(File.join(lp, "bundler.rb")) }
|
BUNDLER_LIB_PATH = File.expand_path $LOAD_PATH.find {|lp| File.file?(File.join(lp, "bundler.rb")) }
|
||||||
|
@ -1753,29 +1750,30 @@ class TestGem < Gem::TestCase
|
||||||
install_gem c, :install_dir => path
|
install_gem c, :install_dir => path
|
||||||
|
|
||||||
ENV['GEM_PATH'] = path
|
ENV['GEM_PATH'] = path
|
||||||
ENV['RUBYGEMS_GEMDEPS'] = "-"
|
|
||||||
|
|
||||||
new_PATH = [File.join(path, "bin"), ENV["PATH"]].join(File::PATH_SEPARATOR)
|
with_rubygems_gemdeps("-") do
|
||||||
new_RUBYOPT = "-I#{rubygems_path} -I#{BUNDLER_LIB_PATH}"
|
new_PATH = [File.join(path, "bin"), ENV["PATH"]].join(File::PATH_SEPARATOR)
|
||||||
|
new_RUBYOPT = "-I#{rubygems_path} -I#{BUNDLER_LIB_PATH}"
|
||||||
|
|
||||||
path = File.join @tempdir, "gem.deps.rb"
|
path = File.join @tempdir, "gem.deps.rb"
|
||||||
|
|
||||||
File.open path, "w" do |f|
|
File.open path, "w" do |f|
|
||||||
f.puts "gem 'a'"
|
f.puts "gem 'a'"
|
||||||
|
end
|
||||||
|
out0 = with_path_and_rubyopt(new_PATH, new_RUBYOPT) do
|
||||||
|
IO.popen("foo", &:read).split(/\n/)
|
||||||
|
end
|
||||||
|
|
||||||
|
File.open path, "a" do |f|
|
||||||
|
f.puts "gem 'b'"
|
||||||
|
f.puts "gem 'c'"
|
||||||
|
end
|
||||||
|
out = with_path_and_rubyopt(new_PATH, new_RUBYOPT) do
|
||||||
|
IO.popen("foo", &:read).split(/\n/)
|
||||||
|
end
|
||||||
|
|
||||||
|
assert_equal ["b-1", "c-1"], out - out0
|
||||||
end
|
end
|
||||||
out0 = with_path_and_rubyopt(new_PATH, new_RUBYOPT) do
|
|
||||||
IO.popen("foo", &:read).split(/\n/)
|
|
||||||
end
|
|
||||||
|
|
||||||
File.open path, "a" do |f|
|
|
||||||
f.puts "gem 'b'"
|
|
||||||
f.puts "gem 'c'"
|
|
||||||
end
|
|
||||||
out = with_path_and_rubyopt(new_PATH, new_RUBYOPT) do
|
|
||||||
IO.popen("foo", &:read).split(/\n/)
|
|
||||||
end
|
|
||||||
|
|
||||||
assert_equal ["b-1", "c-1"], out - out0
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_looks_for_gemdeps_files_automatically_from_binstubs_in_parent_dir
|
def test_looks_for_gemdeps_files_automatically_from_binstubs_in_parent_dir
|
||||||
|
@ -1801,33 +1799,34 @@ class TestGem < Gem::TestCase
|
||||||
install_gem c, :install_dir => path
|
install_gem c, :install_dir => path
|
||||||
|
|
||||||
ENV['GEM_PATH'] = path
|
ENV['GEM_PATH'] = path
|
||||||
ENV['RUBYGEMS_GEMDEPS'] = "-"
|
|
||||||
|
|
||||||
Dir.mkdir "sub1"
|
with_rubygems_gemdeps("-") do
|
||||||
|
Dir.mkdir "sub1"
|
||||||
|
|
||||||
new_PATH = [File.join(path, "bin"), ENV["PATH"]].join(File::PATH_SEPARATOR)
|
new_PATH = [File.join(path, "bin"), ENV["PATH"]].join(File::PATH_SEPARATOR)
|
||||||
new_RUBYOPT = "-I#{rubygems_path} -I#{BUNDLER_LIB_PATH}"
|
new_RUBYOPT = "-I#{rubygems_path} -I#{BUNDLER_LIB_PATH}"
|
||||||
|
|
||||||
path = File.join @tempdir, "gem.deps.rb"
|
path = File.join @tempdir, "gem.deps.rb"
|
||||||
|
|
||||||
File.open path, "w" do |f|
|
File.open path, "w" do |f|
|
||||||
f.puts "gem 'a'"
|
f.puts "gem 'a'"
|
||||||
|
end
|
||||||
|
out0 = with_path_and_rubyopt(new_PATH, new_RUBYOPT) do
|
||||||
|
IO.popen("foo", :chdir => "sub1", &:read).split(/\n/)
|
||||||
|
end
|
||||||
|
|
||||||
|
File.open path, "a" do |f|
|
||||||
|
f.puts "gem 'b'"
|
||||||
|
f.puts "gem 'c'"
|
||||||
|
end
|
||||||
|
out = with_path_and_rubyopt(new_PATH, new_RUBYOPT) do
|
||||||
|
IO.popen("foo", :chdir => "sub1", &:read).split(/\n/)
|
||||||
|
end
|
||||||
|
|
||||||
|
Dir.rmdir "sub1"
|
||||||
|
|
||||||
|
assert_equal ["b-1", "c-1"], out - out0
|
||||||
end
|
end
|
||||||
out0 = with_path_and_rubyopt(new_PATH, new_RUBYOPT) do
|
|
||||||
IO.popen("foo", :chdir => "sub1", &:read).split(/\n/)
|
|
||||||
end
|
|
||||||
|
|
||||||
File.open path, "a" do |f|
|
|
||||||
f.puts "gem 'b'"
|
|
||||||
f.puts "gem 'c'"
|
|
||||||
end
|
|
||||||
out = with_path_and_rubyopt(new_PATH, new_RUBYOPT) do
|
|
||||||
IO.popen("foo", :chdir => "sub1", &:read).split(/\n/)
|
|
||||||
end
|
|
||||||
|
|
||||||
Dir.rmdir "sub1"
|
|
||||||
|
|
||||||
assert_equal ["b-1", "c-1"], out - out0
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_register_default_spec
|
def test_register_default_spec
|
||||||
|
@ -1891,21 +1890,19 @@ class TestGem < Gem::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_use_gemdeps_ENV
|
def test_use_gemdeps_ENV
|
||||||
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], nil
|
with_rubygems_gemdeps(nil) do
|
||||||
|
spec = util_spec 'a', 1
|
||||||
|
|
||||||
spec = util_spec 'a', 1
|
refute spec.activated?
|
||||||
|
|
||||||
refute spec.activated?
|
File.open 'gem.deps.rb', 'w' do |io|
|
||||||
|
io.write 'gem "a"'
|
||||||
|
end
|
||||||
|
|
||||||
File.open 'gem.deps.rb', 'w' do |io|
|
Gem.use_gemdeps
|
||||||
io.write 'gem "a"'
|
|
||||||
|
refute spec.activated?
|
||||||
end
|
end
|
||||||
|
|
||||||
Gem.use_gemdeps
|
|
||||||
|
|
||||||
refute spec.activated?
|
|
||||||
ensure
|
|
||||||
ENV['RUBYGEMS_GEMDEPS'] = rubygems_gemdeps
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_use_gemdeps_argument_missing
|
def test_use_gemdeps_argument_missing
|
||||||
|
@ -1918,109 +1915,96 @@ class TestGem < Gem::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_use_gemdeps_argument_missing_match_ENV
|
def test_use_gemdeps_argument_missing_match_ENV
|
||||||
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] =
|
with_rubygems_gemdeps('gem.deps.rb') do
|
||||||
ENV['RUBYGEMS_GEMDEPS'], 'gem.deps.rb'
|
e = assert_raise ArgumentError do
|
||||||
|
Gem.use_gemdeps 'gem.deps.rb'
|
||||||
|
end
|
||||||
|
|
||||||
e = assert_raise ArgumentError do
|
assert_equal 'Unable to find gem dependencies file at gem.deps.rb',
|
||||||
Gem.use_gemdeps 'gem.deps.rb'
|
e.message
|
||||||
end
|
end
|
||||||
|
|
||||||
assert_equal 'Unable to find gem dependencies file at gem.deps.rb',
|
|
||||||
e.message
|
|
||||||
ensure
|
|
||||||
ENV['RUBYGEMS_GEMDEPS'] = rubygems_gemdeps
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_use_gemdeps_automatic
|
def test_use_gemdeps_automatic
|
||||||
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], '-'
|
with_rubygems_gemdeps('-') do
|
||||||
|
spec = util_spec 'a', 1
|
||||||
|
install_specs spec
|
||||||
|
spec = Gem::Specification.find {|s| s == spec }
|
||||||
|
|
||||||
spec = util_spec 'a', 1
|
refute spec.activated?
|
||||||
install_specs spec
|
|
||||||
spec = Gem::Specification.find {|s| s == spec }
|
|
||||||
|
|
||||||
refute spec.activated?
|
File.open 'Gemfile', 'w' do |io|
|
||||||
|
io.write 'gem "a"'
|
||||||
|
end
|
||||||
|
|
||||||
File.open 'Gemfile', 'w' do |io|
|
Gem.use_gemdeps
|
||||||
io.write 'gem "a"'
|
|
||||||
|
assert_equal add_bundler_full_name(%W[a-1]), loaded_spec_names
|
||||||
end
|
end
|
||||||
|
|
||||||
Gem.use_gemdeps
|
|
||||||
|
|
||||||
assert_equal add_bundler_full_name(%W[a-1]), loaded_spec_names
|
|
||||||
ensure
|
|
||||||
ENV['RUBYGEMS_GEMDEPS'] = rubygems_gemdeps
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_use_gemdeps_automatic_missing
|
def test_use_gemdeps_automatic_missing
|
||||||
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], '-'
|
with_rubygems_gemdeps('-') do
|
||||||
|
Gem.use_gemdeps
|
||||||
|
|
||||||
Gem.use_gemdeps
|
assert true # count
|
||||||
|
end
|
||||||
assert true # count
|
|
||||||
ensure
|
|
||||||
ENV['RUBYGEMS_GEMDEPS'] = rubygems_gemdeps
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_use_gemdeps_disabled
|
def test_use_gemdeps_disabled
|
||||||
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], ''
|
with_rubygems_gemdeps('') do
|
||||||
|
spec = util_spec 'a', 1
|
||||||
|
|
||||||
spec = util_spec 'a', 1
|
refute spec.activated?
|
||||||
|
|
||||||
refute spec.activated?
|
File.open 'gem.deps.rb', 'w' do |io|
|
||||||
|
io.write 'gem "a"'
|
||||||
|
end
|
||||||
|
|
||||||
File.open 'gem.deps.rb', 'w' do |io|
|
Gem.use_gemdeps
|
||||||
io.write 'gem "a"'
|
|
||||||
|
refute spec.activated?
|
||||||
end
|
end
|
||||||
|
|
||||||
Gem.use_gemdeps
|
|
||||||
|
|
||||||
refute spec.activated?
|
|
||||||
ensure
|
|
||||||
ENV['RUBYGEMS_GEMDEPS'] = rubygems_gemdeps
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_use_gemdeps_missing_gem
|
def test_use_gemdeps_missing_gem
|
||||||
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], 'x'
|
with_rubygems_gemdeps('x') do
|
||||||
|
File.open 'x', 'w' do |io|
|
||||||
|
io.write 'gem "a"'
|
||||||
|
end
|
||||||
|
|
||||||
File.open 'x', 'w' do |io|
|
expected = <<-EXPECTED
|
||||||
io.write 'gem "a"'
|
|
||||||
end
|
|
||||||
|
|
||||||
expected = <<-EXPECTED
|
|
||||||
Could not find gem 'a' in locally installed gems.
|
Could not find gem 'a' in locally installed gems.
|
||||||
You may need to `gem install -g` to install missing gems
|
You may need to `gem install -g` to install missing gems
|
||||||
|
|
||||||
EXPECTED
|
EXPECTED
|
||||||
|
|
||||||
Gem::Deprecate.skip_during do
|
Gem::Deprecate.skip_during do
|
||||||
actual_stdout, actual_stderr = capture_output do
|
actual_stdout, actual_stderr = capture_output do
|
||||||
Gem.use_gemdeps
|
Gem.use_gemdeps
|
||||||
|
end
|
||||||
|
assert_empty actual_stdout
|
||||||
|
assert_equal(expected, actual_stderr)
|
||||||
end
|
end
|
||||||
assert_empty actual_stdout
|
|
||||||
assert_equal(expected, actual_stderr)
|
|
||||||
end
|
end
|
||||||
ensure
|
|
||||||
ENV['RUBYGEMS_GEMDEPS'] = rubygems_gemdeps
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_use_gemdeps_specific
|
def test_use_gemdeps_specific
|
||||||
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], 'x'
|
with_rubygems_gemdeps('x') do
|
||||||
|
spec = util_spec 'a', 1
|
||||||
|
install_specs spec
|
||||||
|
|
||||||
spec = util_spec 'a', 1
|
spec = Gem::Specification.find {|s| s == spec }
|
||||||
install_specs spec
|
refute spec.activated?
|
||||||
|
|
||||||
spec = Gem::Specification.find {|s| s == spec }
|
File.open 'x', 'w' do |io|
|
||||||
refute spec.activated?
|
io.write 'gem "a"'
|
||||||
|
end
|
||||||
|
|
||||||
File.open 'x', 'w' do |io|
|
Gem.use_gemdeps
|
||||||
io.write 'gem "a"'
|
|
||||||
|
assert_equal add_bundler_full_name(%W[a-1]), loaded_spec_names
|
||||||
end
|
end
|
||||||
|
|
||||||
Gem.use_gemdeps
|
|
||||||
|
|
||||||
assert_equal add_bundler_full_name(%W[a-1]), loaded_spec_names
|
|
||||||
ensure
|
|
||||||
ENV['RUBYGEMS_GEMDEPS'] = rubygems_gemdeps
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_operating_system_defaults
|
def test_operating_system_defaults
|
||||||
|
@ -2148,4 +2132,12 @@ You may need to `gem install -g` to install missing gems
|
||||||
ENV['PATH'] = path
|
ENV['PATH'] = path
|
||||||
ENV['RUBYOPT'] = rubyopt
|
ENV['RUBYOPT'] = rubyopt
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def with_rubygems_gemdeps(value)
|
||||||
|
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], value
|
||||||
|
|
||||||
|
yield
|
||||||
|
ensure
|
||||||
|
ENV['RUBYGEMS_GEMDEPS'] = rubygems_gemdeps
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue