summaryrefslogtreecommitdiff
path: root/test/rubygems
diff options
context:
space:
mode:
authorhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-11-28 22:30:28 +0000
committerhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-11-28 22:30:28 +0000
commite82802070a6b64c86a09731497ef9eafaebdee5c (patch)
treeb11757bd1c2a1627bdd1ebe1c38beb747d67e837 /test/rubygems
parent89bfee6fd47d059ca2a95159eb964f37bdbb3f2c (diff)
Merge rubygems-2.7.3.
http://blog.rubygems.org/2017/11/28/2.7.3-released.html git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60927 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rubygems')
-rw-r--r--test/rubygems/test_gem_command.rb6
-rw-r--r--test/rubygems/test_gem_commands_cleanup_command.rb43
-rw-r--r--test/rubygems/test_gem_commands_setup_command.rb88
-rw-r--r--test/rubygems/test_gem_commands_signin_command.rb11
-rw-r--r--test/rubygems/test_gem_ext_configure_builder.rb2
5 files changed, 145 insertions, 5 deletions
diff --git a/test/rubygems/test_gem_command.rb b/test/rubygems/test_gem_command.rb
index 913cd72aa0..4442c6108e 100644
--- a/test/rubygems/test_gem_command.rb
+++ b/test/rubygems/test_gem_command.rb
@@ -13,6 +13,7 @@ class TestGemCommand < Gem::TestCase
@xopt = nil
+ @common_options = Gem::Command.common_options.dup
Gem::Command.common_options.clear
Gem::Command.common_options << [
['-x', '--exe', 'Execute'], lambda do |*a|
@@ -24,6 +25,11 @@ class TestGemCommand < Gem::TestCase
@cmd = Gem::Command.new @cmd_name, 'summary'
end
+ def teardown
+ super
+ Gem::Command.common_options.replace @common_options
+ end
+
def test_self_add_specific_extra_args
added_args = %w[--all]
@cmd.add_option '--all' do |v,o| end
diff --git a/test/rubygems/test_gem_commands_cleanup_command.rb b/test/rubygems/test_gem_commands_cleanup_command.rb
index 8354160dbf..c55e195975 100644
--- a/test/rubygems/test_gem_commands_cleanup_command.rb
+++ b/test/rubygems/test_gem_commands_cleanup_command.rb
@@ -32,6 +32,21 @@ class TestGemCommandsCleanupCommand < Gem::TestCase
assert @cmd.options[:dryrun]
end
+ def test_handle_options_check_development
+ @cmd.handle_options []
+ assert @cmd.options[:check_dev]
+
+ %w[-D --check-development].each do |options|
+ @cmd.handle_options [options]
+ assert @cmd.options[:check_dev]
+ end
+
+ %w[--no-check-development].each do |options|
+ @cmd.handle_options [options]
+ refute @cmd.options[:check_dev]
+ end
+ end
+
def test_execute
@cmd.options[:args] = %w[a]
@@ -55,6 +70,34 @@ class TestGemCommandsCleanupCommand < Gem::TestCase
refute_path_exists @b_1.gem_dir
end
+ def test_execute_dev_dependencies
+ @b_1 = util_spec 'b', 1 do |s| s.add_development_dependency 'a', '1' end
+ @c_1 = util_spec 'c', 1 do |s| s.add_development_dependency 'a', '2' end
+
+ install_gem @b_1
+ install_gem @c_1
+
+ @cmd.handle_options %w[--check-development]
+
+ @cmd.execute
+
+ assert_path_exists @a_1.gem_dir
+ end
+
+ def test_execute_without_dev_dependencies
+ @b_1 = util_spec 'b', 1 do |s| s.add_development_dependency 'a', '1' end
+ @c_1 = util_spec 'c', 1 do |s| s.add_development_dependency 'a', '2' end
+
+ install_gem @b_1
+ install_gem @c_1
+
+ @cmd.handle_options %w[--no-check-development]
+
+ @cmd.execute
+
+ refute_path_exists @a_1.gem_dir
+ end
+
def test_execute_all
gemhome2 = File.join @tempdir, 'gemhome2'
diff --git a/test/rubygems/test_gem_commands_setup_command.rb b/test/rubygems/test_gem_commands_setup_command.rb
index 22c831fa5e..433b60df16 100644
--- a/test/rubygems/test_gem_commands_setup_command.rb
+++ b/test/rubygems/test_gem_commands_setup_command.rb
@@ -27,6 +27,67 @@ class TestGemCommandsSetupCommand < Gem::TestCase
open 'bundler/exe/bundle', 'w' do |io| io.puts '# bundle' end
open 'bundler/lib/bundler.rb', 'w' do |io| io.puts '# bundler.rb' end
open 'bundler/lib/bundler/b.rb', 'w' do |io| io.puts '# b.rb' end
+
+ FileUtils.mkdir_p 'default/gems'
+
+ gemspec = Gem::Specification.new
+ gemspec.name = "bundler"
+ gemspec.version = "1.16.0"
+ gemspec.bindir = "exe"
+ gemspec.executables = ["bundle"]
+
+ open 'bundler/bundler.gemspec', 'w' do |io|
+ io.puts gemspec.to_ruby
+ end
+
+ open(File.join(Gem::Specification.default_specifications_dir, "bundler-1.15.4.gemspec"), 'w') do |io|
+ io.puts '# bundler'
+ end
+
+ FileUtils.mkdir_p File.join(Gem.default_dir, "specifications")
+ open(File.join(Gem.default_dir, "specifications", "bundler-audit-1.0.0.gemspec"), 'w') do |io|
+ io.puts '# bundler-audit'
+ end
+
+ FileUtils.mkdir_p 'default/gems/bundler-1.15.4'
+ FileUtils.mkdir_p 'default/gems/bundler-audit-1.0.0'
+ end
+
+ def gem_install name
+ gem = util_spec name do |s|
+ s.executables = [name]
+ s.files = %W[bin/#{name}]
+ end
+ write_file File.join @tempdir, 'bin', name do |f|
+ f.puts '#!/usr/bin/ruby'
+ end
+ install_gem gem
+ File.join @gemhome, 'bin', name
+ end
+
+ def test_execute_regenerate_binstubs
+ gem_bin_path = gem_install 'a'
+ write_file gem_bin_path do |io|
+ io.puts 'I changed it!'
+ end
+
+ @cmd.options[:document] = []
+ @cmd.execute
+
+ assert_match %r{\A#!}, File.read(gem_bin_path)
+ end
+
+ def test_execute_no_regenerate_binstubs
+ gem_bin_path = gem_install 'a'
+ write_file gem_bin_path do |io|
+ io.puts 'I changed it!'
+ end
+
+ @cmd.options[:document] = []
+ @cmd.options[:regenerate_binstubs] = false
+ @cmd.execute
+
+ assert_equal "I changed it!\n", File.read(gem_bin_path)
end
def test_pem_files_in
@@ -55,6 +116,33 @@ class TestGemCommandsSetupCommand < Gem::TestCase
end
end
+ def test_install_default_bundler_gem
+ @cmd.extend FileUtils
+
+ @cmd.install_default_bundler_gem
+
+ if Gem.win_platform?
+ bundler_spec = Gem::Specification.load("bundler/bundler.gemspec")
+ default_spec_path = File.join(Gem::Specification.default_specifications_dir, "#{bundler_spec.full_name}.gemspec")
+ spec = Gem::Specification.load(default_spec_path)
+
+ spec.executables.each do |e|
+ assert_path_exists File.join(spec.bin_dir, "#{e}.bat")
+ end
+ end
+
+ default_dir = Gem::Specification.default_specifications_dir
+
+ refute_path_exists File.join(default_dir, "bundler-1.15.4.gemspec")
+ refute_path_exists 'default/gems/bundler-1.15.4'
+
+ assert_path_exists File.join(default_dir, "bundler-1.16.0.gemspec")
+ assert_path_exists 'default/gems/bundler-1.16.0'
+
+ assert_path_exists File.join(Gem.default_dir, "specifications", "bundler-audit-1.0.0.gemspec")
+ assert_path_exists 'default/gems/bundler-audit-1.0.0'
+ end if Gem::USE_BUNDLER_FOR_GEMDEPS
+
def test_remove_old_lib_files
lib = File.join @install_dir, 'lib'
lib_rubygems = File.join lib, 'rubygems'
diff --git a/test/rubygems/test_gem_commands_signin_command.rb b/test/rubygems/test_gem_commands_signin_command.rb
index b41fed86e8..56eecfc1f8 100644
--- a/test/rubygems/test_gem_commands_signin_command.rb
+++ b/test/rubygems/test_gem_commands_signin_command.rb
@@ -27,10 +27,11 @@ class TestGemCommandsSigninCommand < Gem::TestCase
def test_execute_when_already_signed_in_with_same_host
host = 'http://some-gemcutter-compatible-host.org'
- sign_in_ui = util_capture(nil, host) { @cmd.execute }
+
+ util_capture(nil, host) { @cmd.execute }
old_credentials = YAML.load_file Gem.configuration.credentials_path
- sign_in_ui = util_capture(nil, host) { @cmd.execute }
+ util_capture(nil, host) { @cmd.execute }
new_credentials = YAML.load_file Gem.configuration.credentials_path
assert_equal old_credentials[host], new_credentials[host]
@@ -38,9 +39,11 @@ class TestGemCommandsSigninCommand < Gem::TestCase
def test_execute_when_already_signed_in_with_different_host
api_key = 'a5fdbb6ba150cbb83aad2bb2fede64cf04045xxxx'
- sign_in_ui = util_capture(nil, nil, api_key) { @cmd.execute }
+
+ util_capture(nil, nil, api_key) { @cmd.execute }
host = 'http://some-gemcutter-compatible-host.org'
- sign_in_ui = util_capture(nil, host, api_key) { @cmd.execute }
+
+ util_capture(nil, host, api_key) { @cmd.execute }
credentials = YAML.load_file Gem.configuration.credentials_path
assert_equal credentials[:rubygems_api_key], api_key
diff --git a/test/rubygems/test_gem_ext_configure_builder.rb b/test/rubygems/test_gem_ext_configure_builder.rb
index 6fd28770d3..cf7559d56c 100644
--- a/test/rubygems/test_gem_ext_configure_builder.rb
+++ b/test/rubygems/test_gem_ext_configure_builder.rb
@@ -54,7 +54,7 @@ class TestGemExtConfigureBuilder < Gem::TestCase
end
end
- shell_error_msg = %r{(\./configure: .*)|((?:Can't|cannot) open \./configure(?:: No such file or directory)?)}
+ shell_error_msg = %r{(\./configure: .*)|((?:[Cc]an't|cannot) open '?\./configure'?(?:: No such file or directory)?)}
sh_prefix_configure = "sh ./configure --prefix="
assert_match 'configure failed', error.message