Skip to content

Commit

Permalink
Add test for updating rubygems when we're at the latest version
Browse files Browse the repository at this point in the history
  • Loading branch information
drbrain committed Feb 10, 2011
1 parent a08b531 commit 24026b4
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 16 deletions.
4 changes: 2 additions & 2 deletions lib/rubygems/commands/update_command.rb
Expand Up @@ -157,8 +157,8 @@ def update_rubygems

Gem.source_index.refresh!

update_gems = Gem.source_index.find_name 'rubygems-update', requirement
version = update_gems.last.version
installed_gems = Gem.source_index.find_name 'rubygems-update', requirement
version = installed_gems.last.version

args = []
args << '--prefix' << Gem.prefix if Gem.prefix
Expand Down
52 changes: 38 additions & 14 deletions test/rubygems/test_gem_commands_update_command.rb
Expand Up @@ -58,27 +58,31 @@ def util_setup_rubygem version
gem
end

def util_setup_rubygem8
@rubygem8 = util_setup_rubygem 8
end

def util_setup_rubygem9
@rubygem9 = util_setup_rubygem 9

rubygems9_file = File.join @gemhome, 'cache', @rubygem9.file_name

@fetcher.data['http://gems.example.com/gems/rubygems-update-9.gem'] =
Gem.read_binary rubygems9_file
end

def util_setup_rubygem8
@rubygem8 = util_setup_rubygem 8
def util_setup_rubygem_current
@rubygem_current = util_setup_rubygem Gem::VERSION
end

rubygems8_file = File.join @gemhome, 'cache', @rubygem8.file_name
def util_add_to_fetcher *specs
specs.each do |spec|
gem_file = File.join @gemhome, 'cache', spec.file_name

@fetcher.data['http://gems.example.com/gems/rubygems-update-8.gem'] =
Gem.read_binary rubygems8_file
@fetcher.data["http://gems.example.com/gems/#{spec.file_name}"] =
Gem.read_binary gem_file
end
end

def test_execute_system
util_setup_rubygem9
util_setup_spec_fetcher @rubygem9
util_add_to_fetcher @rubygem9
util_clear_gems

@cmd.options[:args] = []
Expand All @@ -99,10 +103,33 @@ def test_execute_system
assert_empty out
end

def test_execute_system_at_latest
util_setup_rubygem_current
util_setup_spec_fetcher @rubygem_current
util_add_to_fetcher @rubygem_current
util_clear_gems

@cmd.options[:args] = []
@cmd.options[:system] = true
@cmd.options[:generate_rdoc] = false
@cmd.options[:generate_ri] = false

assert_raises Gem::SystemExitException do
use_ui @ui do
@cmd.execute
end
end

out = @ui.output.split "\n"
assert_equal 'Nothing to update, at latest version', out.shift
assert_empty out
end

def test_execute_system_multiple
util_setup_rubygem9
util_setup_rubygem8
util_setup_spec_fetcher @rubygem8, @rubygem9
util_add_to_fetcher @rubygem8, @rubygem9
util_clear_gems

@cmd.options[:args] = []
Expand All @@ -128,6 +155,7 @@ def test_execute_system_specific
util_setup_rubygem9
util_setup_rubygem8
util_setup_spec_fetcher @rubygem8, @rubygem9
util_add_to_fetcher @rubygem8, @rubygem9

@cmd.options[:args] = []
@cmd.options[:system] = "8"
Expand All @@ -148,10 +176,6 @@ def test_execute_system_specific
end

def test_execute_system_with_gems
util_setup_rubygem9
util_setup_spec_fetcher @rubygem9
util_clear_gems

@cmd.options[:args] = %w[gem]
@cmd.options[:system] = true
@cmd.options[:generate_rdoc] = false
Expand Down

0 comments on commit 24026b4

Please sign in to comment.