rubygems-update 3.3.18 → 3.3.22
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +65 -0
- data/Manifest.txt +11 -0
- data/bin/gem +2 -2
- data/bin/update_rubygems +4 -4
- data/bundler/CHANGELOG.md +100 -0
- data/bundler/UPGRADING.md +11 -4
- data/bundler/bundler.gemspec +6 -8
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli/common.rb +1 -0
- data/bundler/lib/bundler/cli/install.rb +5 -2
- data/bundler/lib/bundler/cli/outdated.rb +12 -3
- data/bundler/lib/bundler/cli/platform.rb +1 -1
- data/bundler/lib/bundler/cli.rb +7 -4
- data/bundler/lib/bundler/current_ruby.rb +14 -5
- data/bundler/lib/bundler/definition.rb +102 -31
- data/bundler/lib/bundler/dependency.rb +18 -85
- data/bundler/lib/bundler/dsl.rb +2 -2
- data/bundler/lib/bundler/endpoint_specification.rb +2 -13
- data/bundler/lib/bundler/feature_flag.rb +0 -1
- data/bundler/lib/bundler/fetcher.rb +6 -6
- data/bundler/lib/bundler/gem_helpers.rb +7 -1
- data/bundler/lib/bundler/gem_version_promoter.rb +8 -18
- data/bundler/lib/bundler/index.rb +10 -12
- data/bundler/lib/bundler/injector.rb +2 -1
- data/bundler/lib/bundler/inline.rb +1 -1
- data/bundler/lib/bundler/installer/standalone.rb +1 -1
- data/bundler/lib/bundler/installer.rb +14 -12
- data/bundler/lib/bundler/lazy_specification.rb +30 -23
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/man/bundle-add.1 +6 -2
- data/bundler/lib/bundler/man/bundle-add.1.ronn +4 -1
- data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/bundler/lib/bundler/man/bundle-cache.1 +7 -1
- data/bundler/lib/bundler/man/bundle-cache.1.ronn +7 -0
- data/bundler/lib/bundler/man/bundle-check.1 +1 -1
- data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
- data/bundler/lib/bundler/man/bundle-config.1 +25 -6
- data/bundler/lib/bundler/man/bundle-config.1.ronn +16 -6
- data/bundler/lib/bundler/man/bundle-console.1 +53 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
- data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/lib/bundler/man/bundle-exec.1 +2 -2
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
- data/bundler/lib/bundler/man/bundle-help.1 +13 -0
- data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/bundler/lib/bundler/man/bundle-info.1 +1 -1
- data/bundler/lib/bundler/man/bundle-init.1 +1 -1
- data/bundler/lib/bundler/man/bundle-inject.1 +5 -2
- data/bundler/lib/bundler/man/bundle-inject.1.ronn +3 -1
- data/bundler/lib/bundler/man/bundle-install.1 +5 -1
- data/bundler/lib/bundler/man/bundle-install.1.ronn +6 -0
- data/bundler/lib/bundler/man/bundle-list.1 +1 -1
- data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
- data/bundler/lib/bundler/man/bundle-open.1 +1 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
- data/bundler/lib/bundler/man/bundle-platform.1 +16 -6
- data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
- data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
- data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
- data/bundler/lib/bundler/man/bundle-show.1 +1 -1
- data/bundler/lib/bundler/man/bundle-update.1 +1 -1
- data/bundler/lib/bundler/man/bundle-version.1 +35 -0
- data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
- data/bundler/lib/bundler/man/bundle-viz.1 +4 -1
- data/bundler/lib/bundler/man/bundle-viz.1.ronn +2 -0
- data/bundler/lib/bundler/man/bundle.1 +15 -10
- data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
- data/bundler/lib/bundler/man/gemfile.5 +23 -47
- data/bundler/lib/bundler/man/gemfile.5.ronn +32 -43
- data/bundler/lib/bundler/man/index.txt +4 -0
- data/bundler/lib/bundler/match_metadata.rb +13 -0
- data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
- data/bundler/lib/bundler/plugin.rb +2 -0
- data/bundler/lib/bundler/remote_specification.rb +6 -11
- data/bundler/lib/bundler/resolver/base.rb +50 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +11 -8
- data/bundler/lib/bundler/resolver.rb +95 -90
- data/bundler/lib/bundler/ruby_dsl.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +5 -5
- data/bundler/lib/bundler/rubygems_ext.rb +52 -1
- data/bundler/lib/bundler/rubygems_gem_installer.rb +19 -12
- data/bundler/lib/bundler/settings.rb +1 -1
- data/bundler/lib/bundler/source/metadata.rb +1 -1
- data/bundler/lib/bundler/source_list.rb +4 -0
- data/bundler/lib/bundler/spec_set.rb +48 -33
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler.rb +3 -3
- data/lib/rubygems/available_set.rb +3 -3
- data/lib/rubygems/basic_specification.rb +4 -4
- data/lib/rubygems/command.rb +25 -25
- data/lib/rubygems/command_manager.rb +9 -9
- data/lib/rubygems/commands/build_command.rb +8 -8
- data/lib/rubygems/commands/cert_command.rb +33 -33
- data/lib/rubygems/commands/check_command.rb +20 -20
- data/lib/rubygems/commands/cleanup_command.rb +17 -17
- data/lib/rubygems/commands/contents_command.rb +13 -13
- data/lib/rubygems/commands/dependency_command.rb +16 -16
- data/lib/rubygems/commands/environment_command.rb +5 -5
- data/lib/rubygems/commands/fetch_command.rb +8 -8
- data/lib/rubygems/commands/generate_index_command.rb +17 -17
- data/lib/rubygems/commands/help_command.rb +3 -3
- data/lib/rubygems/commands/info_command.rb +3 -3
- data/lib/rubygems/commands/install_command.rb +20 -20
- data/lib/rubygems/commands/list_command.rb +3 -3
- data/lib/rubygems/commands/lock_command.rb +4 -4
- data/lib/rubygems/commands/mirror_command.rb +3 -3
- data/lib/rubygems/commands/open_command.rb +9 -9
- data/lib/rubygems/commands/outdated_command.rb +5 -5
- data/lib/rubygems/commands/owner_command.rb +11 -11
- data/lib/rubygems/commands/pristine_command.rb +36 -36
- data/lib/rubygems/commands/push_command.rb +8 -8
- data/lib/rubygems/commands/query_command.rb +8 -8
- data/lib/rubygems/commands/rdoc_command.rb +17 -17
- data/lib/rubygems/commands/search_command.rb +3 -3
- data/lib/rubygems/commands/server_command.rb +3 -3
- data/lib/rubygems/commands/setup_command.rb +96 -106
- data/lib/rubygems/commands/signin_command.rb +9 -9
- data/lib/rubygems/commands/signout_command.rb +7 -7
- data/lib/rubygems/commands/sources_command.rb +21 -21
- data/lib/rubygems/commands/specification_command.rb +13 -13
- data/lib/rubygems/commands/stale_command.rb +2 -2
- data/lib/rubygems/commands/uninstall_command.rb +40 -40
- data/lib/rubygems/commands/unpack_command.rb +12 -12
- data/lib/rubygems/commands/update_command.rb +40 -56
- data/lib/rubygems/commands/which_command.rb +7 -7
- data/lib/rubygems/commands/yank_command.rb +11 -11
- data/lib/rubygems/config_file.rb +21 -21
- data/lib/rubygems/core_ext/kernel_gem.rb +1 -1
- data/lib/rubygems/core_ext/kernel_require.rb +1 -1
- data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
- data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
- data/lib/rubygems/defaults.rb +16 -16
- data/lib/rubygems/dependency.rb +9 -9
- data/lib/rubygems/dependency_installer.rb +13 -13
- data/lib/rubygems/dependency_list.rb +6 -6
- data/lib/rubygems/doctor.rb +18 -18
- data/lib/rubygems/errors.rb +2 -2
- data/lib/rubygems/exceptions.rb +5 -5
- data/lib/rubygems/ext/build_error.rb +1 -1
- data/lib/rubygems/ext/builder.rb +16 -16
- data/lib/rubygems/ext/cargo_builder.rb +7 -7
- data/lib/rubygems/ext/cmake_builder.rb +2 -2
- data/lib/rubygems/ext/configure_builder.rb +1 -1
- data/lib/rubygems/ext/ext_conf_builder.rb +8 -8
- data/lib/rubygems/ext/rake_builder.rb +3 -3
- data/lib/rubygems/ext.rb +7 -7
- data/lib/rubygems/gem_runner.rb +5 -5
- data/lib/rubygems/gemcutter_utilities.rb +31 -28
- data/lib/rubygems/indexer.rb +27 -27
- data/lib/rubygems/install_default_message.rb +2 -2
- data/lib/rubygems/install_message.rb +2 -2
- data/lib/rubygems/install_update_options.rb +55 -55
- data/lib/rubygems/installer.rb +32 -40
- data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
- data/lib/rubygems/local_remote_options.rb +18 -20
- data/lib/rubygems/mock_gem_ui.rb +2 -2
- data/lib/rubygems/name_tuple.rb +4 -4
- data/lib/rubygems/optparse.rb +1 -1
- data/lib/rubygems/package/file_source.rb +2 -2
- data/lib/rubygems/package/old.rb +8 -8
- data/lib/rubygems/package/tar_header.rb +50 -50
- data/lib/rubygems/package/tar_reader/entry.rb +2 -2
- data/lib/rubygems/package/tar_reader.rb +1 -1
- data/lib/rubygems/package/tar_writer.rb +7 -7
- data/lib/rubygems/package.rb +54 -43
- data/lib/rubygems/package_task.rb +4 -4
- data/lib/rubygems/platform.rb +66 -55
- data/lib/rubygems/psych_tree.rb +1 -1
- data/lib/rubygems/query_utils.rb +35 -35
- data/lib/rubygems/rdoc.rb +2 -2
- data/lib/rubygems/remote_fetcher.rb +22 -22
- data/lib/rubygems/request/connection_pools.rb +4 -4
- data/lib/rubygems/request/http_pool.rb +1 -1
- data/lib/rubygems/request.rb +22 -22
- data/lib/rubygems/request_set/gem_dependency_api.rb +18 -18
- data/lib/rubygems/request_set/lockfile/parser.rb +26 -26
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +4 -4
- data/lib/rubygems/request_set/lockfile.rb +5 -5
- data/lib/rubygems/request_set.rb +17 -17
- data/lib/rubygems/requirement.rb +6 -6
- data/lib/rubygems/resolver/activation_request.rb +3 -3
- data/lib/rubygems/resolver/api_set.rb +4 -4
- data/lib/rubygems/resolver/api_specification.rb +6 -6
- data/lib/rubygems/resolver/best_set.rb +5 -5
- data/lib/rubygems/resolver/conflict.rb +10 -10
- data/lib/rubygems/resolver/dependency_request.rb +2 -2
- data/lib/rubygems/resolver/git_set.rb +2 -2
- data/lib/rubygems/resolver/git_specification.rb +6 -6
- data/lib/rubygems/resolver/index_set.rb +3 -3
- data/lib/rubygems/resolver/index_specification.rb +6 -5
- data/lib/rubygems/resolver/installed_specification.rb +4 -4
- data/lib/rubygems/resolver/installer_set.rb +11 -16
- data/lib/rubygems/resolver/local_specification.rb +2 -2
- data/lib/rubygems/resolver/lock_set.rb +4 -4
- data/lib/rubygems/resolver/lock_specification.rb +4 -4
- data/lib/rubygems/resolver/molinillo.rb +1 -1
- data/lib/rubygems/resolver/specification.rb +1 -1
- data/lib/rubygems/resolver/vendor_set.rb +1 -1
- data/lib/rubygems/resolver/vendor_specification.rb +3 -3
- data/lib/rubygems/resolver.rb +39 -39
- data/lib/rubygems/s3_uri_signer.rb +6 -6
- data/lib/rubygems/safe_yaml.rb +2 -2
- data/lib/rubygems/security/policies.rb +11 -11
- data/lib/rubygems/security/policy.rb +18 -18
- data/lib/rubygems/security/signer.rb +5 -5
- data/lib/rubygems/security/trust_dir.rb +3 -3
- data/lib/rubygems/security.rb +28 -28
- data/lib/rubygems/security_option.rb +5 -5
- data/lib/rubygems/source/git.rb +21 -21
- data/lib/rubygems/source/installed.rb +1 -1
- data/lib/rubygems/source/local.rb +2 -2
- data/lib/rubygems/source/specific_file.rb +1 -1
- data/lib/rubygems/source.rb +16 -16
- data/lib/rubygems/spec_fetcher.rb +9 -9
- data/lib/rubygems/specification.rb +63 -62
- data/lib/rubygems/specification_policy.rb +15 -15
- data/lib/rubygems/stub_specification.rb +5 -5
- data/lib/rubygems/tsort.rb +1 -1
- data/lib/rubygems/uninstaller.rb +18 -18
- data/lib/rubygems/uri.rb +4 -4
- data/lib/rubygems/uri_formatter.rb +1 -1
- data/lib/rubygems/user_interaction.rb +33 -19
- data/lib/rubygems/util/licenses.rb +3 -3
- data/lib/rubygems/util.rb +10 -10
- data/lib/rubygems/validator.rb +5 -5
- data/lib/rubygems/version.rb +15 -9
- data/lib/rubygems/version_option.rb +3 -3
- data/lib/rubygems.rb +62 -61
- data/rubygems-update.gemspec +2 -2
- data/setup.rb +9 -9
- data/test/rubygems/helper.rb +132 -134
- data/test/rubygems/installer_test_case.rb +13 -13
- data/test/rubygems/package/tar_test_case.rb +2 -2
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
- data/test/rubygems/rubygems_plugin.rb +2 -2
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -4
- data/test/rubygems/test_bundled_ca.rb +10 -10
- data/test/rubygems/test_config.rb +3 -3
- data/test/rubygems/test_deprecate.rb +3 -3
- data/test/rubygems/test_exit.rb +2 -2
- data/test/rubygems/test_gem.rb +342 -342
- data/test/rubygems/test_gem_available_set.rb +21 -21
- data/test/rubygems/test_gem_bundler_version_finder.rb +1 -1
- data/test/rubygems/test_gem_command.rb +44 -44
- data/test/rubygems/test_gem_command_manager.rb +29 -29
- data/test/rubygems/test_gem_commands_build_command.rb +63 -63
- data/test/rubygems/test_gem_commands_cert_command.rb +97 -99
- data/test/rubygems/test_gem_commands_check_command.rb +4 -4
- data/test/rubygems/test_gem_commands_cleanup_command.rb +40 -40
- data/test/rubygems/test_gem_commands_contents_command.rb +27 -27
- data/test/rubygems/test_gem_commands_dependency_command.rb +36 -36
- data/test/rubygems/test_gem_commands_environment_command.rb +16 -16
- data/test/rubygems/test_gem_commands_fetch_command.rb +37 -37
- data/test/rubygems/test_gem_commands_generate_index_command.rb +7 -7
- data/test/rubygems/test_gem_commands_help_command.rb +13 -13
- data/test/rubygems/test_gem_commands_info_command.rb +28 -2
- data/test/rubygems/test_gem_commands_install_command.rb +131 -131
- data/test/rubygems/test_gem_commands_list_command.rb +4 -4
- data/test/rubygems/test_gem_commands_lock_command.rb +10 -10
- data/test/rubygems/test_gem_commands_mirror.rb +2 -2
- data/test/rubygems/test_gem_commands_open_command.rb +4 -4
- data/test/rubygems/test_gem_commands_outdated_command.rb +9 -9
- data/test/rubygems/test_gem_commands_owner_command.rb +41 -41
- data/test/rubygems/test_gem_commands_pristine_command.rb +92 -92
- data/test/rubygems/test_gem_commands_push_command.rb +54 -54
- data/test/rubygems/test_gem_commands_query_command.rb +73 -73
- data/test/rubygems/test_gem_commands_search_command.rb +2 -2
- data/test/rubygems/test_gem_commands_server_command.rb +2 -2
- data/test/rubygems/test_gem_commands_setup_command.rb +119 -85
- data/test/rubygems/test_gem_commands_signin_command.rb +45 -31
- data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
- data/test/rubygems/test_gem_commands_sources_command.rb +28 -29
- data/test/rubygems/test_gem_commands_specification_command.rb +32 -32
- data/test/rubygems/test_gem_commands_stale_command.rb +4 -4
- data/test/rubygems/test_gem_commands_uninstall_command.rb +75 -75
- data/test/rubygems/test_gem_commands_unpack_command.rb +31 -31
- data/test/rubygems/test_gem_commands_update_command.rb +89 -89
- data/test/rubygems/test_gem_commands_which_command.rb +6 -6
- data/test/rubygems/test_gem_commands_yank_command.rb +40 -40
- data/test/rubygems/test_gem_config_file.rb +93 -81
- data/test/rubygems/test_gem_dependency.rb +73 -73
- data/test/rubygems/test_gem_dependency_installer.rb +165 -165
- data/test/rubygems/test_gem_dependency_list.rb +47 -47
- data/test/rubygems/test_gem_dependency_resolution_error.rb +4 -4
- data/test/rubygems/test_gem_doctor.rb +26 -26
- data/test/rubygems/test_gem_ext_builder.rb +59 -59
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock +6 -6
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +8 -8
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +6 -6
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +8 -8
- data/test/rubygems/test_gem_ext_cargo_builder.rb +26 -26
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +3 -3
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +23 -23
- data/test/rubygems/test_gem_ext_cmake_builder.rb +15 -15
- data/test/rubygems/test_gem_ext_configure_builder.rb +13 -13
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +51 -52
- data/test/rubygems/test_gem_ext_rake_builder.rb +15 -15
- data/test/rubygems/test_gem_gem_runner.rb +7 -7
- data/test/rubygems/test_gem_gemcutter_utilities.rb +66 -66
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -4
- data/test/rubygems/test_gem_indexer.rb +48 -48
- data/test/rubygems/test_gem_install_update_options.rb +16 -16
- data/test/rubygems/test_gem_installer.rb +303 -300
- data/test/rubygems/test_gem_local_remote_options.rb +10 -10
- data/test/rubygems/test_gem_name_tuple.rb +4 -4
- data/test/rubygems/test_gem_package.rb +228 -206
- data/test/rubygems/test_gem_package_old.rb +13 -13
- data/test/rubygems/test_gem_package_tar_header.rb +42 -42
- data/test/rubygems/test_gem_package_tar_reader.rb +8 -8
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +10 -10
- data/test/rubygems/test_gem_package_tar_writer.rb +76 -76
- data/test/rubygems/test_gem_package_task.rb +18 -18
- data/test/rubygems/test_gem_path_support.rb +14 -14
- data/test/rubygems/test_gem_platform.rb +298 -227
- data/test/rubygems/test_gem_rdoc.rb +14 -14
- data/test/rubygems/test_gem_remote_fetcher.rb +149 -149
- data/test/rubygems/test_gem_request.rb +55 -55
- data/test/rubygems/test_gem_request_connection_pools.rb +29 -29
- data/test/rubygems/test_gem_request_set.rb +99 -99
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +204 -206
- data/test/rubygems/test_gem_request_set_lockfile.rb +86 -86
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +56 -56
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +62 -62
- data/test/rubygems/test_gem_requirement.rb +47 -41
- data/test/rubygems/test_gem_resolver.rb +133 -99
- data/test/rubygems/test_gem_resolver_activation_request.rb +6 -6
- data/test/rubygems/test_gem_resolver_api_set.rb +33 -33
- data/test/rubygems/test_gem_resolver_api_specification.rb +47 -47
- data/test/rubygems/test_gem_resolver_best_set.rb +22 -22
- data/test/rubygems/test_gem_resolver_composed_set.rb +1 -1
- data/test/rubygems/test_gem_resolver_conflict.rb +12 -12
- data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -15
- data/test/rubygems/test_gem_resolver_git_set.rb +21 -21
- data/test/rubygems/test_gem_resolver_git_specification.rb +21 -21
- data/test/rubygems/test_gem_resolver_index_set.rb +12 -12
- data/test/rubygems/test_gem_resolver_index_specification.rb +16 -16
- data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -5
- data/test/rubygems/test_gem_resolver_installer_set.rb +78 -34
- data/test/rubygems/test_gem_resolver_local_specification.rb +7 -7
- data/test/rubygems/test_gem_resolver_lock_set.rb +12 -12
- data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -17
- data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -1
- data/test/rubygems/test_gem_resolver_specification.rb +8 -8
- data/test/rubygems/test_gem_resolver_vendor_set.rb +6 -6
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -10
- data/test/rubygems/test_gem_security.rb +67 -67
- data/test/rubygems/test_gem_security_policy.rb +62 -62
- data/test/rubygems/test_gem_security_signer.rb +28 -28
- data/test/rubygems/test_gem_security_trust_dir.rb +4 -4
- data/test/rubygems/test_gem_silent_ui.rb +38 -32
- data/test/rubygems/test_gem_source.rb +44 -44
- data/test/rubygems/test_gem_source_fetch_problem.rb +9 -9
- data/test/rubygems/test_gem_source_git.rb +59 -59
- data/test/rubygems/test_gem_source_installed.rb +16 -16
- data/test/rubygems/test_gem_source_list.rb +5 -5
- data/test/rubygems/test_gem_source_local.rb +14 -14
- data/test/rubygems/test_gem_source_lock.rb +31 -31
- data/test/rubygems/test_gem_source_specific_file.rb +17 -17
- data/test/rubygems/test_gem_source_subpath_problem.rb +7 -7
- data/test/rubygems/test_gem_source_vendor.rb +13 -13
- data/test/rubygems/test_gem_spec_fetcher.rb +72 -72
- data/test/rubygems/test_gem_specification.rb +444 -436
- data/test/rubygems/test_gem_stream_ui.rb +19 -19
- data/test/rubygems/test_gem_stub_specification.rb +32 -32
- data/test/rubygems/test_gem_text.rb +1 -1
- data/test/rubygems/test_gem_uninstaller.rb +112 -112
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -3
- data/test/rubygems/test_gem_uri.rb +4 -4
- data/test/rubygems/test_gem_uri_formatter.rb +14 -14
- data/test/rubygems/test_gem_util.rb +23 -23
- data/test/rubygems/test_gem_validator.rb +8 -8
- data/test/rubygems/test_gem_version.rb +22 -15
- data/test/rubygems/test_gem_version_option.rb +15 -15
- data/test/rubygems/test_kernel.rb +31 -31
- data/test/rubygems/test_project_sanity.rb +1 -1
- data/test/rubygems/test_remote_fetch_error.rb +6 -6
- data/test/rubygems/test_require.rb +43 -43
- data/test/rubygems/test_rubygems.rb +8 -8
- data/test/rubygems/utilities.rb +19 -19
- metadata +14 -3
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
3
|
-
require
|
2
|
+
require_relative "installer_test_case"
|
3
|
+
require "rubygems/uninstaller"
|
4
4
|
|
5
5
|
class TestGemUninstaller < Gem::InstallerTestCase
|
6
6
|
def setup
|
@@ -23,14 +23,14 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def test_initialize_expand_path
|
26
|
-
FileUtils.mkdir_p
|
27
|
-
uninstaller = Gem::Uninstaller.new nil, :install_dir =>
|
26
|
+
FileUtils.mkdir_p "foo/bar"
|
27
|
+
uninstaller = Gem::Uninstaller.new nil, :install_dir => "foo//bar"
|
28
28
|
|
29
29
|
assert_match %r{foo/bar$}, uninstaller.instance_variable_get(:@gem_home)
|
30
30
|
end
|
31
31
|
|
32
32
|
def test_ask_if_ok
|
33
|
-
c = util_spec
|
33
|
+
c = util_spec "c"
|
34
34
|
|
35
35
|
uninstaller = Gem::Uninstaller.new nil
|
36
36
|
|
@@ -60,8 +60,8 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
60
60
|
def test_remove_executables_force_keep
|
61
61
|
uninstaller = Gem::Uninstaller.new nil, :executables => false
|
62
62
|
|
63
|
-
executable = File.join Gem.bindir(@user_spec.base_dir),
|
64
|
-
assert File.exist?(executable),
|
63
|
+
executable = File.join Gem.bindir(@user_spec.base_dir), "executable"
|
64
|
+
assert File.exist?(executable), "executable not written"
|
65
65
|
|
66
66
|
use_ui @ui do
|
67
67
|
uninstaller.remove_executables @user_spec
|
@@ -75,8 +75,8 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
75
75
|
def test_remove_executables_force_remove
|
76
76
|
uninstaller = Gem::Uninstaller.new nil, :executables => true
|
77
77
|
|
78
|
-
executable = File.join Gem.bindir(@user_spec.base_dir),
|
79
|
-
assert File.exist?(executable),
|
78
|
+
executable = File.join Gem.bindir(@user_spec.base_dir), "executable"
|
79
|
+
assert File.exist?(executable), "executable not written"
|
80
80
|
|
81
81
|
use_ui @ui do
|
82
82
|
uninstaller.remove_executables @user_spec
|
@@ -94,14 +94,14 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
94
94
|
uninstaller.remove_executables @user_spec
|
95
95
|
end
|
96
96
|
|
97
|
-
exec_path = File.join Gem.user_dir,
|
98
|
-
refute File.exist?(exec_path),
|
97
|
+
exec_path = File.join Gem.user_dir, "bin", "executable"
|
98
|
+
refute File.exist?(exec_path), "exec still exists in user bin dir"
|
99
99
|
|
100
100
|
assert_equal "Removing executable\n", @ui.output
|
101
101
|
end
|
102
102
|
|
103
103
|
def test_remove_executables_user_format
|
104
|
-
Gem::Installer.exec_format =
|
104
|
+
Gem::Installer.exec_format = "foo-%s-bar"
|
105
105
|
|
106
106
|
uninstaller = Gem::Uninstaller.new nil, :executables => true, :format_executable => true
|
107
107
|
|
@@ -109,8 +109,8 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
109
109
|
uninstaller.remove_executables @user_spec
|
110
110
|
end
|
111
111
|
|
112
|
-
exec_path = File.join Gem.user_dir,
|
113
|
-
assert_equal false, File.exist?(exec_path),
|
112
|
+
exec_path = File.join Gem.user_dir, "bin", "foo-executable-bar"
|
113
|
+
assert_equal false, File.exist?(exec_path), "removed exec from bin dir"
|
114
114
|
|
115
115
|
assert_equal "Removing foo-executable-bar\n", @ui.output
|
116
116
|
ensure
|
@@ -118,7 +118,7 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
118
118
|
end
|
119
119
|
|
120
120
|
def test_remove_executables_user_format_disabled
|
121
|
-
Gem::Installer.exec_format =
|
121
|
+
Gem::Installer.exec_format = "foo-%s-bar"
|
122
122
|
|
123
123
|
uninstaller = Gem::Uninstaller.new nil, :executables => true
|
124
124
|
|
@@ -126,8 +126,8 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
126
126
|
uninstaller.remove_executables @user_spec
|
127
127
|
end
|
128
128
|
|
129
|
-
exec_path = File.join Gem.user_dir,
|
130
|
-
refute File.exist?(exec_path),
|
129
|
+
exec_path = File.join Gem.user_dir, "bin", "executable"
|
130
|
+
refute File.exist?(exec_path), "removed exec from bin dir"
|
131
131
|
|
132
132
|
assert_equal "Removing executable\n", @ui.output
|
133
133
|
ensure
|
@@ -171,7 +171,7 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
171
171
|
end
|
172
172
|
|
173
173
|
def test_remove_plugins
|
174
|
-
write_file File.join(@tempdir,
|
174
|
+
write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io|
|
175
175
|
io.write "puts __FILE__"
|
176
176
|
end
|
177
177
|
|
@@ -179,16 +179,16 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
179
179
|
|
180
180
|
Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
|
181
181
|
|
182
|
-
plugin_path = File.join Gem.plugindir,
|
183
|
-
assert File.exist?(plugin_path),
|
182
|
+
plugin_path = File.join Gem.plugindir, "a_plugin.rb"
|
183
|
+
assert File.exist?(plugin_path), "plugin not written"
|
184
184
|
|
185
185
|
Gem::Uninstaller.new(nil).remove_plugins @spec
|
186
186
|
|
187
|
-
refute File.exist?(plugin_path),
|
187
|
+
refute File.exist?(plugin_path), "plugin not removed"
|
188
188
|
end
|
189
189
|
|
190
190
|
def test_remove_plugins_with_install_dir
|
191
|
-
write_file File.join(@tempdir,
|
191
|
+
write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io|
|
192
192
|
io.write "puts __FILE__"
|
193
193
|
end
|
194
194
|
|
@@ -196,17 +196,17 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
196
196
|
|
197
197
|
Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
|
198
198
|
|
199
|
-
plugin_path = File.join Gem.plugindir,
|
200
|
-
assert File.exist?(plugin_path),
|
199
|
+
plugin_path = File.join Gem.plugindir, "a_plugin.rb"
|
200
|
+
assert File.exist?(plugin_path), "plugin not written"
|
201
201
|
|
202
202
|
Dir.mkdir "#{@gemhome}2"
|
203
203
|
Gem::Uninstaller.new(nil, :install_dir => "#{@gemhome}2").remove_plugins @spec
|
204
204
|
|
205
|
-
assert File.exist?(plugin_path),
|
205
|
+
assert File.exist?(plugin_path), "plugin unintentionally removed"
|
206
206
|
end
|
207
207
|
|
208
208
|
def test_regenerate_plugins_for
|
209
|
-
write_file File.join(@tempdir,
|
209
|
+
write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io|
|
210
210
|
io.write "puts __FILE__"
|
211
211
|
end
|
212
212
|
|
@@ -214,13 +214,13 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
214
214
|
|
215
215
|
Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
|
216
216
|
|
217
|
-
plugin_path = File.join Gem.plugindir,
|
218
|
-
assert File.exist?(plugin_path),
|
217
|
+
plugin_path = File.join Gem.plugindir, "a_plugin.rb"
|
218
|
+
assert File.exist?(plugin_path), "plugin not written"
|
219
219
|
|
220
220
|
FileUtils.rm plugin_path
|
221
221
|
Gem::Uninstaller.new(nil).regenerate_plugins_for @spec, Gem.plugindir
|
222
222
|
|
223
|
-
assert File.exist?(plugin_path),
|
223
|
+
assert File.exist?(plugin_path), "plugin not regenerated"
|
224
224
|
end
|
225
225
|
|
226
226
|
def test_path_ok_eh
|
@@ -234,7 +234,7 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
234
234
|
|
235
235
|
@spec.loaded_from = @spec.loaded_from.gsub @spec.full_name, '\&-legacy'
|
236
236
|
@spec.internal_init # blow out cache. but why did ^^ depend on cache?
|
237
|
-
@spec.platform =
|
237
|
+
@spec.platform = "legacy"
|
238
238
|
|
239
239
|
assert_equal true, uninstaller.path_ok?(@gemhome, @spec)
|
240
240
|
end
|
@@ -248,16 +248,16 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
248
248
|
def test_uninstall
|
249
249
|
uninstaller = Gem::Uninstaller.new @spec.name, :executables => true
|
250
250
|
|
251
|
-
gem_dir = File.join @gemhome,
|
251
|
+
gem_dir = File.join @gemhome, "gems", @spec.full_name
|
252
252
|
|
253
253
|
Gem.pre_uninstall do
|
254
254
|
sleep(0.1) if win_platform?
|
255
|
-
assert File.exist?(gem_dir),
|
255
|
+
assert File.exist?(gem_dir), "gem_dir should exist"
|
256
256
|
end
|
257
257
|
|
258
258
|
Gem.post_uninstall do
|
259
259
|
sleep(0.1) if win_platform?
|
260
|
-
refute File.exist?(gem_dir),
|
260
|
+
refute File.exist?(gem_dir), "gem_dir should not exist"
|
261
261
|
end
|
262
262
|
|
263
263
|
uninstaller.uninstall
|
@@ -269,7 +269,7 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
269
269
|
end
|
270
270
|
|
271
271
|
def test_uninstall_default_gem
|
272
|
-
spec = new_default_spec
|
272
|
+
spec = new_default_spec "default", "2"
|
273
273
|
|
274
274
|
install_default_gems spec
|
275
275
|
|
@@ -281,14 +281,14 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
281
281
|
|
282
282
|
lines = @ui.output.split("\n")
|
283
283
|
|
284
|
-
assert_equal
|
284
|
+
assert_equal "Gem default-2 cannot be uninstalled because it is a default gem", lines.shift
|
285
285
|
end
|
286
286
|
|
287
287
|
def test_uninstall_default_gem_with_same_version
|
288
|
-
default_spec = new_default_spec
|
288
|
+
default_spec = new_default_spec "default", "2"
|
289
289
|
install_default_gems default_spec
|
290
290
|
|
291
|
-
spec = util_spec
|
291
|
+
spec = util_spec "default", "2"
|
292
292
|
install_gem spec
|
293
293
|
|
294
294
|
Gem::Specification.reset
|
@@ -308,8 +308,8 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
308
308
|
end
|
309
309
|
|
310
310
|
def test_uninstall_extension
|
311
|
-
@spec.extensions <<
|
312
|
-
write_file File.join(@tempdir,
|
311
|
+
@spec.extensions << "extconf.rb"
|
312
|
+
write_file File.join(@tempdir, "extconf.rb") do |io|
|
313
313
|
io.write <<-RUBY
|
314
314
|
require 'mkmf'
|
315
315
|
create_makefile '#{@spec.name}'
|
@@ -325,7 +325,7 @@ create_makefile '#{@spec.name}'
|
|
325
325
|
installer.install
|
326
326
|
end
|
327
327
|
|
328
|
-
assert_path_exist @spec.extension_dir,
|
328
|
+
assert_path_exist @spec.extension_dir, "sanity check"
|
329
329
|
|
330
330
|
uninstaller = Gem::Uninstaller.new @spec.name, :executables => true
|
331
331
|
uninstaller.uninstall
|
@@ -334,7 +334,7 @@ create_makefile '#{@spec.name}'
|
|
334
334
|
end
|
335
335
|
|
336
336
|
def test_uninstall_nonexistent
|
337
|
-
uninstaller = Gem::Uninstaller.new
|
337
|
+
uninstaller = Gem::Uninstaller.new "bogus", :executables => true
|
338
338
|
|
339
339
|
e = assert_raise Gem::InstallError do
|
340
340
|
uninstaller.uninstall
|
@@ -344,17 +344,17 @@ create_makefile '#{@spec.name}'
|
|
344
344
|
end
|
345
345
|
|
346
346
|
def test_uninstall_not_ok
|
347
|
-
quick_gem
|
347
|
+
quick_gem "z" do |s|
|
348
348
|
s.add_runtime_dependency @spec.name
|
349
349
|
end
|
350
350
|
|
351
351
|
uninstaller = Gem::Uninstaller.new @spec.name
|
352
352
|
|
353
|
-
gem_dir = File.join @gemhome,
|
354
|
-
executable = File.join @gemhome,
|
353
|
+
gem_dir = File.join @gemhome, "gems", @spec.full_name
|
354
|
+
executable = File.join @gemhome, "bin", "executable"
|
355
355
|
|
356
|
-
assert File.exist?(gem_dir),
|
357
|
-
assert File.exist?(executable),
|
356
|
+
assert File.exist?(gem_dir), "gem_dir must exist"
|
357
|
+
assert File.exist?(executable), "executable must exist"
|
358
358
|
|
359
359
|
ui = Gem::MockGemUi.new "n\n"
|
360
360
|
|
@@ -364,12 +364,12 @@ create_makefile '#{@spec.name}'
|
|
364
364
|
end
|
365
365
|
end
|
366
366
|
|
367
|
-
assert File.exist?(gem_dir),
|
368
|
-
assert File.exist?(executable),
|
367
|
+
assert File.exist?(gem_dir), "gem_dir must still exist"
|
368
|
+
assert File.exist?(executable), "executable must still exist"
|
369
369
|
end
|
370
370
|
|
371
371
|
def test_uninstall_user_install
|
372
|
-
@user_spec = Gem::Specification.find_by_name
|
372
|
+
@user_spec = Gem::Specification.find_by_name "b"
|
373
373
|
|
374
374
|
uninstaller = Gem::Uninstaller.new(@user_spec.name,
|
375
375
|
:executables => true,
|
@@ -414,9 +414,9 @@ create_makefile '#{@spec.name}'
|
|
414
414
|
def test_uninstall_selection
|
415
415
|
util_make_gems
|
416
416
|
|
417
|
-
list = Gem::Specification.find_all_by_name
|
417
|
+
list = Gem::Specification.find_all_by_name "a"
|
418
418
|
|
419
|
-
uninstaller = Gem::Uninstaller.new
|
419
|
+
uninstaller = Gem::Uninstaller.new "a"
|
420
420
|
|
421
421
|
ui = Gem::MockGemUi.new "1\ny\n"
|
422
422
|
|
@@ -424,39 +424,39 @@ create_makefile '#{@spec.name}'
|
|
424
424
|
uninstaller.uninstall
|
425
425
|
end
|
426
426
|
|
427
|
-
updated_list = Gem::Specification.find_all_by_name(
|
427
|
+
updated_list = Gem::Specification.find_all_by_name("a")
|
428
428
|
assert_equal list.length - 1, updated_list.length
|
429
429
|
|
430
|
-
assert_match
|
431
|
-
assert_match
|
432
|
-
assert_match
|
433
|
-
assert_match
|
434
|
-
assert_match
|
430
|
+
assert_match " 1. a-1", ui.output
|
431
|
+
assert_match " 2. a-2", ui.output
|
432
|
+
assert_match " 3. a-3.a", ui.output
|
433
|
+
assert_match " 4. All versions", ui.output
|
434
|
+
assert_match "uninstalled a-1", ui.output
|
435
435
|
end
|
436
436
|
|
437
437
|
def test_uninstall_selection_greater_than_one
|
438
438
|
util_make_gems
|
439
439
|
|
440
|
-
list = Gem::Specification.find_all_by_name(
|
440
|
+
list = Gem::Specification.find_all_by_name("a")
|
441
441
|
|
442
|
-
uninstaller = Gem::Uninstaller.new(
|
442
|
+
uninstaller = Gem::Uninstaller.new("a")
|
443
443
|
|
444
444
|
use_ui Gem::MockGemUi.new("2\ny\n") do
|
445
445
|
uninstaller.uninstall
|
446
446
|
end
|
447
447
|
|
448
|
-
updated_list = Gem::Specification.find_all_by_name(
|
448
|
+
updated_list = Gem::Specification.find_all_by_name("a")
|
449
449
|
assert_equal list.length - 1, updated_list.length
|
450
450
|
end
|
451
451
|
|
452
452
|
def test_uninstall_prompts_about_broken_deps
|
453
|
-
quick_gem
|
454
|
-
s.add_dependency
|
453
|
+
quick_gem "r", "1" do |s|
|
454
|
+
s.add_dependency "q", "= 1"
|
455
455
|
end
|
456
456
|
|
457
|
-
quick_gem
|
457
|
+
quick_gem "q", "1"
|
458
458
|
|
459
|
-
un = Gem::Uninstaller.new(
|
459
|
+
un = Gem::Uninstaller.new("q")
|
460
460
|
ui = Gem::MockGemUi.new("y\n")
|
461
461
|
|
462
462
|
use_ui ui do
|
@@ -475,18 +475,18 @@ create_makefile '#{@spec.name}'
|
|
475
475
|
end
|
476
476
|
|
477
477
|
def test_uninstall_only_lists_unsatisfied_deps
|
478
|
-
quick_gem
|
479
|
-
s.add_dependency
|
478
|
+
quick_gem "r", "1" do |s|
|
479
|
+
s.add_dependency "q", "~> 1.0"
|
480
480
|
end
|
481
481
|
|
482
|
-
quick_gem
|
483
|
-
s.add_dependency
|
482
|
+
quick_gem "x", "1" do |s|
|
483
|
+
s.add_dependency "q", "= 1.0"
|
484
484
|
end
|
485
485
|
|
486
|
-
quick_gem
|
487
|
-
quick_gem
|
486
|
+
quick_gem "q", "1.0"
|
487
|
+
quick_gem "q", "1.1"
|
488
488
|
|
489
|
-
un = Gem::Uninstaller.new(
|
489
|
+
un = Gem::Uninstaller.new("q", :version => "1.0")
|
490
490
|
ui = Gem::MockGemUi.new("y\n")
|
491
491
|
|
492
492
|
use_ui ui do
|
@@ -505,14 +505,14 @@ create_makefile '#{@spec.name}'
|
|
505
505
|
end
|
506
506
|
|
507
507
|
def test_uninstall_doesnt_prompt_when_other_gem_satisfies_requirement
|
508
|
-
quick_gem
|
509
|
-
s.add_dependency
|
508
|
+
quick_gem "r", "1" do |s|
|
509
|
+
s.add_dependency "q", "~> 1.0"
|
510
510
|
end
|
511
511
|
|
512
|
-
quick_gem
|
513
|
-
quick_gem
|
512
|
+
quick_gem "q", "1.0"
|
513
|
+
quick_gem "q", "1.1"
|
514
514
|
|
515
|
-
un = Gem::Uninstaller.new(
|
515
|
+
un = Gem::Uninstaller.new("q", :version => "1.0")
|
516
516
|
ui = Gem::MockGemUi.new("y\n")
|
517
517
|
|
518
518
|
use_ui ui do
|
@@ -525,13 +525,13 @@ create_makefile '#{@spec.name}'
|
|
525
525
|
end
|
526
526
|
|
527
527
|
def test_uninstall_doesnt_prompt_when_removing_a_dev_dep
|
528
|
-
quick_gem
|
529
|
-
s.add_development_dependency
|
528
|
+
quick_gem "r", "1" do |s|
|
529
|
+
s.add_development_dependency "q", "= 1.0"
|
530
530
|
end
|
531
531
|
|
532
|
-
quick_gem
|
532
|
+
quick_gem "q", "1.0"
|
533
533
|
|
534
|
-
un = Gem::Uninstaller.new(
|
534
|
+
un = Gem::Uninstaller.new("q", :version => "1.0")
|
535
535
|
ui = Gem::MockGemUi.new("y\n")
|
536
536
|
|
537
537
|
use_ui ui do
|
@@ -544,13 +544,13 @@ create_makefile '#{@spec.name}'
|
|
544
544
|
end
|
545
545
|
|
546
546
|
def test_uninstall_doesnt_prompt_and_raises_when_abort_on_dependent_set
|
547
|
-
quick_gem
|
548
|
-
s.add_dependency
|
547
|
+
quick_gem "r", "1" do |s|
|
548
|
+
s.add_dependency "q", "= 1"
|
549
549
|
end
|
550
550
|
|
551
|
-
quick_gem
|
551
|
+
quick_gem "q", "1"
|
552
552
|
|
553
|
-
un = Gem::Uninstaller.new(
|
553
|
+
un = Gem::Uninstaller.new("q", :abort_on_dependent => true)
|
554
554
|
ui = Gem::MockGemUi.new("y\n")
|
555
555
|
|
556
556
|
assert_raise Gem::DependencyRemovalException do
|
@@ -561,13 +561,13 @@ create_makefile '#{@spec.name}'
|
|
561
561
|
end
|
562
562
|
|
563
563
|
def test_uninstall_prompt_includes_dep_type
|
564
|
-
quick_gem
|
565
|
-
s.add_development_dependency
|
564
|
+
quick_gem "r", "1" do |s|
|
565
|
+
s.add_development_dependency "q", "= 1"
|
566
566
|
end
|
567
567
|
|
568
|
-
quick_gem
|
568
|
+
quick_gem "q", "1"
|
569
569
|
|
570
|
-
un = Gem::Uninstaller.new(
|
570
|
+
un = Gem::Uninstaller.new("q", :check_dev => true)
|
571
571
|
ui = Gem::MockGemUi.new("y\n")
|
572
572
|
|
573
573
|
use_ui ui do
|
@@ -586,17 +586,17 @@ create_makefile '#{@spec.name}'
|
|
586
586
|
end
|
587
587
|
|
588
588
|
def test_uninstall_prompt_only_lists_the_dependents_that_prevented_uninstallation
|
589
|
-
quick_gem
|
590
|
-
s.add_development_dependency
|
589
|
+
quick_gem "r", "1" do |s|
|
590
|
+
s.add_development_dependency "q", "= 1"
|
591
591
|
end
|
592
592
|
|
593
|
-
quick_gem
|
594
|
-
s.add_dependency
|
593
|
+
quick_gem "s", "1" do |s|
|
594
|
+
s.add_dependency "q", "= 1"
|
595
595
|
end
|
596
596
|
|
597
|
-
quick_gem
|
597
|
+
quick_gem "q", "1"
|
598
598
|
|
599
|
-
un = Gem::Uninstaller.new(
|
599
|
+
un = Gem::Uninstaller.new("q", :check_dev => false)
|
600
600
|
ui = Gem::MockGemUi.new("y\n")
|
601
601
|
|
602
602
|
use_ui ui do
|
@@ -633,42 +633,42 @@ create_makefile '#{@spec.name}'
|
|
633
633
|
end
|
634
634
|
|
635
635
|
def test_uninstall_keeps_plugins_up_to_date
|
636
|
-
write_file File.join(@tempdir,
|
636
|
+
write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io|
|
637
637
|
io.write "puts __FILE__"
|
638
638
|
end
|
639
639
|
|
640
|
-
plugin_path = File.join Gem.plugindir,
|
640
|
+
plugin_path = File.join Gem.plugindir, "a_plugin.rb"
|
641
641
|
|
642
|
-
@spec.version =
|
642
|
+
@spec.version = "1"
|
643
643
|
Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
|
644
644
|
|
645
|
-
refute File.exist?(plugin_path),
|
645
|
+
refute File.exist?(plugin_path), "version without plugin installed, but plugin written"
|
646
646
|
|
647
647
|
@spec.files += %w[lib/rubygems_plugin.rb]
|
648
|
-
@spec.version =
|
648
|
+
@spec.version = "2"
|
649
649
|
Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
|
650
650
|
|
651
|
-
assert File.exist?(plugin_path),
|
652
|
-
assert_match %r{\Arequire.*a-2/lib/rubygems_plugin\.rb}, File.read(plugin_path),
|
651
|
+
assert File.exist?(plugin_path), "version with plugin installed, but plugin not written"
|
652
|
+
assert_match %r{\Arequire.*a-2/lib/rubygems_plugin\.rb}, File.read(plugin_path), "written plugin has incorrect content"
|
653
653
|
|
654
|
-
@spec.version =
|
654
|
+
@spec.version = "3"
|
655
655
|
Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
|
656
656
|
|
657
|
-
assert File.exist?(plugin_path),
|
658
|
-
assert_match %r{\Arequire.*a-3/lib/rubygems_plugin\.rb}, File.read(plugin_path),
|
657
|
+
assert File.exist?(plugin_path), "version with plugin installed, but plugin removed"
|
658
|
+
assert_match %r{\Arequire.*a-3/lib/rubygems_plugin\.rb}, File.read(plugin_path), "old version installed, but plugin updated"
|
659
659
|
|
660
|
-
Gem::Uninstaller.new(
|
660
|
+
Gem::Uninstaller.new("a", :version => "1", :executables => true).uninstall
|
661
661
|
|
662
|
-
assert File.exist?(plugin_path),
|
663
|
-
assert_match %r{\Arequire.*a-3/lib/rubygems_plugin\.rb}, File.read(plugin_path),
|
662
|
+
assert File.exist?(plugin_path), "plugin removed when old version uninstalled"
|
663
|
+
assert_match %r{\Arequire.*a-3/lib/rubygems_plugin\.rb}, File.read(plugin_path), "old version uninstalled, but plugin updated"
|
664
664
|
|
665
|
-
Gem::Uninstaller.new(
|
665
|
+
Gem::Uninstaller.new("a", version: "3", :executables => true).uninstall
|
666
666
|
|
667
|
-
assert File.exist?(plugin_path),
|
668
|
-
assert_match %r{\Arequire.*a-2/lib/rubygems_plugin\.rb}, File.read(plugin_path),
|
667
|
+
assert File.exist?(plugin_path), "plugin removed when old version uninstalled and another version with plugin still present"
|
668
|
+
assert_match %r{\Arequire.*a-2/lib/rubygems_plugin\.rb}, File.read(plugin_path), "latest version uninstalled, but plugin not updated to previous version"
|
669
669
|
|
670
|
-
Gem::Uninstaller.new(
|
670
|
+
Gem::Uninstaller.new("a", version: "2", :executables => true).uninstall
|
671
671
|
|
672
|
-
refute File.exist?(plugin_path),
|
672
|
+
refute File.exist?(plugin_path), "last version uninstalled, but plugin still present"
|
673
673
|
end
|
674
674
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
2
|
+
require_relative "helper"
|
3
3
|
|
4
4
|
class TestGemUnsatisfiableDependencyError < Gem::TestCase
|
5
5
|
def setup
|
6
6
|
super
|
7
7
|
|
8
|
-
@a_dep = dep
|
8
|
+
@a_dep = dep "a", "~> 1"
|
9
9
|
|
10
10
|
@req = Gem::Resolver::DependencyRequest.new @a_dep, nil
|
11
11
|
|
@@ -21,7 +21,7 @@ class TestGemUnsatisfiableDependencyError < Gem::TestCase
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def test_name
|
24
|
-
assert_equal
|
24
|
+
assert_equal "a", @e.name
|
25
25
|
end
|
26
26
|
|
27
27
|
def test_version
|
@@ -1,5 +1,5 @@
|
|
1
|
-
require_relative
|
2
|
-
require
|
1
|
+
require_relative "helper"
|
2
|
+
require "rubygems/uri"
|
3
3
|
|
4
4
|
class TestUri < Gem::TestCase
|
5
5
|
def test_to_s_not_string
|
@@ -31,9 +31,9 @@ class TestUri < Gem::TestCase
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def test_redacted_does_not_modify_uri
|
34
|
-
url =
|
34
|
+
url = "https://user:password@example.com"
|
35
35
|
uri = Gem::Uri.new(url)
|
36
|
-
assert_equal
|
36
|
+
assert_equal "https://user:REDACTED@example.com", uri.redacted.to_s
|
37
37
|
assert_equal url, uri.to_s
|
38
38
|
end
|
39
39
|
end
|
@@ -1,26 +1,26 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
3
|
-
require
|
2
|
+
require_relative "helper"
|
3
|
+
require "rubygems/uri_formatter"
|
4
4
|
|
5
5
|
class TestGemUriFormatter < Gem::TestCase
|
6
6
|
def test_normalize_uri
|
7
|
-
assert_equal
|
8
|
-
Gem::UriFormatter.new(
|
9
|
-
assert_equal
|
10
|
-
Gem::UriFormatter.new(
|
11
|
-
assert_equal
|
12
|
-
Gem::UriFormatter.new(
|
13
|
-
assert_equal
|
14
|
-
Gem::UriFormatter.new(
|
15
|
-
assert_equal
|
16
|
-
Gem::UriFormatter.new(
|
7
|
+
assert_equal "FILE://example/",
|
8
|
+
Gem::UriFormatter.new("FILE://example/").normalize
|
9
|
+
assert_equal "FTP://example/",
|
10
|
+
Gem::UriFormatter.new("FTP://example/").normalize
|
11
|
+
assert_equal "HTTP://example/",
|
12
|
+
Gem::UriFormatter.new("HTTP://example/").normalize
|
13
|
+
assert_equal "HTTPS://example/",
|
14
|
+
Gem::UriFormatter.new("HTTPS://example/").normalize
|
15
|
+
assert_equal "http://example/",
|
16
|
+
Gem::UriFormatter.new("example/").normalize
|
17
17
|
end
|
18
18
|
|
19
19
|
def test_escape
|
20
|
-
assert_equal
|
20
|
+
assert_equal "a%40b%5Cc", Gem::UriFormatter.new('a@b\c').escape
|
21
21
|
end
|
22
22
|
|
23
23
|
def test_unescape
|
24
|
-
assert_equal 'a@b\c', Gem::UriFormatter.new(
|
24
|
+
assert_equal 'a@b\c', Gem::UriFormatter.new("a%40b%5Cc").unescape
|
25
25
|
end
|
26
26
|
end
|