diff options
-rw-r--r-- | lib/rubygems/commands/update_command.rb | 4 | ||||
-rw-r--r-- | test/rubygems/test_gem_commands_update_command.rb | 28 |
2 files changed, 30 insertions, 2 deletions
diff --git a/lib/rubygems/commands/update_command.rb b/lib/rubygems/commands/update_command.rb index 2df6a48d2d..b7609ed7fe 100644 --- a/lib/rubygems/commands/update_command.rb +++ b/lib/rubygems/commands/update_command.rb @@ -174,13 +174,13 @@ command to remove old versions. update_dir = File.join Gem.dir, 'gems', "rubygems-update-#{version}" Dir.chdir update_dir do - say "Installing RubyGems #{version}" + say "Installing RubyGems #{version}" unless options[:silent] installed = preparing_gem_layout_for(version) do system Gem.ruby, '--disable-gems', 'setup.rb', *args end - say "RubyGems system software updated" if installed + say "RubyGems system software updated" if installed unless options[:silent] end end diff --git a/test/rubygems/test_gem_commands_update_command.rb b/test/rubygems/test_gem_commands_update_command.rb index eed799c5aa..cacde06fd5 100644 --- a/test/rubygems/test_gem_commands_update_command.rb +++ b/test/rubygems/test_gem_commands_update_command.rb @@ -276,6 +276,34 @@ class TestGemCommandsUpdateCommand < Gem::TestCase Gem.disable_system_update_message = old_disable_system_update_message end + # The other style of `gem update --system` tests don't actually run + # setup.rb, so we just check that setup.rb gets the `--silent` flag. + def test_execute_system_silent_passed_to_setuprb + @cmd.options[:args] = [] + @cmd.options[:system] = true + @cmd.options[:silent] = true + + assert_equal true, @cmd.update_rubygems_arguments.include?('--silent') + end + + def test_execute_system_silent + spec_fetcher do |fetcher| + fetcher.download 'rubygems-update', 9 do |s| + s.files = %w[setup.rb] + end + end + + @cmd.options[:args] = [] + @cmd.options[:system] = true + @cmd.options[:silent] = true + + use_ui @ui do + @cmd.execute + end + + assert_empty @ui.output + end + # before: # a1 -> c1.2 # after: |