rubygems-update 1.3.6 → 1.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of rubygems-update might be problematic. Click here for more details.
- data.tar.gz.sig +0 -0
- data/ChangeLog +86 -0
- data/History.txt +34 -1
- data/Manifest.txt +6 -1
- data/Rakefile +79 -34
- data/lib/rubygems.rb +52 -30
- data/lib/rubygems/builder.rb +2 -0
- data/lib/rubygems/command.rb +12 -0
- data/lib/rubygems/command_manager.rb +17 -12
- data/lib/rubygems/commands/contents_command.rb +1 -1
- data/lib/rubygems/commands/dependency_command.rb +3 -1
- data/lib/rubygems/commands/environment_command.rb +3 -2
- data/lib/rubygems/commands/fetch_command.rb +7 -3
- data/lib/rubygems/commands/install_command.rb +2 -1
- data/lib/rubygems/commands/query_command.rb +16 -3
- data/lib/rubygems/commands/server_command.rb +5 -3
- data/lib/rubygems/commands/setup_command.rb +1 -1
- data/lib/rubygems/commands/unpack_command.rb +35 -23
- data/lib/rubygems/commands/update_command.rb +1 -1
- data/lib/rubygems/defaults.rb +4 -6
- data/lib/rubygems/dependency.rb +32 -6
- data/lib/rubygems/dependency_installer.rb +10 -3
- data/lib/rubygems/doc_manager.rb +5 -2
- data/lib/rubygems/errors.rb +35 -0
- data/lib/rubygems/exceptions.rb +10 -1
- data/lib/rubygems/indexer.rb +1 -1
- data/lib/rubygems/installer.rb +6 -5
- data/lib/rubygems/package.rb +6 -3
- data/lib/rubygems/package/f_sync_dir.rb +4 -3
- data/lib/rubygems/package/tar_header.rb +4 -3
- data/lib/rubygems/package/tar_output.rb +4 -3
- data/lib/rubygems/package/tar_reader.rb +4 -3
- data/lib/rubygems/package/tar_writer.rb +4 -3
- data/lib/rubygems/package_task.rb +4 -3
- data/lib/rubygems/platform.rb +4 -1
- data/lib/rubygems/remote_fetcher.rb +9 -3
- data/lib/rubygems/requirement.rb +5 -0
- data/lib/rubygems/security.rb +3 -3
- data/lib/rubygems/server.rb +33 -18
- data/lib/rubygems/source_index.rb +4 -4
- data/lib/rubygems/source_info_cache.rb +4 -2
- data/lib/rubygems/spec_fetcher.rb +33 -11
- data/lib/rubygems/specification.rb +40 -32
- data/lib/rubygems/test_utilities.rb +2 -2
- data/lib/rubygems/validator.rb +3 -4
- data/lib/rubygems/version.rb +1 -1
- data/test/gem_package_tar_test_case.rb +2 -2
- data/test/gemutilities.rb +15 -9
- data/test/insure_session.rb +1 -1
- data/test/plugin/exception/rubygems_plugin.rb +2 -0
- data/test/plugin/load/rubygems_plugin.rb +1 -0
- data/test/plugin/standarderror/rubygems_plugin.rb +2 -0
- data/test/rubygems/commands/crash_command.rb +5 -0
- data/test/rubygems_plugin.rb +5 -0
- data/test/simple_gem.rb +15 -15
- data/test/test_gem.rb +45 -2
- data/test/test_gem_command_manager.rb +14 -0
- data/test/test_gem_commands_contents_command.rb +7 -5
- data/test/test_gem_commands_environment_command.rb +3 -1
- data/test/test_gem_commands_fetch_command.rb +21 -1
- data/test/test_gem_commands_install_command.rb +2 -4
- data/test/test_gem_commands_query_command.rb +33 -6
- data/test/test_gem_commands_server_command.rb +9 -2
- data/test/test_gem_commands_uninstall_command.rb +4 -2
- data/test/test_gem_commands_unpack_command.rb +46 -2
- data/test/test_gem_config_file.rb +2 -0
- data/test/test_gem_dependency.rb +11 -0
- data/test/test_gem_doc_manager.rb +1 -1
- data/test/test_gem_indexer.rb +2 -2
- data/test/test_gem_installer.rb +1 -1
- data/test/test_gem_package_tar_input.rb +1 -1
- data/test/test_gem_package_tar_writer.rb +3 -3
- data/test/test_gem_platform.rb +19 -0
- data/test/test_gem_server.rb +11 -0
- data/test/test_gem_source_index.rb +2 -2
- data/test/test_gem_spec_fetcher.rb +42 -0
- data/test/test_gem_specification.rb +46 -7
- data/util/{gem_prelude.rb.template → gem_prelude.rb} +53 -23
- metadata +16 -6
- metadata.gz.sig +0 -0
    
        data/test/test_gem.rb
    CHANGED
    
    | @@ -16,6 +16,8 @@ class TestGem < RubyGemTestCase | |
| 16 16 | 
             
                                  else
         | 
| 17 17 | 
             
                                    %r|/[Rr]uby/[Gg]ems/[0-9.]+|
         | 
| 18 18 | 
             
                                  end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                util_remove_interrupt_command
         | 
| 19 21 | 
             
              end
         | 
| 20 22 |  | 
| 21 23 | 
             
              def test_self_all_load_paths
         | 
| @@ -258,6 +260,8 @@ class TestGem < RubyGemTestCase | |
| 258 260 |  | 
| 259 261 | 
             
              def test_self_find_files
         | 
| 260 262 | 
             
                discover_path = File.join 'lib', 'foo', 'discover.rb'
         | 
| 263 | 
            +
                cwd = File.expand_path '..', __FILE__
         | 
| 264 | 
            +
                $LOAD_PATH.unshift cwd.dup
         | 
| 261 265 |  | 
| 262 266 | 
             
                foo1 = quick_gem 'foo', '1' do |s|
         | 
| 263 267 | 
             
                  s.files << discover_path
         | 
| @@ -281,12 +285,14 @@ class TestGem < RubyGemTestCase | |
| 281 285 | 
             
                Gem.searcher = nil
         | 
| 282 286 |  | 
| 283 287 | 
             
                expected = [
         | 
| 284 | 
            -
                  File.expand_path('foo/discover.rb',  | 
| 288 | 
            +
                  File.expand_path('../foo/discover.rb', __FILE__),
         | 
| 285 289 | 
             
                  File.join(foo2.full_gem_path, discover_path),
         | 
| 286 290 | 
             
                  File.join(foo1.full_gem_path, discover_path),
         | 
| 287 291 | 
             
                ]
         | 
| 288 292 |  | 
| 289 293 | 
             
                assert_equal expected, Gem.find_files('foo/discover')
         | 
| 294 | 
            +
              ensure
         | 
| 295 | 
            +
                assert_equal cwd, $LOAD_PATH.shift
         | 
| 290 296 | 
             
              end
         | 
| 291 297 |  | 
| 292 298 | 
             
              def test_self_latest_load_paths
         | 
| @@ -437,7 +443,7 @@ class TestGem < RubyGemTestCase | |
| 437 443 | 
             
              def test_self_refresh
         | 
| 438 444 | 
             
                util_make_gems
         | 
| 439 445 |  | 
| 440 | 
            -
                a1_spec = File.join @gemhome, "specifications", @a1.spec_name | 
| 446 | 
            +
                a1_spec = File.join @gemhome, "specifications", @a1.spec_name
         | 
| 441 447 |  | 
| 442 448 | 
             
                FileUtils.mv a1_spec, @tempdir
         | 
| 443 449 |  | 
| @@ -613,6 +619,38 @@ class TestGem < RubyGemTestCase | |
| 613 619 | 
             
                ENV['USERPATH'] = orig_user_path
         | 
| 614 620 | 
             
              end if '1.9' > RUBY_VERSION
         | 
| 615 621 |  | 
| 622 | 
            +
              def test_load_plugins
         | 
| 623 | 
            +
                with_plugin('load') { Gem.load_plugins }
         | 
| 624 | 
            +
                assert_equal :loaded, TEST_PLUGIN_LOAD
         | 
| 625 | 
            +
             | 
| 626 | 
            +
                util_remove_interrupt_command
         | 
| 627 | 
            +
             | 
| 628 | 
            +
                # Should attempt to cause a StandardError
         | 
| 629 | 
            +
                with_plugin('standarderror') { Gem.load_plugins }
         | 
| 630 | 
            +
                assert_equal :loaded, TEST_PLUGIN_STANDARDERROR
         | 
| 631 | 
            +
             | 
| 632 | 
            +
                util_remove_interrupt_command
         | 
| 633 | 
            +
             | 
| 634 | 
            +
                # Should attempt to cause an Exception
         | 
| 635 | 
            +
                with_plugin('exception') { Gem.load_plugins }
         | 
| 636 | 
            +
                assert_equal :loaded, TEST_PLUGIN_EXCEPTION
         | 
| 637 | 
            +
              end
         | 
| 638 | 
            +
             | 
| 639 | 
            +
              def with_plugin(path)
         | 
| 640 | 
            +
                test_plugin_path = File.expand_path "../plugin/#{path}", __FILE__
         | 
| 641 | 
            +
             | 
| 642 | 
            +
                # A single test plugin should get loaded once only, in order to preserve
         | 
| 643 | 
            +
                # sane test semantics.
         | 
| 644 | 
            +
                refute_includes $LOAD_PATH, test_plugin_path
         | 
| 645 | 
            +
                $LOAD_PATH.unshift test_plugin_path
         | 
| 646 | 
            +
             | 
| 647 | 
            +
                capture_io do
         | 
| 648 | 
            +
                  yield
         | 
| 649 | 
            +
                end
         | 
| 650 | 
            +
              ensure
         | 
| 651 | 
            +
                $LOAD_PATH.delete test_plugin_path
         | 
| 652 | 
            +
              end
         | 
| 653 | 
            +
             | 
| 616 654 | 
             
              def util_ensure_gem_dirs
         | 
| 617 655 | 
             
                Gem.ensure_gem_subdirectories @gemhome
         | 
| 618 656 | 
             
                @additional.each do |dir|
         | 
| @@ -661,5 +699,10 @@ class TestGem < RubyGemTestCase | |
| 661 699 | 
             
                  defined?(@RUBY_REVISION)
         | 
| 662 700 | 
             
              end
         | 
| 663 701 |  | 
| 702 | 
            +
              def util_remove_interrupt_command
         | 
| 703 | 
            +
                Gem::Commands.send :remove_const, :InterruptCommand if
         | 
| 704 | 
            +
                  Gem::Commands.const_defined? :InterruptCommand
         | 
| 705 | 
            +
              end
         | 
| 706 | 
            +
             | 
| 664 707 | 
             
            end
         | 
| 665 708 |  | 
| @@ -10,6 +10,8 @@ class TestGemCommandManager < RubyGemTestCase | |
| 10 10 | 
             
              end
         | 
| 11 11 |  | 
| 12 12 | 
             
              def test_run_interrupt
         | 
| 13 | 
            +
                Gem.load_plugins
         | 
| 14 | 
            +
             | 
| 13 15 | 
             
                use_ui @ui do
         | 
| 14 16 | 
             
                  assert_raises MockGemUi::TermError do
         | 
| 15 17 | 
             
                    @command_manager.run 'interrupt'
         | 
| @@ -19,6 +21,18 @@ class TestGemCommandManager < RubyGemTestCase | |
| 19 21 | 
             
                end
         | 
| 20 22 | 
             
              end
         | 
| 21 23 |  | 
| 24 | 
            +
              def test_run_crash_command
         | 
| 25 | 
            +
                @command_manager.register_command :crash
         | 
| 26 | 
            +
                use_ui @ui do
         | 
| 27 | 
            +
                  assert_raises MockGemUi::TermError do
         | 
| 28 | 
            +
                    @command_manager.run 'crash'
         | 
| 29 | 
            +
                  end
         | 
| 30 | 
            +
                  assert_equal '', ui.output
         | 
| 31 | 
            +
                  err = ui.error.split("\n").first
         | 
| 32 | 
            +
                  assert_equal "ERROR:  Loading command: crash (RuntimeError)", err
         | 
| 33 | 
            +
                end
         | 
| 34 | 
            +
              end
         | 
| 35 | 
            +
             | 
| 22 36 | 
             
              def test_process_args_bad_arg
         | 
| 23 37 | 
             
                use_ui @ui do
         | 
| 24 38 | 
             
                  assert_raises(MockGemUi::TermError) {
         | 
| @@ -139,13 +139,15 @@ Rakefile | |
| 139 139 | 
             
              end
         | 
| 140 140 |  | 
| 141 141 | 
             
              def test_handle_options
         | 
| 142 | 
            -
                 | 
| 143 | 
            -
                 | 
| 144 | 
            -
                 | 
| 142 | 
            +
                refute @cmd.options[:lib_only]
         | 
| 143 | 
            +
                assert @cmd.options[:prefix]
         | 
| 144 | 
            +
                assert_empty @cmd.options[:specdirs]
         | 
| 145 | 
            +
                assert_nil @cmd.options[:version]
         | 
| 145 146 |  | 
| 146 | 
            -
                @cmd.send :handle_options, %w[-l -s foo --version 0.0.2]
         | 
| 147 | 
            +
                @cmd.send :handle_options, %w[-l -s foo --version 0.0.2 --no-prefix]
         | 
| 147 148 |  | 
| 148 | 
            -
                 | 
| 149 | 
            +
                assert @cmd.options[:lib_only]
         | 
| 150 | 
            +
                refute @cmd.options[:prefix]
         | 
| 149 151 | 
             
                assert_equal %w[foo], @cmd.options[:specdirs]
         | 
| 150 152 | 
             
                assert_equal Gem::Requirement.new('0.0.2'), @cmd.options[:version]
         | 
| 151 153 | 
             
              end
         | 
| @@ -12,6 +12,7 @@ class TestGemCommandsEnvironmentCommand < RubyGemTestCase | |
| 12 12 | 
             
              def test_execute
         | 
| 13 13 | 
             
                orig_sources = Gem.sources.dup
         | 
| 14 14 | 
             
                Gem.sources.replace %w[http://gems.example.com]
         | 
| 15 | 
            +
                Gem.configuration['gemcutter_key'] = 'blah'
         | 
| 15 16 |  | 
| 16 17 | 
             
                @cmd.send :handle_options, %w[]
         | 
| 17 18 |  | 
| @@ -32,6 +33,7 @@ class TestGemCommandsEnvironmentCommand < RubyGemTestCase | |
| 32 33 | 
             
                assert_match %r|GEM PATHS:|, @ui.output
         | 
| 33 34 | 
             
                assert_match %r|- #{Regexp.escape @gemhome}|, @ui.output
         | 
| 34 35 | 
             
                assert_match %r|GEM CONFIGURATION:|, @ui.output
         | 
| 36 | 
            +
                assert_match %r|"gemcutter_key" => "\*\*\*\*"|, @ui.output
         | 
| 35 37 | 
             
                assert_match %r|:verbose => |, @ui.output
         | 
| 36 38 | 
             
                assert_match %r|REMOTE SOURCES:|, @ui.output
         | 
| 37 39 | 
             
                assert_equal '', @ui.error
         | 
| @@ -125,7 +127,7 @@ class TestGemCommandsEnvironmentCommand < RubyGemTestCase | |
| 125 127 | 
             
                  @cmd.execute
         | 
| 126 128 | 
             
                end
         | 
| 127 129 |  | 
| 128 | 
            -
                assert_equal "#{Gem:: | 
| 130 | 
            +
                assert_equal "#{Gem::VERSION}\n", @ui.output
         | 
| 129 131 | 
             
                assert_equal '', @ui.error
         | 
| 130 132 | 
             
              end
         | 
| 131 133 |  | 
| @@ -27,7 +27,7 @@ class TestGemCommandsFetchCommand < RubyGemTestCase | |
| 27 27 | 
             
                end
         | 
| 28 28 |  | 
| 29 29 | 
             
                assert File.exist?(File.join(@tempdir, @a2.file_name)),
         | 
| 30 | 
            -
                       "#{@a2.full_name} fetched"
         | 
| 30 | 
            +
                       "#{@a2.full_name} not fetched"
         | 
| 31 31 | 
             
              end
         | 
| 32 32 |  | 
| 33 33 | 
             
              def test_execute_prerelease
         | 
| @@ -52,5 +52,25 @@ class TestGemCommandsFetchCommand < RubyGemTestCase | |
| 52 52 | 
             
                       "#{@a2_pre.full_name} not fetched"
         | 
| 53 53 | 
             
              end
         | 
| 54 54 |  | 
| 55 | 
            +
              def test_execute_version
         | 
| 56 | 
            +
                util_setup_fake_fetcher
         | 
| 57 | 
            +
                util_setup_spec_fetcher @a1, @a2
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                @fetcher.data["#{@gem_repo}gems/#{@a1.file_name}"] =
         | 
| 60 | 
            +
                  File.read(File.join(@gemhome, 'cache', @a1.file_name))
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                @cmd.options[:args] = [@a2.name]
         | 
| 63 | 
            +
                @cmd.options[:version] = Gem::Requirement.new '1'
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                use_ui @ui do
         | 
| 66 | 
            +
                  Dir.chdir @tempdir do
         | 
| 67 | 
            +
                    @cmd.execute
         | 
| 68 | 
            +
                  end
         | 
| 69 | 
            +
                end
         | 
| 70 | 
            +
             | 
| 71 | 
            +
                assert File.exist?(File.join(@tempdir, @a1.file_name)),
         | 
| 72 | 
            +
                       "#{@a1.full_name} not fetched"
         | 
| 73 | 
            +
              end
         | 
| 74 | 
            +
             | 
| 55 75 | 
             
            end
         | 
| 56 76 |  | 
| @@ -145,8 +145,7 @@ class TestGemCommandsInstallCommand < RubyGemTestCase | |
| 145 145 | 
             
                end
         | 
| 146 146 |  | 
| 147 147 | 
             
                # HACK no repository was checked
         | 
| 148 | 
            -
                 | 
| 149 | 
            -
                             @ui.error
         | 
| 148 | 
            +
                assert_match(/ould not find a valid gem 'no_such_gem'/, @ui.error)
         | 
| 150 149 | 
             
              end
         | 
| 151 150 |  | 
| 152 151 | 
             
              def test_execute_no_gem
         | 
| @@ -170,8 +169,7 @@ class TestGemCommandsInstallCommand < RubyGemTestCase | |
| 170 169 | 
             
                  assert_equal 2, e.exit_code
         | 
| 171 170 | 
             
                end
         | 
| 172 171 |  | 
| 173 | 
            -
                 | 
| 174 | 
            -
                             @ui.error
         | 
| 172 | 
            +
                assert_match(/ould not find a valid gem 'nonexistent'/, @ui.error)
         | 
| 175 173 | 
             
              end
         | 
| 176 174 |  | 
| 177 175 | 
             
              def test_execute_prerelease
         | 
| @@ -29,7 +29,34 @@ class TestGemCommandsQueryCommand < RubyGemTestCase | |
| 29 29 | 
             
            *** REMOTE GEMS ***
         | 
| 30 30 |  | 
| 31 31 | 
             
            a (2)
         | 
| 32 | 
            -
            pl (1)
         | 
| 32 | 
            +
            pl (1 i386-linux)
         | 
| 33 | 
            +
                EOF
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                assert_equal expected, @ui.output
         | 
| 36 | 
            +
                assert_equal '', @ui.error
         | 
| 37 | 
            +
              end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
              def test_execute_platform
         | 
| 40 | 
            +
                @a1r = @a1.dup
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                @a1.platform = 'x86-linux'
         | 
| 43 | 
            +
                @a2.platform = 'universal-darwin'
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                @si = util_setup_spec_fetcher @a1, @a1r, @a2, @b2, @pl1
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                @cmd.handle_options %w[-r -a]
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                use_ui @ui do
         | 
| 50 | 
            +
                  @cmd.execute
         | 
| 51 | 
            +
                end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                expected = <<-EOF
         | 
| 54 | 
            +
             | 
| 55 | 
            +
            *** REMOTE GEMS ***
         | 
| 56 | 
            +
             | 
| 57 | 
            +
            a (2 universal-darwin, 1 ruby x86-linux)
         | 
| 58 | 
            +
            b (2)
         | 
| 59 | 
            +
            pl (1 i386-linux)
         | 
| 33 60 | 
             
                EOF
         | 
| 34 61 |  | 
| 35 62 | 
             
                assert_equal expected, @ui.output
         | 
| @@ -51,7 +78,7 @@ pl (1) | |
| 51 78 | 
             
            *** REMOTE GEMS ***
         | 
| 52 79 |  | 
| 53 80 | 
             
            a (2, 1)
         | 
| 54 | 
            -
            pl (1)
         | 
| 81 | 
            +
            pl (1 i386-linux)
         | 
| 55 82 | 
             
                EOF
         | 
| 56 83 |  | 
| 57 84 | 
             
                assert_equal expected, @ui.output
         | 
| @@ -73,7 +100,7 @@ pl (1) | |
| 73 100 | 
             
            *** REMOTE GEMS ***
         | 
| 74 101 |  | 
| 75 102 | 
             
            a (3.a, 2, 1)
         | 
| 76 | 
            -
            pl (1)
         | 
| 103 | 
            +
            pl (1 i386-linux)
         | 
| 77 104 | 
             
                EOF
         | 
| 78 105 |  | 
| 79 106 | 
             
                assert_equal expected, @ui.output
         | 
| @@ -311,7 +338,7 @@ a (3.a, 2, 1) | |
| 311 338 | 
             
            a_evil (9)
         | 
| 312 339 | 
             
            b (2)
         | 
| 313 340 | 
             
            c (1.2)
         | 
| 314 | 
            -
            pl (1)
         | 
| 341 | 
            +
            pl (1 i386-linux)
         | 
| 315 342 | 
             
                EOF
         | 
| 316 343 |  | 
| 317 344 | 
             
                assert_equal expected, @ui.output
         | 
| @@ -348,7 +375,7 @@ pl | |
| 348 375 |  | 
| 349 376 | 
             
                expected = <<-EOF
         | 
| 350 377 | 
             
            a (2)
         | 
| 351 | 
            -
            pl (1)
         | 
| 378 | 
            +
            pl (1 i386-linux)
         | 
| 352 379 | 
             
                EOF
         | 
| 353 380 |  | 
| 354 381 | 
             
                assert_equal expected, @ui.output
         | 
| @@ -388,7 +415,7 @@ a (3.a, 2, 1) | |
| 388 415 | 
             
            a_evil (9)
         | 
| 389 416 | 
             
            b (2)
         | 
| 390 417 | 
             
            c (1.2)
         | 
| 391 | 
            -
            pl (1)
         | 
| 418 | 
            +
            pl (1 i386-linux)
         | 
| 392 419 | 
             
                EOF
         | 
| 393 420 |  | 
| 394 421 | 
             
                assert_equal expected, @ui.output
         | 
| @@ -13,16 +13,23 @@ class TestGemCommandsServerCommand < RubyGemTestCase | |
| 13 13 | 
             
                @cmd.send :handle_options, %w[-p 8808 --no-daemon]
         | 
| 14 14 |  | 
| 15 15 | 
             
                assert_equal false, @cmd.options[:daemon]
         | 
| 16 | 
            -
                assert_equal  | 
| 16 | 
            +
                assert_equal [], @cmd.options[:gemdir]
         | 
| 17 17 | 
             
                assert_equal 8808, @cmd.options[:port]
         | 
| 18 18 |  | 
| 19 19 | 
             
                @cmd.send :handle_options, %w[-p 9999 -d /nonexistent --daemon]
         | 
| 20 20 |  | 
| 21 21 | 
             
                assert_equal true, @cmd.options[:daemon]
         | 
| 22 | 
            -
                assert_equal File.expand_path('/nonexistent'), @cmd.options[:gemdir]
         | 
| 22 | 
            +
                assert_equal [File.expand_path('/nonexistent')], @cmd.options[:gemdir]
         | 
| 23 23 | 
             
                assert_equal 9999, @cmd.options[:port]
         | 
| 24 24 | 
             
              end
         | 
| 25 25 |  | 
| 26 | 
            +
              def test_handle_options_gemdir
         | 
| 27 | 
            +
                @cmd.send :handle_options, %w[--dir a --dir b]
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                assert_equal [File.expand_path('a'), File.expand_path('b')],
         | 
| 30 | 
            +
                             @cmd.options[:gemdir]
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
             | 
| 26 33 | 
             
              def test_handle_options_port
         | 
| 27 34 | 
             
                @cmd.send :handle_options, %w[-p 0]
         | 
| 28 35 | 
             
                assert_equal 0, @cmd.options[:port]
         | 
| @@ -22,8 +22,8 @@ class TestGemCommandsUnpackCommand < RubyGemTestCase | |
| 22 22 | 
             
                  end
         | 
| 23 23 | 
             
                end
         | 
| 24 24 |  | 
| 25 | 
            -
                assert File.exist?(File.join(@tempdir, 'a-3.a')), 'a should be  | 
| 26 | 
            -
                assert File.exist?(File.join(@tempdir, 'b-2')),   'b should be  | 
| 25 | 
            +
                assert File.exist?(File.join(@tempdir, 'a-3.a')), 'a should be unpacked'
         | 
| 26 | 
            +
                assert File.exist?(File.join(@tempdir, 'b-2')),   'b should be unpacked'
         | 
| 27 27 | 
             
              end
         | 
| 28 28 |  | 
| 29 29 | 
             
              def test_execute_gem_path
         | 
| @@ -49,6 +49,7 @@ class TestGemCommandsUnpackCommand < RubyGemTestCase | |
| 49 49 |  | 
| 50 50 | 
             
              def test_execute_gem_path_missing
         | 
| 51 51 | 
             
                util_make_gems
         | 
| 52 | 
            +
                util_setup_spec_fetcher
         | 
| 52 53 |  | 
| 53 54 | 
             
                Gem.clear_paths
         | 
| 54 55 |  | 
| @@ -68,6 +69,49 @@ class TestGemCommandsUnpackCommand < RubyGemTestCase | |
| 68 69 | 
             
                assert_equal '', @ui.output
         | 
| 69 70 | 
             
              end
         | 
| 70 71 |  | 
| 72 | 
            +
              def test_execute_remote
         | 
| 73 | 
            +
                util_setup_fake_fetcher
         | 
| 74 | 
            +
                util_setup_spec_fetcher @a1, @a2
         | 
| 75 | 
            +
                util_clear_gems
         | 
| 76 | 
            +
             | 
| 77 | 
            +
                a2_data = nil
         | 
| 78 | 
            +
                open File.join(@gemhome, 'cache', @a2.file_name), 'rb' do |fp|
         | 
| 79 | 
            +
                  a2_data = fp.read
         | 
| 80 | 
            +
                end
         | 
| 81 | 
            +
             | 
| 82 | 
            +
                Gem::RemoteFetcher.fetcher.data['http://gems.example.com/gems/a-2.gem'] =
         | 
| 83 | 
            +
                  a2_data
         | 
| 84 | 
            +
             | 
| 85 | 
            +
                Gem.configuration.verbose = :really
         | 
| 86 | 
            +
                @cmd.options[:args] = %w[a]
         | 
| 87 | 
            +
             | 
| 88 | 
            +
                use_ui @ui do
         | 
| 89 | 
            +
                  Dir.chdir @tempdir do
         | 
| 90 | 
            +
                    @cmd.execute
         | 
| 91 | 
            +
                  end
         | 
| 92 | 
            +
                end
         | 
| 93 | 
            +
             | 
| 94 | 
            +
                assert File.exist?(File.join(@tempdir, 'a-2')), 'a should be unpacked'
         | 
| 95 | 
            +
              end
         | 
| 96 | 
            +
             | 
| 97 | 
            +
              def test_execute_sudo
         | 
| 98 | 
            +
                util_make_gems
         | 
| 99 | 
            +
             | 
| 100 | 
            +
                File.chmod 0555, @gemhome
         | 
| 101 | 
            +
             | 
| 102 | 
            +
                @cmd.options[:args] = %w[b]
         | 
| 103 | 
            +
             | 
| 104 | 
            +
                use_ui @ui do
         | 
| 105 | 
            +
                  Dir.chdir @tempdir do
         | 
| 106 | 
            +
                    @cmd.execute
         | 
| 107 | 
            +
                  end
         | 
| 108 | 
            +
                end
         | 
| 109 | 
            +
             | 
| 110 | 
            +
                assert File.exist?(File.join(@tempdir, 'b-2')), 'b should be unpacked'
         | 
| 111 | 
            +
              ensure
         | 
| 112 | 
            +
                File.chmod 0755, @gemhome
         | 
| 113 | 
            +
              end
         | 
| 114 | 
            +
             | 
| 71 115 | 
             
              def test_execute_with_target_option
         | 
| 72 116 | 
             
                util_make_gems
         | 
| 73 117 |  | 
| @@ -46,6 +46,7 @@ class TestGemConfigFile < RubyGemTestCase | |
| 46 46 | 
             
                  fp.puts ":benchmark: true"
         | 
| 47 47 | 
             
                  fp.puts ":bulk_threshold: 10"
         | 
| 48 48 | 
             
                  fp.puts ":verbose: false"
         | 
| 49 | 
            +
                  fp.puts ":rubygems_api_key: 701229f217cdf23b1344c7b4b54ca97"
         | 
| 49 50 | 
             
                  fp.puts ":sources:"
         | 
| 50 51 | 
             
                  fp.puts "  - http://more-gems.example.com"
         | 
| 51 52 | 
             
                  fp.puts "install: --wrappers"
         | 
| @@ -61,6 +62,7 @@ class TestGemConfigFile < RubyGemTestCase | |
| 61 62 | 
             
                assert_equal 10, @cfg.bulk_threshold
         | 
| 62 63 | 
             
                assert_equal false, @cfg.verbose
         | 
| 63 64 | 
             
                assert_equal false, @cfg.update_sources
         | 
| 65 | 
            +
                assert_equal "701229f217cdf23b1344c7b4b54ca97", @cfg.rubygems_api_key
         | 
| 64 66 | 
             
                assert_equal %w[http://more-gems.example.com], Gem.sources
         | 
| 65 67 | 
             
                assert_equal '--wrappers', @cfg[:install]
         | 
| 66 68 | 
             
                assert_equal(['/usr/ruby/1.8/lib/ruby/gems/1.8', '/var/ruby/1.8/gem_home'],
         | 
    
        data/test/test_gem_dependency.rb
    CHANGED
    
    | @@ -134,5 +134,16 @@ class TestGemDependency < RubyGemTestCase | |
| 134 134 | 
             
                assert d.prerelease?
         | 
| 135 135 | 
             
              end
         | 
| 136 136 |  | 
| 137 | 
            +
              def test_version_requirements_equals_deprecated
         | 
| 138 | 
            +
                d = dep "pkg", "1.0"
         | 
| 139 | 
            +
             | 
| 140 | 
            +
                out, err = capture_io do
         | 
| 141 | 
            +
                  d.version_requirements = '2.0'
         | 
| 142 | 
            +
                  assert_equal Gem::Requirement.new(%w[2.0]), d.requirement
         | 
| 143 | 
            +
                end
         | 
| 144 | 
            +
             | 
| 145 | 
            +
                assert_match %r%deprecated%, err
         | 
| 146 | 
            +
              end
         | 
| 147 | 
            +
             | 
| 137 148 | 
             
            end
         | 
| 138 149 |  | 
| @@ -12,7 +12,7 @@ class TestGemDocManager < RubyGemTestCase | |
| 12 12 |  | 
| 13 13 | 
             
              def test_uninstall_doc_unwritable
         | 
| 14 14 | 
             
                orig_mode = File.stat(@spec.installation_path).mode
         | 
| 15 | 
            -
             | 
| 15 | 
            +
             | 
| 16 16 | 
             
                # File.chmod has no effect on MS Windows directories (it needs ACL).
         | 
| 17 17 | 
             
                if win_platform?
         | 
| 18 18 | 
             
                  skip("test_uninstall_doc_unwritable skipped on MS Windows")
         |