diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-06-17 22:04:18 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-06-17 22:04:18 +0000 |
commit | 9d4f37f51fb2ffdef5e318afb3cb81516dcba4f7 (patch) | |
tree | 2eb3c16c59259a25f5d9315edacc61dfc8c59d62 /test/rubygems/test_gem_commands_sources_command.rb | |
parent | f98e6b91dec68ddd010ccb3bad651a18e7dca338 (diff) |
Update RubyGems to 1.1.1 r1778 (almost 1.2)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rubygems/test_gem_commands_sources_command.rb')
-rw-r--r-- | test/rubygems/test_gem_commands_sources_command.rb | 132 |
1 files changed, 101 insertions, 31 deletions
diff --git a/test/rubygems/test_gem_commands_sources_command.rb b/test/rubygems/test_gem_commands_sources_command.rb index f15d44dfe8..623c732e50 100644 --- a/test/rubygems/test_gem_commands_sources_command.rb +++ b/test/rubygems/test_gem_commands_sources_command.rb @@ -8,10 +8,12 @@ class TestGemCommandsSourcesCommand < RubyGemTestCase super @cmd = Gem::Commands::SourcesCommand.new + + @new_repo = "http://beta-gems.example.com" end def test_execute - util_setup_source_info_cache + util_setup_spec_fetcher @cmd.handle_options [] use_ui @ui do @@ -34,43 +36,49 @@ class TestGemCommandsSourcesCommand < RubyGemTestCase si = Gem::SourceIndex.new si.add_spec @a1 - @fetcher.data["http://beta-gems.example.com/Marshal.#{@marshal_version}"] = - si.dump + specs = si.map do |_, spec| + [spec.name, spec.version, spec.original_platform] + end - @cmd.handle_options %w[--add http://beta-gems.example.com] + specs_dump_gz = StringIO.new + Zlib::GzipWriter.wrap specs_dump_gz do |io| + Marshal.dump specs, io + end - util_setup_source_info_cache + @fetcher.data["#{@new_repo}/specs.#{@marshal_version}.gz"] = + specs_dump_gz.string + + @cmd.handle_options %W[--add #{@new_repo}] + + util_setup_spec_fetcher use_ui @ui do @cmd.execute end + assert_equal [@gem_repo, @new_repo], Gem.sources + expected = <<-EOF -Bulk updating Gem source index for: http://beta-gems.example.com/ -http://beta-gems.example.com added to sources +#{@new_repo} added to sources EOF assert_equal expected, @ui.output assert_equal '', @ui.error - - Gem::SourceInfoCache.cache.flush - assert_equal %W[http://beta-gems.example.com #{@gem_repo}], - Gem::SourceInfoCache.cache_data.keys.sort end def test_execute_add_nonexistent_source util_setup_fake_fetcher - @fetcher.data["http://beta-gems.example.com/Marshal.#{@marshal_version}"] = - proc do - raise Gem::RemoteFetcher::FetchError, 'it died' - end + uri = "http://beta-gems.example.com/specs.#{@marshal_version}.gz" + @fetcher.data[uri] = proc do + raise Gem::RemoteFetcher::FetchError.new('it died', uri) + end - Gem::RemoteFetcher.instance_variable_set :@fetcher, @fetcher + Gem::RemoteFetcher.fetcher = @fetcher @cmd.handle_options %w[--add http://beta-gems.example.com] - util_setup_source_info_cache + util_setup_spec_fetcher use_ui @ui do @cmd.execute @@ -78,7 +86,7 @@ http://beta-gems.example.com added to sources expected = <<-EOF Error fetching http://beta-gems.example.com: -\tit died +\tit died (#{uri}) EOF assert_equal expected, @ui.output @@ -88,12 +96,14 @@ Error fetching http://beta-gems.example.com: def test_execute_add_bad_uri @cmd.handle_options %w[--add beta-gems.example.com] - util_setup_source_info_cache + util_setup_spec_fetcher use_ui @ui do @cmd.execute end + assert_equal [@gem_repo], Gem.sources + expected = <<-EOF beta-gems.example.com is not a URI EOF @@ -102,6 +112,34 @@ beta-gems.example.com is not a URI assert_equal '', @ui.error end + def test_execute_add_legacy + util_setup_fake_fetcher + util_setup_source_info_cache + + si = Gem::SourceIndex.new + si.add_spec @a1 + + @fetcher.data["#{@new_repo}/yaml"] = '' + + @cmd.handle_options %W[--add #{@new_repo}] + + use_ui @ui do + @cmd.execute + end + + assert_equal [@gem_repo], Gem.sources + + expected = <<-EOF +WARNING: RubyGems 1.2+ index not found for: +\t#{@new_repo} + +Will cause RubyGems to revert to legacy indexes, degrading performance. + EOF + + assert_equal "#{@new_repo} added to sources\n", @ui.output + assert_equal expected, @ui.error + end + def test_execute_clear_all @cmd.handle_options %w[--clear-all] @@ -116,11 +154,19 @@ beta-gems.example.com is not a URI assert File.exist?(cache.latest_system_cache_file), 'latest system cache file' + util_setup_spec_fetcher + + fetcher = Gem::SpecFetcher.fetcher + + # HACK figure out how to force directory creation via fetcher + #assert File.directory?(fetcher.dir), 'cache dir exists' + use_ui @ui do @cmd.execute end expected = <<-EOF +*** Removed specs cache *** *** Removed user source cache *** *** Removed latest user source cache *** *** Removed system source cache *** @@ -135,12 +181,13 @@ beta-gems.example.com is not a URI assert !File.exist?(cache.latest_system_cache_file), 'latest system cache file' + assert !File.exist?(fetcher.dir), 'cache dir removed' end def test_execute_remove @cmd.handle_options %W[--remove #{@gem_repo}] - util_setup_source_info_cache + util_setup_spec_fetcher use_ui @ui do @cmd.execute @@ -150,9 +197,6 @@ beta-gems.example.com is not a URI assert_equal expected, @ui.output assert_equal '', @ui.error - - Gem::SourceInfoCache.cache.flush - assert_equal [], Gem::SourceInfoCache.cache_data.keys end def test_execute_remove_no_network @@ -160,7 +204,7 @@ beta-gems.example.com is not a URI util_setup_fake_fetcher - @fetcher.data["#{@gem_repo}/Marshal.#{Gem.marshal_version}"] = proc do + @fetcher.data["#{@gem_repo}Marshal.#{Gem.marshal_version}"] = proc do raise Gem::RemoteFetcher::FetchError end @@ -172,34 +216,60 @@ beta-gems.example.com is not a URI assert_equal expected, @ui.output assert_equal '', @ui.error - - Gem::SourceInfoCache.cache.flush - assert_equal [], Gem::SourceInfoCache.cache_data.keys end def test_execute_update @cmd.handle_options %w[--update] + util_setup_fake_fetcher + source_index = util_setup_spec_fetcher @a1 + + specs = source_index.map do |name, spec| + [spec.name, spec.version, spec.original_platform] + end + + @fetcher.data["#{@gem_repo}specs.#{Gem.marshal_version}.gz"] = + util_gzip Marshal.dump(specs) + + latest_specs = source_index.latest_specs.map do |spec| + [spec.name, spec.version, spec.original_platform] + end + + @fetcher.data["#{@gem_repo}latest_specs.#{Gem.marshal_version}.gz"] = + util_gzip Marshal.dump(latest_specs) + + use_ui @ui do + @cmd.execute + end + + assert_equal "source cache successfully updated\n", @ui.output + assert_equal '', @ui.error + end + + def test_execute_update_legacy + @cmd.handle_options %w[--update] + + util_setup_fake_fetcher util_setup_source_info_cache Gem::SourceInfoCache.reset - util_setup_fake_fetcher si = Gem::SourceIndex.new si.add_spec @a1 - @fetcher.data["#{@gem_repo}/Marshal.#{@marshal_version}"] = si.dump + @fetcher.data["#{@gem_repo}yaml"] = YAML.dump si + @fetcher.data["#{@gem_repo}Marshal.#{@marshal_version}"] = si.dump use_ui @ui do @cmd.execute end expected = <<-EOF -Bulk updating Gem source index for: #{@gem_repo}/ +Bulk updating Gem source index for: #{@gem_repo} source cache successfully updated EOF assert_equal expected, @ui.output assert_equal '', @ui.error end - + end |