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 "helper"
|
3
|
+
require "rubygems/commands/yank_command"
|
4
4
|
|
5
5
|
class TestGemCommandsYankCommand < Gem::TestCase
|
6
6
|
def setup
|
@@ -9,12 +9,12 @@ class TestGemCommandsYankCommand < Gem::TestCase
|
|
9
9
|
credential_setup
|
10
10
|
|
11
11
|
@cmd = Gem::Commands::YankCommand.new
|
12
|
-
@cmd.options[:host] =
|
12
|
+
@cmd.options[:host] = "http://example"
|
13
13
|
|
14
14
|
@fetcher = Gem::RemoteFetcher.fetcher
|
15
15
|
|
16
|
-
Gem.configuration.rubygems_api_key =
|
17
|
-
Gem.configuration.api_keys[:KEY] =
|
16
|
+
Gem.configuration.rubygems_api_key = "key"
|
17
|
+
Gem.configuration.api_keys[:KEY] = "other"
|
18
18
|
end
|
19
19
|
|
20
20
|
def teardown
|
@@ -30,7 +30,7 @@ class TestGemCommandsYankCommand < Gem::TestCase
|
|
30
30
|
assert_equal :KEY, @cmd.options[:key]
|
31
31
|
assert_equal "HOST", @cmd.options[:host]
|
32
32
|
assert_nil @cmd.options[:platform]
|
33
|
-
assert_equal req(
|
33
|
+
assert_equal req("= 1.0"), @cmd.options[:version]
|
34
34
|
end
|
35
35
|
|
36
36
|
def test_handle_options_missing_argument
|
@@ -42,12 +42,12 @@ class TestGemCommandsYankCommand < Gem::TestCase
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def test_execute
|
45
|
-
yank_uri =
|
46
|
-
@fetcher.data[yank_uri] = [
|
45
|
+
yank_uri = "http://example/api/v1/gems/yank"
|
46
|
+
@fetcher.data[yank_uri] = ["Successfully yanked", 200, "OK"]
|
47
47
|
|
48
48
|
@cmd.options[:args] = %w[a]
|
49
49
|
@cmd.options[:added_platform] = true
|
50
|
-
@cmd.options[:version] = req(
|
50
|
+
@cmd.options[:version] = req("= 1.0")
|
51
51
|
|
52
52
|
use_ui @ui do
|
53
53
|
@cmd.execute
|
@@ -57,82 +57,82 @@ class TestGemCommandsYankCommand < Gem::TestCase
|
|
57
57
|
assert_match %r{Successfully yanked}, @ui.output
|
58
58
|
|
59
59
|
platform = Gem.platforms[1]
|
60
|
-
body = @fetcher.last_request.body.split(
|
60
|
+
body = @fetcher.last_request.body.split("&").sort
|
61
61
|
assert_equal %W[gem_name=a platform=#{platform} version=1.0], body
|
62
62
|
|
63
|
-
assert_equal
|
63
|
+
assert_equal "key", @fetcher.last_request["Authorization"]
|
64
64
|
|
65
65
|
assert_equal [yank_uri], @fetcher.paths
|
66
66
|
end
|
67
67
|
|
68
68
|
def test_execute_with_otp_success
|
69
|
-
response_fail =
|
70
|
-
yank_uri =
|
69
|
+
response_fail = "You have enabled multifactor authentication but your request doesn't have the correct OTP code. Please check it and retry."
|
70
|
+
yank_uri = "http://example/api/v1/gems/yank"
|
71
71
|
@fetcher.data[yank_uri] = [
|
72
|
-
[response_fail, 401,
|
73
|
-
[
|
72
|
+
[response_fail, 401, "Unauthorized"],
|
73
|
+
["Successfully yanked", 200, "OK"],
|
74
74
|
]
|
75
75
|
|
76
76
|
@cmd.options[:args] = %w[a]
|
77
77
|
@cmd.options[:added_platform] = true
|
78
|
-
@cmd.options[:version] = req(
|
78
|
+
@cmd.options[:version] = req("= 1.0")
|
79
79
|
|
80
80
|
@otp_ui = Gem::MockGemUi.new "111111\n"
|
81
81
|
use_ui @otp_ui do
|
82
82
|
@cmd.execute
|
83
83
|
end
|
84
84
|
|
85
|
-
assert_match
|
86
|
-
assert_match
|
85
|
+
assert_match "You have enabled multi-factor authentication. Please enter OTP code.", @otp_ui.output
|
86
|
+
assert_match "Code: ", @otp_ui.output
|
87
87
|
assert_match %r{Yanking gem from http://example}, @otp_ui.output
|
88
88
|
assert_match %r{Successfully yanked}, @otp_ui.output
|
89
|
-
assert_equal
|
89
|
+
assert_equal "111111", @fetcher.last_request["OTP"]
|
90
90
|
end
|
91
91
|
|
92
92
|
def test_execute_with_otp_failure
|
93
|
-
response =
|
94
|
-
yank_uri =
|
95
|
-
@fetcher.data[yank_uri] = [response, 401,
|
93
|
+
response = "You have enabled multifactor authentication but your request doesn't have the correct OTP code. Please check it and retry."
|
94
|
+
yank_uri = "http://example/api/v1/gems/yank"
|
95
|
+
@fetcher.data[yank_uri] = [response, 401, "Unauthorized"]
|
96
96
|
|
97
97
|
@cmd.options[:args] = %w[a]
|
98
98
|
@cmd.options[:added_platform] = true
|
99
|
-
@cmd.options[:version] = req(
|
99
|
+
@cmd.options[:version] = req("= 1.0")
|
100
100
|
|
101
101
|
@otp_ui = Gem::MockGemUi.new "111111\n"
|
102
102
|
use_ui @otp_ui do
|
103
103
|
@cmd.execute
|
104
104
|
end
|
105
105
|
|
106
|
-
assert_match
|
106
|
+
assert_match "You have enabled multi-factor authentication. Please enter OTP code.", @otp_ui.output
|
107
107
|
assert_match response, @otp_ui.output
|
108
|
-
assert_match
|
109
|
-
assert_equal
|
108
|
+
assert_match "Code: ", @otp_ui.output
|
109
|
+
assert_equal "111111", @fetcher.last_request["OTP"]
|
110
110
|
end
|
111
111
|
|
112
112
|
def test_execute_key
|
113
|
-
yank_uri =
|
114
|
-
@fetcher.data[yank_uri] = [
|
113
|
+
yank_uri = "http://example/api/v1/gems/yank"
|
114
|
+
@fetcher.data[yank_uri] = ["Successfully yanked", 200, "OK"]
|
115
115
|
|
116
116
|
@cmd.options[:args] = %w[a]
|
117
|
-
@cmd.options[:version] = req(
|
117
|
+
@cmd.options[:version] = req("= 1.0")
|
118
118
|
@cmd.options[:key] = :KEY
|
119
119
|
|
120
120
|
use_ui @ui do
|
121
121
|
@cmd.execute
|
122
122
|
end
|
123
123
|
|
124
|
-
body = @fetcher.last_request.body.split(
|
124
|
+
body = @fetcher.last_request.body.split("&").sort
|
125
125
|
assert_equal %w[gem_name=a version=1.0], body
|
126
|
-
assert_equal
|
126
|
+
assert_equal "other", @fetcher.last_request["Authorization"]
|
127
127
|
end
|
128
128
|
|
129
129
|
def test_execute_host
|
130
|
-
host =
|
130
|
+
host = "https://other.example"
|
131
131
|
yank_uri = "#{host}/api/v1/gems/yank"
|
132
|
-
@fetcher.data[yank_uri] = [
|
132
|
+
@fetcher.data[yank_uri] = ["Successfully yanked", 200, "OK"]
|
133
133
|
|
134
134
|
@cmd.options[:args] = %w[a]
|
135
|
-
@cmd.options[:version] = req(
|
135
|
+
@cmd.options[:version] = req("= 1.0")
|
136
136
|
@cmd.options[:host] = host
|
137
137
|
|
138
138
|
use_ui @ui do
|
@@ -142,26 +142,26 @@ class TestGemCommandsYankCommand < Gem::TestCase
|
|
142
142
|
assert_match %r{Yanking gem from https://other.example}, @ui.output
|
143
143
|
assert_match %r{Successfully yanked}, @ui.output
|
144
144
|
|
145
|
-
body = @fetcher.last_request.body.split(
|
145
|
+
body = @fetcher.last_request.body.split("&").sort
|
146
146
|
assert_equal %w[gem_name=a version=1.0], body
|
147
|
-
assert_equal
|
147
|
+
assert_equal "key", @fetcher.last_request["Authorization"]
|
148
148
|
assert_equal [yank_uri], @fetcher.paths
|
149
149
|
end
|
150
150
|
|
151
151
|
def test_yank_gem_unathorized_api_key
|
152
152
|
response_forbidden = "The API key doesn't have access"
|
153
|
-
response_success =
|
154
|
-
host =
|
153
|
+
response_success = "Successfully yanked"
|
154
|
+
host = "http://example"
|
155
155
|
|
156
156
|
@fetcher.data["#{host}/api/v1/gems/yank"] = [
|
157
|
-
[response_forbidden, 403,
|
157
|
+
[response_forbidden, 403, "Forbidden"],
|
158
158
|
[response_success, 200, "OK"],
|
159
159
|
]
|
160
160
|
|
161
161
|
@fetcher.data["#{host}/api/v1/api_key"] = ["", 200, "OK"]
|
162
162
|
@cmd.options[:args] = %w[a]
|
163
163
|
@cmd.options[:added_platform] = true
|
164
|
-
@cmd.options[:version] = req(
|
164
|
+
@cmd.options[:version] = req("= 1.0")
|
165
165
|
@cmd.instance_variable_set :@host, host
|
166
166
|
@cmd.instance_variable_set :@scope, :yank_rubygem
|
167
167
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
3
|
-
require
|
2
|
+
require_relative "helper"
|
3
|
+
require "rubygems/config_file"
|
4
4
|
|
5
5
|
class TestGemConfigFile < Gem::TestCase
|
6
6
|
def setup
|
@@ -8,15 +8,15 @@ class TestGemConfigFile < Gem::TestCase
|
|
8
8
|
|
9
9
|
credential_setup
|
10
10
|
|
11
|
-
@temp_conf = File.join @tempdir,
|
11
|
+
@temp_conf = File.join @tempdir, ".gemrc"
|
12
12
|
|
13
13
|
@cfg_args = %W[--config-file #{@temp_conf}]
|
14
14
|
|
15
15
|
Gem::ConfigFile::OPERATING_SYSTEM_DEFAULTS.clear
|
16
16
|
Gem::ConfigFile::PLATFORM_DEFAULTS.clear
|
17
17
|
|
18
|
-
@env_gemrc = ENV[
|
19
|
-
ENV[
|
18
|
+
@env_gemrc = ENV["GEMRC"]
|
19
|
+
ENV["GEMRC"] = ""
|
20
20
|
|
21
21
|
util_config_file
|
22
22
|
end
|
@@ -25,7 +25,7 @@ class TestGemConfigFile < Gem::TestCase
|
|
25
25
|
Gem::ConfigFile::OPERATING_SYSTEM_DEFAULTS.clear
|
26
26
|
Gem::ConfigFile::PLATFORM_DEFAULTS.clear
|
27
27
|
|
28
|
-
ENV[
|
28
|
+
ENV["GEMRC"] = @env_gemrc
|
29
29
|
|
30
30
|
credential_teardown
|
31
31
|
|
@@ -35,7 +35,7 @@ class TestGemConfigFile < Gem::TestCase
|
|
35
35
|
def test_initialize
|
36
36
|
assert_equal @temp_conf, @cfg.config_file_name
|
37
37
|
|
38
|
-
assert_equal
|
38
|
+
assert_equal true, @cfg.backtrace
|
39
39
|
assert_equal true, @cfg.update_sources
|
40
40
|
assert_equal Gem::ConfigFile::DEFAULT_BULK_THRESHOLD, @cfg.bulk_threshold
|
41
41
|
assert_equal true, @cfg.verbose
|
@@ -43,7 +43,7 @@ class TestGemConfigFile < Gem::TestCase
|
|
43
43
|
assert_equal 365, @cfg.cert_expiration_length_days
|
44
44
|
assert_equal false, @cfg.ipv4_fallback_enabled
|
45
45
|
|
46
|
-
File.open @temp_conf,
|
46
|
+
File.open @temp_conf, "w" do |fp|
|
47
47
|
fp.puts ":backtrace: true"
|
48
48
|
fp.puts ":update_sources: false"
|
49
49
|
fp.puts ":bulk_threshold: 10"
|
@@ -66,17 +66,17 @@ class TestGemConfigFile < Gem::TestCase
|
|
66
66
|
assert_equal false, @cfg.verbose
|
67
67
|
assert_equal false, @cfg.update_sources
|
68
68
|
assert_equal %w[http://more-gems.example.com], @cfg.sources
|
69
|
-
assert_equal
|
70
|
-
assert_equal([
|
69
|
+
assert_equal "--wrappers", @cfg[:install]
|
70
|
+
assert_equal(["/usr/ruby/1.8/lib/ruby/gems/1.8", "/var/ruby/1.8/gem_home"],
|
71
71
|
@cfg.path)
|
72
72
|
assert_equal 0, @cfg.ssl_verify_mode
|
73
|
-
assert_equal
|
73
|
+
assert_equal "/etc/ssl/certs", @cfg.ssl_ca_cert
|
74
74
|
assert_equal 28, @cfg.cert_expiration_length_days
|
75
75
|
assert_equal true, @cfg.ipv4_fallback_enabled
|
76
76
|
end
|
77
77
|
|
78
78
|
def test_initialize_ipv4_fallback_enabled_env
|
79
|
-
ENV[
|
79
|
+
ENV["IPV4_FALLBACK_ENABLED"] = "true"
|
80
80
|
util_config_file %W[--config-file #{@temp_conf}]
|
81
81
|
|
82
82
|
assert_equal true, @cfg.ipv4_fallback_enabled
|
@@ -102,37 +102,37 @@ class TestGemConfigFile < Gem::TestCase
|
|
102
102
|
|
103
103
|
def test_initialize_operating_system_override
|
104
104
|
Gem::ConfigFile::OPERATING_SYSTEM_DEFAULTS[:bulk_threshold] = 1
|
105
|
-
Gem::ConfigFile::OPERATING_SYSTEM_DEFAULTS[
|
105
|
+
Gem::ConfigFile::OPERATING_SYSTEM_DEFAULTS["install"] = "--no-env-shebang"
|
106
106
|
|
107
107
|
Gem::ConfigFile::PLATFORM_DEFAULTS[:bulk_threshold] = 2
|
108
108
|
|
109
109
|
util_config_file
|
110
110
|
|
111
111
|
assert_equal 2, @cfg.bulk_threshold
|
112
|
-
assert_equal
|
112
|
+
assert_equal "--no-env-shebang", @cfg[:install]
|
113
113
|
end
|
114
114
|
|
115
115
|
def test_initialize_platform_override
|
116
116
|
Gem::ConfigFile::PLATFORM_DEFAULTS[:bulk_threshold] = 2
|
117
|
-
Gem::ConfigFile::PLATFORM_DEFAULTS[
|
117
|
+
Gem::ConfigFile::PLATFORM_DEFAULTS["install"] = "--no-env-shebang"
|
118
118
|
|
119
|
-
File.open Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE,
|
119
|
+
File.open Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE, "w" do |fp|
|
120
120
|
fp.puts ":bulk_threshold: 3"
|
121
121
|
end
|
122
122
|
|
123
123
|
util_config_file
|
124
124
|
|
125
125
|
assert_equal 3, @cfg.bulk_threshold
|
126
|
-
assert_equal
|
126
|
+
assert_equal "--no-env-shebang", @cfg[:install]
|
127
127
|
end
|
128
128
|
|
129
129
|
def test_initialize_system_wide_override
|
130
|
-
File.open Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE,
|
130
|
+
File.open Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE, "w" do |fp|
|
131
131
|
fp.puts ":backtrace: false"
|
132
132
|
fp.puts ":bulk_threshold: 2048"
|
133
133
|
end
|
134
134
|
|
135
|
-
File.open @temp_conf,
|
135
|
+
File.open @temp_conf, "w" do |fp|
|
136
136
|
fp.puts ":backtrace: true"
|
137
137
|
end
|
138
138
|
|
@@ -143,28 +143,28 @@ class TestGemConfigFile < Gem::TestCase
|
|
143
143
|
end
|
144
144
|
|
145
145
|
def test_initialize_environment_variable_override
|
146
|
-
File.open Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE,
|
147
|
-
fp.puts
|
148
|
-
fp.puts
|
149
|
-
fp.puts
|
146
|
+
File.open Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE, "w" do |fp|
|
147
|
+
fp.puts ":backtrace: false"
|
148
|
+
fp.puts ":verbose: false"
|
149
|
+
fp.puts ":bulk_threshold: 2048"
|
150
150
|
end
|
151
151
|
|
152
|
-
conf1 = File.join @tempdir,
|
153
|
-
File.open conf1,
|
154
|
-
fp.puts
|
152
|
+
conf1 = File.join @tempdir, "gemrc1"
|
153
|
+
File.open conf1, "w" do |fp|
|
154
|
+
fp.puts ":backtrace: true"
|
155
155
|
end
|
156
156
|
|
157
|
-
conf2 = File.join @tempdir,
|
158
|
-
File.open conf2,
|
159
|
-
fp.puts
|
157
|
+
conf2 = File.join @tempdir, "gemrc2"
|
158
|
+
File.open conf2, "w" do |fp|
|
159
|
+
fp.puts ":verbose: true"
|
160
160
|
end
|
161
161
|
|
162
|
-
conf3 = File.join @tempdir,
|
163
|
-
File.open conf3,
|
164
|
-
fp.puts
|
162
|
+
conf3 = File.join @tempdir, "gemrc3"
|
163
|
+
File.open conf3, "w" do |fp|
|
164
|
+
fp.puts ":verbose: :loud"
|
165
165
|
end
|
166
166
|
ps = File::PATH_SEPARATOR
|
167
|
-
ENV[
|
167
|
+
ENV["GEMRC"] = conf1 + ps + conf2 + ps + conf3
|
168
168
|
|
169
169
|
util_config_file
|
170
170
|
|
@@ -174,7 +174,7 @@ class TestGemConfigFile < Gem::TestCase
|
|
174
174
|
end
|
175
175
|
|
176
176
|
def test_set_config_file_name_from_environment_variable
|
177
|
-
ENV[
|
177
|
+
ENV["GEMRC"] = "/tmp/.gemrc"
|
178
178
|
cfg = Gem::ConfigFile.new([])
|
179
179
|
assert_equal cfg.config_file_name, "/tmp/.gemrc"
|
180
180
|
end
|
@@ -182,22 +182,22 @@ class TestGemConfigFile < Gem::TestCase
|
|
182
182
|
def test_api_keys
|
183
183
|
assert_nil @cfg.instance_variable_get :@api_keys
|
184
184
|
|
185
|
-
temp_cred = File.join Gem.user_home,
|
185
|
+
temp_cred = File.join Gem.user_home, ".gem", "credentials"
|
186
186
|
FileUtils.mkdir_p File.dirname(temp_cred)
|
187
|
-
File.open temp_cred,
|
188
|
-
fp.puts
|
187
|
+
File.open temp_cred, "w", 0600 do |fp|
|
188
|
+
fp.puts ":rubygems_api_key: 701229f217cdf23b1344c7b4b54ca97"
|
189
189
|
end
|
190
190
|
|
191
191
|
util_config_file
|
192
192
|
|
193
|
-
assert_equal({ :rubygems =>
|
193
|
+
assert_equal({ :rubygems => "701229f217cdf23b1344c7b4b54ca97" },
|
194
194
|
@cfg.api_keys)
|
195
195
|
end
|
196
196
|
|
197
197
|
def test_check_credentials_permissions
|
198
|
-
pend
|
198
|
+
pend "chmod not supported" if win_platform?
|
199
199
|
|
200
|
-
@cfg.rubygems_api_key =
|
200
|
+
@cfg.rubygems_api_key = "x"
|
201
201
|
|
202
202
|
File.chmod 0644, @cfg.credentials_path
|
203
203
|
|
@@ -239,6 +239,12 @@ if you believe they were disclosed to a third party.
|
|
239
239
|
end
|
240
240
|
|
241
241
|
def test_handle_arguments_backtrace
|
242
|
+
File.open @temp_conf, "w" do |fp|
|
243
|
+
fp.puts ":backtrace: false"
|
244
|
+
end
|
245
|
+
|
246
|
+
util_config_file %W[--config-file=#{@temp_conf}]
|
247
|
+
|
242
248
|
assert_equal false, @cfg.backtrace
|
243
249
|
|
244
250
|
args = %w[--backtrace]
|
@@ -257,7 +263,7 @@ if you believe they were disclosed to a third party.
|
|
257
263
|
@cfg.handle_arguments args
|
258
264
|
end
|
259
265
|
|
260
|
-
assert_match
|
266
|
+
assert_match "NOTE", err
|
261
267
|
|
262
268
|
assert_equal true, $DEBUG
|
263
269
|
ensure
|
@@ -265,7 +271,7 @@ if you believe they were disclosed to a third party.
|
|
265
271
|
end
|
266
272
|
|
267
273
|
def test_handle_arguments_override
|
268
|
-
File.open @temp_conf,
|
274
|
+
File.open @temp_conf, "w" do |fp|
|
269
275
|
fp.puts ":backtrace: false"
|
270
276
|
end
|
271
277
|
|
@@ -275,6 +281,12 @@ if you believe they were disclosed to a third party.
|
|
275
281
|
end
|
276
282
|
|
277
283
|
def test_handle_arguments_traceback
|
284
|
+
File.open @temp_conf, "w" do |fp|
|
285
|
+
fp.puts ":backtrace: false"
|
286
|
+
end
|
287
|
+
|
288
|
+
util_config_file %W[--config-file=#{@temp_conf}]
|
289
|
+
|
278
290
|
assert_equal false, @cfg.backtrace
|
279
291
|
|
280
292
|
args = %w[--traceback]
|
@@ -287,8 +299,8 @@ if you believe they were disclosed to a third party.
|
|
287
299
|
def test_handle_arguments_norc
|
288
300
|
assert_equal @temp_conf, @cfg.config_file_name
|
289
301
|
|
290
|
-
File.open @temp_conf,
|
291
|
-
fp.puts ":backtrace:
|
302
|
+
File.open @temp_conf, "w" do |fp|
|
303
|
+
fp.puts ":backtrace: false"
|
292
304
|
fp.puts ":update_sources: false"
|
293
305
|
fp.puts ":bulk_threshold: 10"
|
294
306
|
fp.puts ":verbose: false"
|
@@ -300,7 +312,7 @@ if you believe they were disclosed to a third party.
|
|
300
312
|
|
301
313
|
util_config_file args
|
302
314
|
|
303
|
-
assert_equal
|
315
|
+
assert_equal true, @cfg.backtrace
|
304
316
|
assert_equal true, @cfg.update_sources
|
305
317
|
assert_equal Gem::ConfigFile::DEFAULT_BULK_THRESHOLD, @cfg.bulk_threshold
|
306
318
|
assert_equal true, @cfg.verbose
|
@@ -308,23 +320,23 @@ if you believe they were disclosed to a third party.
|
|
308
320
|
end
|
309
321
|
|
310
322
|
def test_load_api_keys
|
311
|
-
temp_cred = File.join Gem.user_home,
|
323
|
+
temp_cred = File.join Gem.user_home, ".gem", "credentials"
|
312
324
|
FileUtils.mkdir_p File.dirname(temp_cred)
|
313
|
-
File.open temp_cred,
|
325
|
+
File.open temp_cred, "w", 0600 do |fp|
|
314
326
|
fp.puts ":rubygems_api_key: 701229f217cdf23b1344c7b4b54ca97"
|
315
327
|
fp.puts ":other: a5fdbb6ba150cbb83aad2bb2fede64c"
|
316
328
|
end
|
317
329
|
|
318
330
|
util_config_file
|
319
331
|
|
320
|
-
assert_equal({ :rubygems =>
|
321
|
-
:other =>
|
332
|
+
assert_equal({ :rubygems => "701229f217cdf23b1344c7b4b54ca97",
|
333
|
+
:other => "a5fdbb6ba150cbb83aad2bb2fede64c" }, @cfg.api_keys)
|
322
334
|
end
|
323
335
|
|
324
336
|
def test_load_api_keys_bad_permission
|
325
|
-
pend
|
337
|
+
pend "chmod not supported" if win_platform?
|
326
338
|
|
327
|
-
@cfg.rubygems_api_key =
|
339
|
+
@cfg.rubygems_api_key = "x"
|
328
340
|
|
329
341
|
File.chmod 0644, @cfg.credentials_path
|
330
342
|
|
@@ -346,12 +358,12 @@ if you believe they were disclosed to a third party.
|
|
346
358
|
end
|
347
359
|
|
348
360
|
def test_rubygems_api_key_equals
|
349
|
-
@cfg.rubygems_api_key =
|
361
|
+
@cfg.rubygems_api_key = "x"
|
350
362
|
|
351
|
-
assert_equal
|
363
|
+
assert_equal "x", @cfg.rubygems_api_key
|
352
364
|
|
353
365
|
expected = {
|
354
|
-
:rubygems_api_key =>
|
366
|
+
:rubygems_api_key => "x",
|
355
367
|
}
|
356
368
|
|
357
369
|
assert_equal expected, load_yaml_file(@cfg.credentials_path)
|
@@ -364,18 +376,18 @@ if you believe they were disclosed to a third party.
|
|
364
376
|
end
|
365
377
|
|
366
378
|
def test_rubygems_api_key_equals_bad_permission
|
367
|
-
pend
|
379
|
+
pend "chmod not supported" if win_platform?
|
368
380
|
|
369
|
-
@cfg.rubygems_api_key =
|
381
|
+
@cfg.rubygems_api_key = "x"
|
370
382
|
|
371
383
|
File.chmod 0644, @cfg.credentials_path
|
372
384
|
|
373
385
|
assert_raise Gem::MockGemUi::TermError do
|
374
|
-
@cfg.rubygems_api_key =
|
386
|
+
@cfg.rubygems_api_key = "y"
|
375
387
|
end
|
376
388
|
|
377
389
|
expected = {
|
378
|
-
:rubygems_api_key =>
|
390
|
+
:rubygems_api_key => "x",
|
379
391
|
}
|
380
392
|
|
381
393
|
assert_equal expected, load_yaml_file(@cfg.credentials_path)
|
@@ -386,32 +398,32 @@ if you believe they were disclosed to a third party.
|
|
386
398
|
end
|
387
399
|
|
388
400
|
def test_write
|
389
|
-
@cfg.backtrace =
|
401
|
+
@cfg.backtrace = false
|
390
402
|
@cfg.update_sources = false
|
391
403
|
@cfg.bulk_threshold = 10
|
392
404
|
@cfg.verbose = false
|
393
405
|
Gem.sources.replace %w[http://more-gems.example.com]
|
394
|
-
@cfg[:install] =
|
406
|
+
@cfg[:install] = "--wrappers"
|
395
407
|
|
396
408
|
@cfg.write
|
397
409
|
|
398
410
|
util_config_file
|
399
411
|
|
400
412
|
# These should not be written out to the config file.
|
401
|
-
assert_equal
|
413
|
+
assert_equal true, @cfg.backtrace, "backtrace"
|
402
414
|
assert_equal Gem::ConfigFile::DEFAULT_BULK_THRESHOLD, @cfg.bulk_threshold,
|
403
|
-
|
404
|
-
assert_equal true, @cfg.update_sources,
|
405
|
-
assert_equal true, @cfg.verbose,
|
415
|
+
"bulk_threshold"
|
416
|
+
assert_equal true, @cfg.update_sources, "update_sources"
|
417
|
+
assert_equal true, @cfg.verbose, "verbose"
|
406
418
|
|
407
|
-
assert_equal
|
419
|
+
assert_equal "--wrappers", @cfg[:install], "install"
|
408
420
|
|
409
421
|
# this should be written out to the config file.
|
410
422
|
assert_equal %w[http://more-gems.example.com], Gem.sources
|
411
423
|
end
|
412
424
|
|
413
425
|
def test_write_from_hash
|
414
|
-
File.open @temp_conf,
|
426
|
+
File.open @temp_conf, "w" do |fp|
|
415
427
|
fp.puts ":backtrace: true"
|
416
428
|
fp.puts ":bulk_threshold: 10"
|
417
429
|
fp.puts ":update_sources: false"
|
@@ -431,29 +443,29 @@ if you believe they were disclosed to a third party.
|
|
431
443
|
@cfg.bulk_threshold = 20
|
432
444
|
@cfg.verbose = :junk
|
433
445
|
Gem.sources.replace %w[http://even-more-gems.example.com]
|
434
|
-
@cfg[:install] =
|
446
|
+
@cfg[:install] = "--wrappers --no-rdoc"
|
435
447
|
|
436
448
|
@cfg.write
|
437
449
|
|
438
450
|
util_config_file
|
439
451
|
|
440
452
|
# These should not be written out to the config file
|
441
|
-
assert_equal true, @cfg.backtrace,
|
442
|
-
assert_equal 10, @cfg.bulk_threshold,
|
443
|
-
assert_equal false, @cfg.update_sources,
|
444
|
-
assert_equal false, @cfg.verbose,
|
453
|
+
assert_equal true, @cfg.backtrace, "backtrace"
|
454
|
+
assert_equal 10, @cfg.bulk_threshold, "bulk_threshold"
|
455
|
+
assert_equal false, @cfg.update_sources, "update_sources"
|
456
|
+
assert_equal false, @cfg.verbose, "verbose"
|
445
457
|
|
446
458
|
assert_equal 2, @cfg.ssl_verify_mode
|
447
|
-
assert_equal
|
448
|
-
assert_equal
|
459
|
+
assert_equal "/nonexistent/ca_cert.pem", @cfg.ssl_ca_cert
|
460
|
+
assert_equal "/nonexistent/client_cert.pem", @cfg.ssl_client_cert
|
449
461
|
|
450
|
-
assert_equal
|
462
|
+
assert_equal "--wrappers --no-rdoc", @cfg[:install], "install"
|
451
463
|
|
452
464
|
assert_equal %w[http://even-more-gems.example.com], Gem.sources
|
453
465
|
end
|
454
466
|
|
455
467
|
def test_ignore_invalid_config_file
|
456
|
-
File.open @temp_conf,
|
468
|
+
File.open @temp_conf, "w" do |fp|
|
457
469
|
fp.puts "invalid: yaml:"
|
458
470
|
end
|
459
471
|
|
@@ -467,7 +479,7 @@ if you believe they were disclosed to a third party.
|
|
467
479
|
end
|
468
480
|
|
469
481
|
def test_load_ssl_verify_mode_from_config
|
470
|
-
File.open @temp_conf,
|
482
|
+
File.open @temp_conf, "w" do |fp|
|
471
483
|
fp.puts ":ssl_verify_mode: 1"
|
472
484
|
end
|
473
485
|
util_config_file
|
@@ -475,19 +487,19 @@ if you believe they were disclosed to a third party.
|
|
475
487
|
end
|
476
488
|
|
477
489
|
def test_load_ssl_ca_cert_from_config
|
478
|
-
File.open @temp_conf,
|
490
|
+
File.open @temp_conf, "w" do |fp|
|
479
491
|
fp.puts ":ssl_ca_cert: /home/me/certs"
|
480
492
|
end
|
481
493
|
util_config_file
|
482
|
-
assert_equal(
|
494
|
+
assert_equal("/home/me/certs", @cfg.ssl_ca_cert)
|
483
495
|
end
|
484
496
|
|
485
497
|
def test_load_ssl_client_cert_from_config
|
486
|
-
File.open @temp_conf,
|
498
|
+
File.open @temp_conf, "w" do |fp|
|
487
499
|
fp.puts ":ssl_client_cert: /home/me/mine.pem"
|
488
500
|
end
|
489
501
|
util_config_file
|
490
|
-
assert_equal(
|
502
|
+
assert_equal("/home/me/mine.pem", @cfg.ssl_client_cert)
|
491
503
|
end
|
492
504
|
|
493
505
|
def util_config_file(args = @cfg_args)
|
@@ -495,7 +507,7 @@ if you believe they were disclosed to a third party.
|
|
495
507
|
end
|
496
508
|
|
497
509
|
def test_disable_default_gem_server
|
498
|
-
File.open @temp_conf,
|
510
|
+
File.open @temp_conf, "w" do |fp|
|
499
511
|
fp.puts ":disable_default_gem_server: true"
|
500
512
|
end
|
501
513
|
util_config_file
|