rubygems-update 3.4.22 → 3.5.1

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.
Files changed (540) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +105 -2
  3. data/Manifest.txt +46 -221
  4. data/README.md +1 -3
  5. data/bundler/CHANGELOG.md +63 -0
  6. data/bundler/bundler.gemspec +4 -2
  7. data/bundler/exe/bundle +1 -10
  8. data/bundler/lib/bundler/build_metadata.rb +3 -3
  9. data/bundler/lib/bundler/capistrano.rb +1 -1
  10. data/bundler/lib/bundler/checksum.rb +254 -0
  11. data/bundler/lib/bundler/ci_detector.rb +75 -0
  12. data/bundler/lib/bundler/cli/add.rb +3 -3
  13. data/bundler/lib/bundler/cli/binstubs.rb +4 -4
  14. data/bundler/lib/bundler/cli/cache.rb +1 -1
  15. data/bundler/lib/bundler/cli/check.rb +1 -1
  16. data/bundler/lib/bundler/cli/common.rb +9 -1
  17. data/bundler/lib/bundler/cli/config.rb +8 -7
  18. data/bundler/lib/bundler/cli/console.rb +3 -2
  19. data/bundler/lib/bundler/cli/doctor.rb +2 -2
  20. data/bundler/lib/bundler/cli/exec.rb +1 -1
  21. data/bundler/lib/bundler/cli/gem.rb +28 -23
  22. data/bundler/lib/bundler/cli/info.rb +2 -13
  23. data/bundler/lib/bundler/cli/install.rb +5 -4
  24. data/bundler/lib/bundler/cli/issue.rb +1 -1
  25. data/bundler/lib/bundler/cli/lock.rb +4 -4
  26. data/bundler/lib/bundler/cli/open.rb +1 -1
  27. data/bundler/lib/bundler/cli/outdated.rb +6 -6
  28. data/bundler/lib/bundler/cli/plugin.rb +7 -14
  29. data/bundler/lib/bundler/cli/pristine.rb +38 -30
  30. data/bundler/lib/bundler/cli/show.rb +2 -2
  31. data/bundler/lib/bundler/cli/update.rb +5 -5
  32. data/bundler/lib/bundler/cli.rb +215 -263
  33. data/bundler/lib/bundler/compact_index_client/cache.rb +29 -9
  34. data/bundler/lib/bundler/compact_index_client/cache_file.rb +153 -0
  35. data/bundler/lib/bundler/compact_index_client/gem_parser.rb +7 -3
  36. data/bundler/lib/bundler/compact_index_client/updater.rb +79 -81
  37. data/bundler/lib/bundler/compact_index_client.rb +14 -7
  38. data/bundler/lib/bundler/constants.rb +1 -1
  39. data/bundler/lib/bundler/current_ruby.rb +5 -21
  40. data/bundler/lib/bundler/definition.rb +42 -15
  41. data/bundler/lib/bundler/dependency.rb +16 -12
  42. data/bundler/lib/bundler/digest.rb +2 -2
  43. data/bundler/lib/bundler/dsl.rb +46 -30
  44. data/bundler/lib/bundler/endpoint_specification.rb +5 -1
  45. data/bundler/lib/bundler/env.rb +1 -3
  46. data/bundler/lib/bundler/errors.rb +43 -0
  47. data/bundler/lib/bundler/fetcher/base.rb +3 -1
  48. data/bundler/lib/bundler/fetcher/compact_index.rb +4 -4
  49. data/bundler/lib/bundler/fetcher/downloader.rb +13 -11
  50. data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
  51. data/bundler/lib/bundler/fetcher/index.rb +1 -1
  52. data/bundler/lib/bundler/fetcher.rb +28 -25
  53. data/bundler/lib/bundler/friendly_errors.rb +5 -5
  54. data/bundler/lib/bundler/gem_helper.rb +1 -1
  55. data/bundler/lib/bundler/gem_helpers.rb +5 -2
  56. data/bundler/lib/bundler/graph.rb +9 -9
  57. data/bundler/lib/bundler/index.rb +1 -2
  58. data/bundler/lib/bundler/injector.rb +1 -1
  59. data/bundler/lib/bundler/inline.rb +3 -3
  60. data/bundler/lib/bundler/installer/gem_installer.rb +5 -5
  61. data/bundler/lib/bundler/installer/parallel_installer.rb +16 -8
  62. data/bundler/lib/bundler/installer/standalone.rb +2 -3
  63. data/bundler/lib/bundler/installer.rb +9 -9
  64. data/bundler/lib/bundler/lazy_specification.rb +24 -17
  65. data/bundler/lib/bundler/lockfile_generator.rb +9 -0
  66. data/bundler/lib/bundler/lockfile_parser.rb +81 -10
  67. data/bundler/lib/bundler/man/bundle-add.1 +3 -26
  68. data/bundler/lib/bundler/man/bundle-binstubs.1 +4 -16
  69. data/bundler/lib/bundler/man/bundle-cache.1 +3 -24
  70. data/bundler/lib/bundler/man/bundle-check.1 +3 -12
  71. data/bundler/lib/bundler/man/bundle-clean.1 +3 -10
  72. data/bundler/lib/bundler/man/bundle-config.1 +20 -211
  73. data/bundler/lib/bundler/man/bundle-config.1.ronn +6 -0
  74. data/bundler/lib/bundler/man/bundle-console.1 +4 -22
  75. data/bundler/lib/bundler/man/bundle-doctor.1 +4 -18
  76. data/bundler/lib/bundler/man/bundle-exec.1 +12 -73
  77. data/bundler/lib/bundler/man/bundle-gem.1 +13 -49
  78. data/bundler/lib/bundler/man/bundle-help.1 +3 -7
  79. data/bundler/lib/bundler/man/bundle-info.1 +3 -9
  80. data/bundler/lib/bundler/man/bundle-init.1 +3 -12
  81. data/bundler/lib/bundler/man/bundle-inject.1 +6 -19
  82. data/bundler/lib/bundler/man/bundle-install.1 +27 -125
  83. data/bundler/lib/bundler/man/bundle-install.1.ronn +1 -0
  84. data/bundler/lib/bundler/man/bundle-list.1 +4 -19
  85. data/bundler/lib/bundler/man/bundle-lock.1 +5 -29
  86. data/bundler/lib/bundler/man/bundle-open.1 +7 -27
  87. data/bundler/lib/bundler/man/bundle-outdated.1 +3 -55
  88. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -0
  89. data/bundler/lib/bundler/man/bundle-platform.1 +5 -27
  90. data/bundler/lib/bundler/man/bundle-plugin.1 +3 -29
  91. data/bundler/lib/bundler/man/bundle-pristine.1 +5 -16
  92. data/bundler/lib/bundler/man/bundle-remove.1 +4 -14
  93. data/bundler/lib/bundler/man/bundle-show.1 +3 -10
  94. data/bundler/lib/bundler/man/bundle-update.1 +18 -137
  95. data/bundler/lib/bundler/man/bundle-version.1 +3 -16
  96. data/bundler/lib/bundler/man/bundle-viz.1 +4 -16
  97. data/bundler/lib/bundler/man/bundle.1 +5 -44
  98. data/bundler/lib/bundler/man/gemfile.5 +24 -301
  99. data/bundler/lib/bundler/man/gemfile.5.ronn +4 -0
  100. data/bundler/lib/bundler/match_metadata.rb +4 -0
  101. data/bundler/lib/bundler/match_platform.rb +1 -1
  102. data/bundler/lib/bundler/plugin/api/source.rb +3 -2
  103. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  104. data/bundler/lib/bundler/plugin.rb +3 -3
  105. data/bundler/lib/bundler/resolver/base.rb +1 -1
  106. data/bundler/lib/bundler/resolver/incompatibility.rb +1 -1
  107. data/bundler/lib/bundler/resolver/spec_group.rb +1 -4
  108. data/bundler/lib/bundler/resolver.rb +16 -16
  109. data/bundler/lib/bundler/ruby_dsl.rb +20 -12
  110. data/bundler/lib/bundler/ruby_version.rb +1 -1
  111. data/bundler/lib/bundler/rubygems_ext.rb +24 -50
  112. data/bundler/lib/bundler/rubygems_gem_installer.rb +6 -56
  113. data/bundler/lib/bundler/rubygems_integration.rb +25 -94
  114. data/bundler/lib/bundler/runtime.rb +2 -2
  115. data/bundler/lib/bundler/self_manager.rb +23 -7
  116. data/bundler/lib/bundler/settings.rb +27 -7
  117. data/bundler/lib/bundler/setup.rb +4 -1
  118. data/bundler/lib/bundler/shared_helpers.rb +35 -13
  119. data/bundler/lib/bundler/source/git/git_proxy.rb +15 -15
  120. data/bundler/lib/bundler/source/git.rb +4 -3
  121. data/bundler/lib/bundler/source/metadata.rb +15 -15
  122. data/bundler/lib/bundler/source/path.rb +7 -6
  123. data/bundler/lib/bundler/source/rubygems.rb +21 -14
  124. data/bundler/lib/bundler/source.rb +2 -0
  125. data/bundler/lib/bundler/spec_set.rb +38 -10
  126. data/bundler/lib/bundler/stub_specification.rb +1 -0
  127. data/bundler/lib/bundler/templates/Executable.bundler +1 -1
  128. data/bundler/lib/bundler/templates/newgem/README.md.tt +3 -3
  129. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -6
  130. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +1 -1
  131. data/bundler/lib/bundler/templates/newgem/standard.yml.tt +1 -1
  132. data/bundler/lib/bundler/ui/shell.rb +1 -1
  133. data/bundler/lib/bundler/vendor/connection_pool/.document +1 -0
  134. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  135. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +53 -6
  136. data/bundler/lib/bundler/vendor/fileutils/.document +1 -0
  137. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +8 -20
  138. data/bundler/lib/bundler/vendor/net-http-persistent/.document +1 -0
  139. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +3 -3
  140. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +2 -2
  141. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
  142. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +34 -34
  143. data/bundler/lib/bundler/vendor/pub_grub/.document +1 -0
  144. data/bundler/lib/bundler/vendor/thor/.document +1 -0
  145. data/bundler/lib/bundler/vendor/tsort/.document +1 -0
  146. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
  147. data/bundler/lib/bundler/vendor/uri/.document +1 -0
  148. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +256 -132
  149. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1 -0
  150. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +95 -31
  151. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  152. data/bundler/lib/bundler/vendored_net_http.rb +8 -0
  153. data/bundler/lib/bundler/vendored_persistent.rb +0 -4
  154. data/bundler/lib/bundler/vendored_timeout.rb +8 -0
  155. data/bundler/lib/bundler/version.rb +1 -1
  156. data/bundler/lib/bundler/vlad.rb +1 -1
  157. data/bundler/lib/bundler/yaml_serializer.rb +3 -3
  158. data/bundler/lib/bundler.rb +41 -32
  159. data/lib/rubygems/available_set.rb +4 -4
  160. data/lib/rubygems/basic_specification.rb +35 -37
  161. data/lib/rubygems/bundler_version_finder.rb +4 -4
  162. data/lib/rubygems/ci_detector.rb +75 -0
  163. data/lib/rubygems/command.rb +13 -15
  164. data/lib/rubygems/command_manager.rb +5 -4
  165. data/lib/rubygems/commands/build_command.rb +2 -2
  166. data/lib/rubygems/commands/cert_command.rb +1 -2
  167. data/lib/rubygems/commands/check_command.rb +4 -4
  168. data/lib/rubygems/commands/cleanup_command.rb +12 -14
  169. data/lib/rubygems/commands/contents_command.rb +4 -4
  170. data/lib/rubygems/commands/dependency_command.rb +4 -5
  171. data/lib/rubygems/commands/environment_command.rb +1 -3
  172. data/lib/rubygems/commands/exec_command.rb +1 -1
  173. data/lib/rubygems/commands/fetch_command.rb +2 -2
  174. data/lib/rubygems/commands/generate_index_command.rb +39 -74
  175. data/lib/rubygems/commands/help_command.rb +3 -3
  176. data/lib/rubygems/commands/info_command.rb +2 -2
  177. data/lib/rubygems/commands/install_command.rb +8 -16
  178. data/lib/rubygems/commands/list_command.rb +2 -2
  179. data/lib/rubygems/commands/lock_command.rb +1 -1
  180. data/lib/rubygems/commands/open_command.rb +1 -1
  181. data/lib/rubygems/commands/owner_command.rb +1 -1
  182. data/lib/rubygems/commands/pristine_command.rb +13 -15
  183. data/lib/rubygems/commands/push_command.rb +2 -2
  184. data/lib/rubygems/commands/query_command.rb +4 -5
  185. data/lib/rubygems/commands/rdoc_command.rb +2 -2
  186. data/lib/rubygems/commands/search_command.rb +2 -2
  187. data/lib/rubygems/commands/setup_command.rb +31 -34
  188. data/lib/rubygems/commands/sources_command.rb +12 -12
  189. data/lib/rubygems/commands/specification_command.rb +10 -10
  190. data/lib/rubygems/commands/stale_command.rb +1 -1
  191. data/lib/rubygems/commands/uninstall_command.rb +9 -10
  192. data/lib/rubygems/commands/unpack_command.rb +4 -4
  193. data/lib/rubygems/commands/update_command.rb +10 -12
  194. data/lib/rubygems/commands/which_command.rb +1 -1
  195. data/lib/rubygems/commands/yank_command.rb +1 -1
  196. data/lib/rubygems/compatibility.rb +5 -6
  197. data/lib/rubygems/config_file.rb +4 -4
  198. data/lib/rubygems/core_ext/kernel_gem.rb +0 -2
  199. data/lib/rubygems/core_ext/kernel_require.rb +19 -48
  200. data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
  201. data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
  202. data/lib/rubygems/defaults.rb +15 -3
  203. data/lib/rubygems/dependency.rb +12 -14
  204. data/lib/rubygems/dependency_installer.rb +29 -30
  205. data/lib/rubygems/dependency_list.rb +1 -1
  206. data/lib/rubygems/deprecate.rb +16 -15
  207. data/lib/rubygems/doctor.rb +5 -5
  208. data/lib/rubygems/errors.rb +2 -6
  209. data/lib/rubygems/exceptions.rb +2 -1
  210. data/lib/rubygems/ext/builder.rb +15 -10
  211. data/lib/rubygems/ext/cargo_builder.rb +5 -5
  212. data/lib/rubygems/ext/ext_conf_builder.rb +1 -3
  213. data/lib/rubygems/gem_runner.rb +4 -4
  214. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +3 -3
  215. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -3
  216. data/lib/rubygems/gemcutter_utilities.rb +18 -19
  217. data/lib/rubygems/install_update_options.rb +18 -19
  218. data/lib/rubygems/installer.rb +59 -33
  219. data/lib/rubygems/installer_uninstaller_utils.rb +0 -2
  220. data/lib/rubygems/local_remote_options.rb +7 -10
  221. data/lib/rubygems/name_tuple.rb +7 -9
  222. data/lib/rubygems/net/http.rb +3 -0
  223. data/lib/rubygems/net-http/.document +1 -0
  224. data/lib/rubygems/net-http/LICENSE.txt +22 -0
  225. data/lib/rubygems/net-http/lib/net/http/backward.rb +40 -0
  226. data/lib/rubygems/net-http/lib/net/http/exceptions.rb +34 -0
  227. data/lib/rubygems/net-http/lib/net/http/generic_request.rb +414 -0
  228. data/lib/rubygems/net-http/lib/net/http/header.rb +981 -0
  229. data/lib/rubygems/net-http/lib/net/http/proxy_delta.rb +17 -0
  230. data/lib/rubygems/net-http/lib/net/http/request.rb +88 -0
  231. data/lib/rubygems/net-http/lib/net/http/requests.rb +425 -0
  232. data/lib/rubygems/net-http/lib/net/http/response.rb +738 -0
  233. data/lib/rubygems/net-http/lib/net/http/responses.rb +1174 -0
  234. data/lib/rubygems/net-http/lib/net/http/status.rb +84 -0
  235. data/lib/rubygems/net-http/lib/net/http.rb +2496 -0
  236. data/lib/rubygems/net-http/lib/net/https.rb +23 -0
  237. data/lib/rubygems/net-protocol/.document +1 -0
  238. data/lib/rubygems/net-protocol/LICENSE.txt +22 -0
  239. data/lib/rubygems/net-protocol/lib/net/protocol.rb +544 -0
  240. data/lib/rubygems/optparse/lib/optparse.rb +39 -17
  241. data/lib/rubygems/package/old.rb +2 -2
  242. data/lib/rubygems/package/tar_header.rb +45 -39
  243. data/lib/rubygems/package/tar_reader/entry.rb +5 -4
  244. data/lib/rubygems/package/tar_reader.rb +5 -3
  245. data/lib/rubygems/package/tar_writer.rb +19 -17
  246. data/lib/rubygems/package.rb +27 -26
  247. data/lib/rubygems/package_task.rb +2 -2
  248. data/lib/rubygems/path_support.rb +9 -10
  249. data/lib/rubygems/platform.rb +60 -45
  250. data/lib/rubygems/query_utils.rb +7 -9
  251. data/lib/rubygems/remote_fetcher.rb +15 -15
  252. data/lib/rubygems/request/connection_pools.rb +3 -3
  253. data/lib/rubygems/request.rb +20 -17
  254. data/lib/rubygems/request_set/gem_dependency_api.rb +119 -122
  255. data/lib/rubygems/request_set/lockfile/parser.rb +9 -9
  256. data/lib/rubygems/request_set/lockfile/tokenizer.rb +20 -12
  257. data/lib/rubygems/request_set/lockfile.rb +6 -11
  258. data/lib/rubygems/request_set.rb +5 -5
  259. data/lib/rubygems/requirement.rb +7 -7
  260. data/lib/rubygems/resolv/.document +1 -0
  261. data/lib/rubygems/resolv/LICENSE.txt +22 -0
  262. data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
  263. data/lib/rubygems/resolver/activation_request.rb +1 -3
  264. data/lib/rubygems/resolver/api_set/gem_parser.rb +7 -3
  265. data/lib/rubygems/resolver/best_set.rb +1 -1
  266. data/lib/rubygems/resolver/composed_set.rb +1 -1
  267. data/lib/rubygems/resolver/conflict.rb +4 -12
  268. data/lib/rubygems/resolver/index_set.rb +4 -4
  269. data/lib/rubygems/resolver/index_specification.rb +2 -2
  270. data/lib/rubygems/resolver/installer_set.rb +5 -6
  271. data/lib/rubygems/resolver/lock_set.rb +1 -1
  272. data/lib/rubygems/resolver/molinillo/.document +1 -0
  273. data/lib/rubygems/resolver.rb +3 -10
  274. data/lib/rubygems/s3_uri_signer.rb +6 -6
  275. data/lib/rubygems/safe_marshal/elements.rb +138 -0
  276. data/lib/rubygems/safe_marshal/reader.rb +306 -0
  277. data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
  278. data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +385 -0
  279. data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
  280. data/lib/rubygems/safe_marshal.rb +74 -0
  281. data/lib/rubygems/safe_yaml.rb +5 -28
  282. data/lib/rubygems/security/policies.rb +36 -38
  283. data/lib/rubygems/security/policy.rb +7 -11
  284. data/lib/rubygems/security/signer.rb +1 -1
  285. data/lib/rubygems/security/trust_dir.rb +3 -3
  286. data/lib/rubygems/security.rb +8 -22
  287. data/lib/rubygems/source/git.rb +1 -3
  288. data/lib/rubygems/source/installed.rb +0 -2
  289. data/lib/rubygems/source/local.rb +5 -8
  290. data/lib/rubygems/source/lock.rb +1 -3
  291. data/lib/rubygems/source/specific_file.rb +0 -1
  292. data/lib/rubygems/source/vendor.rb +0 -2
  293. data/lib/rubygems/source.rb +12 -12
  294. data/lib/rubygems/source_list.rb +4 -4
  295. data/lib/rubygems/spec_fetcher.rb +29 -29
  296. data/lib/rubygems/specification.rb +125 -138
  297. data/lib/rubygems/specification_policy.rb +55 -25
  298. data/lib/rubygems/stub_specification.rb +4 -5
  299. data/lib/rubygems/text.rb +1 -2
  300. data/lib/rubygems/timeout/.document +1 -0
  301. data/lib/rubygems/timeout/LICENSE.txt +22 -0
  302. data/lib/rubygems/timeout/lib/timeout.rb +199 -0
  303. data/lib/rubygems/timeout.rb +3 -0
  304. data/lib/rubygems/tsort/lib/tsort.rb +3 -0
  305. data/lib/rubygems/uninstaller.rb +7 -9
  306. data/lib/rubygems/update_suggestion.rb +5 -18
  307. data/lib/rubygems/uri_formatter.rb +1 -1
  308. data/lib/rubygems/user_interaction.rb +15 -21
  309. data/lib/rubygems/util/licenses.rb +65 -35
  310. data/lib/rubygems/util/list.rb +3 -1
  311. data/lib/rubygems/util.rb +2 -4
  312. data/lib/rubygems/validator.rb +5 -3
  313. data/lib/rubygems/version.rb +34 -28
  314. data/lib/rubygems/version_option.rb +2 -5
  315. data/lib/rubygems/yaml_serializer.rb +3 -3
  316. data/lib/rubygems.rb +37 -37
  317. data/rubygems-update.gemspec +4 -4
  318. data/setup.rb +2 -2
  319. metadata +50 -225
  320. data/lib/rubygems/indexer.rb +0 -428
  321. data/lib/rubygems/mock_gem_ui.rb +0 -86
  322. data/test/rubygems/alternate_cert.pem +0 -19
  323. data/test/rubygems/alternate_cert_32.pem +0 -19
  324. data/test/rubygems/alternate_key.pem +0 -27
  325. data/test/rubygems/bad_rake.rb +0 -3
  326. data/test/rubygems/bundler_test_gem.rb +0 -424
  327. data/test/rubygems/ca_cert.pem +0 -77
  328. data/test/rubygems/child_cert.pem +0 -19
  329. data/test/rubygems/child_cert_32.pem +0 -19
  330. data/test/rubygems/child_key.pem +0 -27
  331. data/test/rubygems/client.pem +0 -107
  332. data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
  333. data/test/rubygems/data/gem-private_key.pem +0 -27
  334. data/test/rubygems/data/gem-public_cert.pem +0 -20
  335. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  336. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  337. data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
  338. data/test/rubygems/encrypted_private_key.pem +0 -30
  339. data/test/rubygems/expired_cert.pem +0 -19
  340. data/test/rubygems/fake_certlib/openssl.rb +0 -9
  341. data/test/rubygems/foo/discover.rb +0 -1
  342. data/test/rubygems/future_cert.pem +0 -19
  343. data/test/rubygems/future_cert_32.pem +0 -19
  344. data/test/rubygems/good_rake.rb +0 -3
  345. data/test/rubygems/grandchild_cert.pem +0 -19
  346. data/test/rubygems/grandchild_cert_32.pem +0 -19
  347. data/test/rubygems/grandchild_key.pem +0 -27
  348. data/test/rubygems/helper.rb +0 -1649
  349. data/test/rubygems/installer_test_case.rb +0 -248
  350. data/test/rubygems/invalid_client.pem +0 -49
  351. data/test/rubygems/invalid_issuer_cert.pem +0 -20
  352. data/test/rubygems/invalid_issuer_cert_32.pem +0 -20
  353. data/test/rubygems/invalid_key.pem +0 -27
  354. data/test/rubygems/invalid_signer_cert.pem +0 -19
  355. data/test/rubygems/invalid_signer_cert_32.pem +0 -19
  356. data/test/rubygems/invalidchild_cert.pem +0 -19
  357. data/test/rubygems/invalidchild_cert_32.pem +0 -19
  358. data/test/rubygems/invalidchild_key.pem +0 -27
  359. data/test/rubygems/multifactor_auth_utilities.rb +0 -111
  360. data/test/rubygems/package/tar_test_case.rb +0 -175
  361. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  362. data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
  363. data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
  364. data/test/rubygems/plugin/exception/rubygems_plugin.rb +0 -4
  365. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -5
  366. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -4
  367. data/test/rubygems/private3072_key.pem +0 -40
  368. data/test/rubygems/private_ec_key.pem +0 -9
  369. data/test/rubygems/private_key.pem +0 -27
  370. data/test/rubygems/public3072_cert.pem +0 -25
  371. data/test/rubygems/public_cert.pem +0 -20
  372. data/test/rubygems/public_cert_32.pem +0 -19
  373. data/test/rubygems/public_key.pem +0 -9
  374. data/test/rubygems/rubygems/commands/crash_command.rb +0 -5
  375. data/test/rubygems/rubygems_plugin.rb +0 -24
  376. data/test/rubygems/sff/discover.rb +0 -1
  377. data/test/rubygems/simple_gem.rb +0 -68
  378. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -9
  379. data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
  380. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -14
  381. data/test/rubygems/ssl_cert.pem +0 -80
  382. data/test/rubygems/ssl_key.pem +0 -27
  383. data/test/rubygems/test_bundled_ca.rb +0 -61
  384. data/test/rubygems/test_config.rb +0 -28
  385. data/test/rubygems/test_deprecate.rb +0 -158
  386. data/test/rubygems/test_exit.rb +0 -17
  387. data/test/rubygems/test_gem.rb +0 -1799
  388. data/test/rubygems/test_gem_available_set.rb +0 -130
  389. data/test/rubygems/test_gem_bundler_version_finder.rb +0 -127
  390. data/test/rubygems/test_gem_command.rb +0 -403
  391. data/test/rubygems/test_gem_command_manager.rb +0 -400
  392. data/test/rubygems/test_gem_commands_build_command.rb +0 -739
  393. data/test/rubygems/test_gem_commands_cert_command.rb +0 -866
  394. data/test/rubygems/test_gem_commands_check_command.rb +0 -68
  395. data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -292
  396. data/test/rubygems/test_gem_commands_contents_command.rb +0 -271
  397. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -228
  398. data/test/rubygems/test_gem_commands_environment_command.rb +0 -169
  399. data/test/rubygems/test_gem_commands_exec_command.rb +0 -857
  400. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -258
  401. data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -81
  402. data/test/rubygems/test_gem_commands_help_command.rb +0 -94
  403. data/test/rubygems/test_gem_commands_info_command.rb +0 -70
  404. data/test/rubygems/test_gem_commands_install_command.rb +0 -1573
  405. data/test/rubygems/test_gem_commands_list_command.rb +0 -33
  406. data/test/rubygems/test_gem_commands_lock_command.rb +0 -67
  407. data/test/rubygems/test_gem_commands_mirror.rb +0 -20
  408. data/test/rubygems/test_gem_commands_open_command.rb +0 -101
  409. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -50
  410. data/test/rubygems/test_gem_commands_owner_command.rb +0 -503
  411. data/test/rubygems/test_gem_commands_pristine_command.rb +0 -708
  412. data/test/rubygems/test_gem_commands_push_command.rb +0 -603
  413. data/test/rubygems/test_gem_commands_query_command.rb +0 -858
  414. data/test/rubygems/test_gem_commands_search_command.rb +0 -16
  415. data/test/rubygems/test_gem_commands_server_command.rb +0 -20
  416. data/test/rubygems/test_gem_commands_setup_command.rb +0 -474
  417. data/test/rubygems/test_gem_commands_signin_command.rb +0 -259
  418. data/test/rubygems/test_gem_commands_signout_command.rb +0 -30
  419. data/test/rubygems/test_gem_commands_sources_command.rb +0 -534
  420. data/test/rubygems/test_gem_commands_specification_command.rb +0 -277
  421. data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
  422. data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -542
  423. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -224
  424. data/test/rubygems/test_gem_commands_update_command.rb +0 -836
  425. data/test/rubygems/test_gem_commands_which_command.rb +0 -85
  426. data/test/rubygems/test_gem_commands_yank_command.rb +0 -299
  427. data/test/rubygems/test_gem_config_file.rb +0 -551
  428. data/test/rubygems/test_gem_dependency.rb +0 -398
  429. data/test/rubygems/test_gem_dependency_installer.rb +0 -1190
  430. data/test/rubygems/test_gem_dependency_list.rb +0 -265
  431. data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -27
  432. data/test/rubygems/test_gem_doctor.rb +0 -195
  433. data/test/rubygems/test_gem_ext_builder.rb +0 -337
  434. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +0 -1
  435. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +0 -10
  436. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +0 -249
  437. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +0 -10
  438. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +0 -27
  439. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +0 -3
  440. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +0 -1
  441. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +0 -249
  442. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +0 -10
  443. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +0 -10
  444. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +0 -51
  445. data/test/rubygems/test_gem_ext_cargo_builder.rb +0 -167
  446. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +0 -34
  447. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -60
  448. data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -84
  449. data/test/rubygems/test_gem_ext_configure_builder.rb +0 -80
  450. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -229
  451. data/test/rubygems/test_gem_ext_rake_builder.rb +0 -113
  452. data/test/rubygems/test_gem_gem_runner.rb +0 -119
  453. data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -361
  454. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -60
  455. data/test/rubygems/test_gem_indexer.rb +0 -381
  456. data/test/rubygems/test_gem_install_update_options.rb +0 -208
  457. data/test/rubygems/test_gem_installer.rb +0 -2512
  458. data/test/rubygems/test_gem_local_remote_options.rb +0 -133
  459. data/test/rubygems/test_gem_name_tuple.rb +0 -43
  460. data/test/rubygems/test_gem_package.rb +0 -1306
  461. data/test/rubygems/test_gem_package_old.rb +0 -91
  462. data/test/rubygems/test_gem_package_tar_header.rb +0 -226
  463. data/test/rubygems/test_gem_package_tar_reader.rb +0 -150
  464. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -350
  465. data/test/rubygems/test_gem_package_tar_writer.rb +0 -331
  466. data/test/rubygems/test_gem_package_task.rb +0 -118
  467. data/test/rubygems/test_gem_path_support.rb +0 -139
  468. data/test/rubygems/test_gem_platform.rb +0 -497
  469. data/test/rubygems/test_gem_rdoc.rb +0 -137
  470. data/test/rubygems/test_gem_remote_fetcher.rb +0 -1227
  471. data/test/rubygems/test_gem_request.rb +0 -547
  472. data/test/rubygems/test_gem_request_connection_pools.rb +0 -152
  473. data/test/rubygems/test_gem_request_set.rb +0 -672
  474. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -853
  475. data/test/rubygems/test_gem_request_set_lockfile.rb +0 -469
  476. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -544
  477. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -307
  478. data/test/rubygems/test_gem_requirement.rb +0 -505
  479. data/test/rubygems/test_gem_resolver.rb +0 -859
  480. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -43
  481. data/test/rubygems/test_gem_resolver_api_set.rb +0 -210
  482. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -167
  483. data/test/rubygems/test_gem_resolver_best_set.rb +0 -159
  484. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -44
  485. data/test/rubygems/test_gem_resolver_conflict.rb +0 -82
  486. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -83
  487. data/test/rubygems/test_gem_resolver_git_set.rb +0 -188
  488. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
  489. data/test/rubygems/test_gem_resolver_index_set.rb +0 -88
  490. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -93
  491. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -47
  492. data/test/rubygems/test_gem_resolver_installer_set.rb +0 -320
  493. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -44
  494. data/test/rubygems/test_gem_resolver_lock_set.rb +0 -62
  495. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -98
  496. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -19
  497. data/test/rubygems/test_gem_resolver_specification.rb +0 -63
  498. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -82
  499. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -82
  500. data/test/rubygems/test_gem_security.rb +0 -341
  501. data/test/rubygems/test_gem_security_policy.rb +0 -535
  502. data/test/rubygems/test_gem_security_signer.rb +0 -218
  503. data/test/rubygems/test_gem_security_trust_dir.rb +0 -99
  504. data/test/rubygems/test_gem_silent_ui.rb +0 -123
  505. data/test/rubygems/test_gem_source.rb +0 -254
  506. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -37
  507. data/test/rubygems/test_gem_source_git.rb +0 -310
  508. data/test/rubygems/test_gem_source_installed.rb +0 -35
  509. data/test/rubygems/test_gem_source_list.rb +0 -119
  510. data/test/rubygems/test_gem_source_local.rb +0 -107
  511. data/test/rubygems/test_gem_source_lock.rb +0 -113
  512. data/test/rubygems/test_gem_source_specific_file.rb +0 -76
  513. data/test/rubygems/test_gem_source_subpath_problem.rb +0 -50
  514. data/test/rubygems/test_gem_source_vendor.rb +0 -30
  515. data/test/rubygems/test_gem_spec_fetcher.rb +0 -338
  516. data/test/rubygems/test_gem_specification.rb +0 -3856
  517. data/test/rubygems/test_gem_stream_ui.rb +0 -255
  518. data/test/rubygems/test_gem_stub_specification.rb +0 -278
  519. data/test/rubygems/test_gem_text.rb +0 -103
  520. data/test/rubygems/test_gem_uninstaller.rb +0 -675
  521. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -31
  522. data/test/rubygems/test_gem_update_suggestion.rb +0 -209
  523. data/test/rubygems/test_gem_uri.rb +0 -41
  524. data/test/rubygems/test_gem_uri_formatter.rb +0 -27
  525. data/test/rubygems/test_gem_util.rb +0 -91
  526. data/test/rubygems/test_gem_validator.rb +0 -42
  527. data/test/rubygems/test_gem_version.rb +0 -305
  528. data/test/rubygems/test_gem_version_option.rb +0 -165
  529. data/test/rubygems/test_kernel.rb +0 -124
  530. data/test/rubygems/test_project_sanity.rb +0 -49
  531. data/test/rubygems/test_remote_fetch_error.rb +0 -20
  532. data/test/rubygems/test_require.rb +0 -732
  533. data/test/rubygems/test_rubygems.rb +0 -76
  534. data/test/rubygems/test_webauthn_listener.rb +0 -143
  535. data/test/rubygems/test_webauthn_listener_response.rb +0 -93
  536. data/test/rubygems/test_webauthn_poller.rb +0 -124
  537. data/test/rubygems/utilities.rb +0 -436
  538. data/test/rubygems/wrong_key_cert.pem +0 -19
  539. data/test/rubygems/wrong_key_cert_32.pem +0 -19
  540. data/test/test_changelog_generator.rb +0 -17
@@ -1,836 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/commands/update_command"
5
-
6
- class TestGemCommandsUpdateCommand < Gem::TestCase
7
- def setup
8
- super
9
- common_installer_setup
10
-
11
- @cmd = Gem::Commands::UpdateCommand.new
12
-
13
- @cmd.options[:document] = []
14
-
15
- @specs = spec_fetcher do |fetcher|
16
- fetcher.download "a", 1
17
- fetcher.download "a", 2
18
- fetcher.download "a", "3.a"
19
- end
20
-
21
- @a1_path = @specs["a-1"].cache_file
22
- @a2_path = @specs["a-1"].cache_file
23
- @a3a_path = @specs["a-3.a"].cache_file
24
- end
25
-
26
- def test_execute
27
- spec_fetcher do |fetcher|
28
- fetcher.download "a", 2
29
- fetcher.spec "a", 1
30
- end
31
-
32
- @cmd.options[:args] = []
33
-
34
- use_ui @ui do
35
- @cmd.execute
36
- end
37
-
38
- out = @ui.output.split "\n"
39
- assert_equal "Updating installed gems", out.shift
40
- assert_equal "Updating a", out.shift
41
- assert_equal "Gems updated: a", out.shift
42
- assert_empty out
43
- end
44
-
45
- def test_execute_multiple
46
- spec_fetcher do |fetcher|
47
- fetcher.download "a", 2
48
- fetcher.download "ab", 2
49
-
50
- fetcher.spec "a", 1
51
- fetcher.spec "ab", 1
52
- end
53
-
54
- @cmd.options[:args] = %w[a]
55
-
56
- use_ui @ui do
57
- @cmd.execute
58
- end
59
-
60
- out = @ui.output.split "\n"
61
- assert_equal "Updating installed gems", out.shift
62
- assert_equal "Updating a", out.shift
63
- assert_equal "Gems updated: a", out.shift
64
- assert_empty out
65
- end
66
-
67
- def test_execute_system
68
- spec_fetcher do |fetcher|
69
- fetcher.download "rubygems-update", 9 do |s|
70
- s.files = %w[setup.rb]
71
- end
72
- end
73
-
74
- @cmd.options[:args] = []
75
- @cmd.options[:system] = true
76
-
77
- use_ui @ui do
78
- @cmd.execute
79
- end
80
-
81
- out = @ui.output.split "\n"
82
- assert_equal "Updating rubygems-update", out.shift
83
- assert_equal "Installing RubyGems 9", out.shift
84
- assert_equal "RubyGems system software updated", out.shift
85
-
86
- assert_empty out
87
- end
88
-
89
- def test_execute_system_at_latest
90
- spec_fetcher do |fetcher|
91
- fetcher.download "rubygems-update", Gem::VERSION do |s|
92
- s.files = %w[setup.rb]
93
- end
94
- end
95
-
96
- @cmd.options[:args] = []
97
- @cmd.options[:system] = true
98
-
99
- assert_raise Gem::MockGemUi::SystemExitException do
100
- use_ui @ui do
101
- @cmd.execute
102
- end
103
- end
104
-
105
- out = @ui.output.split "\n"
106
- assert_equal "Latest version already installed. Done.", out.shift
107
- assert_empty out
108
- end
109
-
110
- def test_execute_system_when_latest_does_not_support_your_ruby
111
- spec_fetcher do |fetcher|
112
- fetcher.download "rubygems-update", 9 do |s|
113
- s.files = %w[setup.rb]
114
- s.required_ruby_version = "> 9"
115
- end
116
- end
117
-
118
- @cmd.options[:args] = []
119
- @cmd.options[:system] = true
120
-
121
- use_ui @ui do
122
- @cmd.execute
123
- end
124
-
125
- out = @ui.output.split "\n"
126
- assert_equal "Updating rubygems-update", out.shift
127
- assert_empty out
128
-
129
- err = @ui.error.split "\n"
130
- assert_equal "ERROR: Error installing rubygems-update:", err.shift
131
- assert_equal "\trubygems-update-9 requires Ruby version > 9. The current ruby version is #{Gem.ruby_version}.", err.shift
132
- assert_empty err
133
- end
134
-
135
- def test_execute_system_multiple
136
- spec_fetcher do |fetcher|
137
- fetcher.download "rubygems-update", 8 do |s|
138
- s.files = %w[setup.rb]
139
- end
140
-
141
- fetcher.download "rubygems-update", 9 do |s|
142
- s.files = %w[setup.rb]
143
- end
144
- end
145
-
146
- @cmd.options[:args] = []
147
- @cmd.options[:system] = true
148
-
149
- use_ui @ui do
150
- @cmd.execute
151
- end
152
-
153
- out = @ui.output.split "\n"
154
- assert_equal "Updating rubygems-update", out.shift
155
- assert_equal "Installing RubyGems 9", out.shift
156
- assert_equal "RubyGems system software updated", out.shift
157
-
158
- assert_empty out
159
- end
160
-
161
- def test_execute_system_update_installed
162
- spec_fetcher do |fetcher|
163
- fetcher.download "rubygems-update", 8 do |s|
164
- s.files = %w[setup.rb]
165
- end
166
- end
167
-
168
- @cmd.options[:args] = []
169
- @cmd.options[:system] = true
170
-
171
- @cmd.execute
172
-
173
- spec_fetcher do |fetcher|
174
- fetcher.download "rubygems-update", 9 do |s|
175
- s.files = %w[setup.rb]
176
- end
177
- end
178
-
179
- @cmd = Gem::Commands::UpdateCommand.new
180
- @cmd.options[:args] = []
181
- @cmd.options[:system] = true
182
-
183
- use_ui @ui do
184
- @cmd.execute
185
- end
186
-
187
- out = @ui.output.split "\n"
188
- assert_equal "Updating rubygems-update", out.shift
189
- assert_equal "Installing RubyGems 9", out.shift
190
- assert_equal "RubyGems system software updated", out.shift
191
-
192
- assert_empty out
193
- end
194
-
195
- def test_execute_system_update_installed_in_non_default_gem_path
196
- rubygems_update_spec = quick_gem "rubygems-update", 9 do |s|
197
- write_file File.join(@tempdir, "setup.rb")
198
-
199
- s.files += %w[setup.rb]
200
- end
201
-
202
- util_setup_spec_fetcher rubygems_update_spec
203
-
204
- rubygems_update_package = Gem::Package.build rubygems_update_spec
205
-
206
- gemhome2 = "#{@gemhome}2"
207
-
208
- Gem::Installer.at(rubygems_update_package, :install_dir => gemhome2).install
209
-
210
- Gem.use_paths @gemhome, [gemhome2, @gemhome]
211
-
212
- @cmd.options[:args] = []
213
- @cmd.options[:system] = true
214
-
215
- use_ui @ui do
216
- @cmd.execute
217
- end
218
-
219
- out = @ui.output.split "\n"
220
- assert_equal "Installing RubyGems 9", out.shift
221
- assert_equal "RubyGems system software updated", out.shift
222
-
223
- assert_empty out
224
- end
225
-
226
- def test_execute_system_specific
227
- spec_fetcher do |fetcher|
228
- fetcher.download "rubygems-update", 8 do |s|
229
- s.files = %w[setup.rb]
230
- end
231
-
232
- fetcher.download "rubygems-update", 9 do |s|
233
- s.files = %w[setup.rb]
234
- end
235
- end
236
-
237
- @cmd.options[:args] = []
238
- @cmd.options[:system] = "8"
239
-
240
- use_ui @ui do
241
- @cmd.execute
242
- end
243
-
244
- out = @ui.output.split "\n"
245
- assert_equal "Updating rubygems-update", out.shift
246
- assert_equal "Installing RubyGems 8", out.shift
247
- assert_equal "RubyGems system software updated", out.shift
248
-
249
- assert_empty out
250
- end
251
-
252
- def test_execute_system_specific_older_than_minimum_supported_rubygems
253
- spec_fetcher do |fetcher|
254
- fetcher.download "rubygems-update", "2.5.1" do |s|
255
- s.files = %w[setup.rb]
256
- end
257
- end
258
-
259
- @cmd.options[:args] = []
260
- @cmd.options[:system] = "2.5.1"
261
-
262
- oldest_version_mod = Module.new do
263
- def oldest_supported_version
264
- Gem::Version.new("2.5.2")
265
- end
266
- private :oldest_supported_version
267
- end
268
-
269
- @cmd.extend(oldest_version_mod)
270
-
271
- assert_raise Gem::MockGemUi::TermError do
272
- use_ui @ui do
273
- @cmd.execute
274
- end
275
- end
276
-
277
- assert_empty @ui.output
278
- assert_equal "ERROR: rubygems 2.5.1 is not supported on #{RUBY_VERSION}. The oldest version supported by this ruby is 2.5.2\n", @ui.error
279
- end
280
-
281
- def test_execute_system_specific_older_than_3_2_removes_plugins_dir
282
- spec_fetcher do |fetcher|
283
- fetcher.download "rubygems-update", 3.1 do |s|
284
- s.files = %w[setup.rb]
285
- end
286
- end
287
-
288
- oldest_version_mod = Module.new do
289
- def oldest_supported_version
290
- Gem::Version.new("2.5.2")
291
- end
292
- private :oldest_supported_version
293
- end
294
-
295
- @cmd.extend(oldest_version_mod)
296
-
297
- @cmd.options[:args] = []
298
- @cmd.options[:system] = "3.1"
299
-
300
- FileUtils.mkdir_p Gem.plugindir
301
- write_file File.join(Gem.plugindir, "a_plugin.rb")
302
-
303
- @cmd.execute
304
-
305
- assert_path_not_exist Gem.plugindir, "Plugins folder not removed when updating rubygems to pre-3.2"
306
- end
307
-
308
- def test_execute_system_specific_newer_than_or_equal_to_3_2_leaves_plugins_dir_alone
309
- spec_fetcher do |fetcher|
310
- fetcher.download "rubygems-update", "3.2.a" do |s|
311
- s.files = %w[setup.rb]
312
- end
313
- end
314
-
315
- oldest_version_mod = Module.new do
316
- def oldest_supported_version
317
- Gem::Version.new("2.5.2")
318
- end
319
- private :oldest_supported_version
320
- end
321
-
322
- @cmd.extend(oldest_version_mod)
323
-
324
- @cmd.options[:args] = []
325
- @cmd.options[:system] = "3.2.a"
326
-
327
- FileUtils.mkdir_p Gem.plugindir
328
- plugin_file = File.join(Gem.plugindir, "a_plugin.rb")
329
- write_file plugin_file
330
-
331
- @cmd.execute
332
-
333
- assert_path_exist Gem.plugindir, "Plugin folder removed when updating rubygems to post-3.2"
334
- assert_path_exist plugin_file, "Plugin removed when updating rubygems to post-3.2"
335
- end
336
-
337
- def test_execute_system_specifically_to_latest_version
338
- spec_fetcher do |fetcher|
339
- fetcher.download "rubygems-update", 8 do |s|
340
- s.files = %w[setup.rb]
341
- end
342
-
343
- fetcher.download "rubygems-update", 9 do |s|
344
- s.files = %w[setup.rb]
345
- end
346
- end
347
-
348
- @cmd.options[:args] = []
349
- @cmd.options[:system] = "9"
350
-
351
- use_ui @ui do
352
- @cmd.execute
353
- end
354
-
355
- out = @ui.output.split "\n"
356
- assert_equal "Updating rubygems-update", out.shift
357
- assert_equal "Installing RubyGems 9", out.shift
358
- assert_equal "RubyGems system software updated", out.shift
359
-
360
- assert_empty out
361
- end
362
-
363
- def test_execute_system_with_gems
364
- @cmd.options[:args] = %w[gem]
365
- @cmd.options[:system] = true
366
-
367
- assert_raise Gem::MockGemUi::TermError do
368
- use_ui @ui do
369
- @cmd.execute
370
- end
371
- end
372
-
373
- assert_empty @ui.output
374
- assert_equal "ERROR: Gem names are not allowed with the --system option\n",
375
- @ui.error
376
- end
377
-
378
- def test_execute_system_with_disabled_update
379
- old_disable_system_update_message = Gem.disable_system_update_message
380
- Gem.disable_system_update_message = "Please use package manager instead."
381
-
382
- @cmd.options[:args] = []
383
- @cmd.options[:system] = true
384
-
385
- assert_raise Gem::MockGemUi::TermError do
386
- use_ui @ui do
387
- @cmd.execute
388
- end
389
- end
390
-
391
- assert_empty @ui.output
392
- assert_equal "ERROR: Please use package manager instead.\n", @ui.error
393
- ensure
394
- Gem.disable_system_update_message = old_disable_system_update_message
395
- end
396
-
397
- # The other style of `gem update --system` tests don't actually run
398
- # setup.rb, so we just check that setup.rb gets the `--silent` flag.
399
- def test_execute_system_silent_passed_to_setuprb
400
- @cmd.options[:args] = []
401
- @cmd.options[:system] = true
402
- @cmd.options[:silent] = true
403
-
404
- assert_equal true, @cmd.update_rubygems_arguments.include?("--silent")
405
- end
406
-
407
- def test_execute_system_silent
408
- spec_fetcher do |fetcher|
409
- fetcher.download "rubygems-update", 9 do |s|
410
- s.files = %w[setup.rb]
411
- end
412
- end
413
-
414
- @cmd.options[:args] = []
415
- @cmd.options[:system] = true
416
- @cmd.options[:silent] = true
417
-
418
- use_ui @ui do
419
- @cmd.execute
420
- end
421
-
422
- assert_empty @ui.output
423
- end
424
-
425
- # before:
426
- # a1 -> c1.2
427
- # after:
428
- # a2 -> b2 # new dependency
429
- # a2 -> c2
430
-
431
- def test_execute_dependencies
432
- spec_fetcher do |fetcher|
433
- fetcher.download "a", 2, "b" => 2, "c" => 2
434
- fetcher.download "b", 2
435
- fetcher.download "c", 2
436
-
437
- fetcher.spec "a", 1, "c" => "1.2"
438
- fetcher.spec "c", "1.2"
439
- end
440
-
441
- Gem::Specification.reset
442
-
443
- @cmd.options[:args] = []
444
-
445
- use_ui @ui do
446
- @cmd.execute
447
- end
448
-
449
- out = @ui.output.split "\n"
450
- assert_equal "Updating installed gems", out.shift
451
- assert_equal "Updating a", out.shift
452
- assert_equal "Gems updated: a b c",
453
- out.shift
454
-
455
- assert_empty out
456
- end
457
-
458
- def test_execute_rdoc
459
- spec_fetcher do |fetcher|
460
- fetcher.download "a", 2
461
- fetcher.spec "a", 1
462
- end
463
-
464
- Gem.done_installing(&Gem::RDoc.method(:generation_hook))
465
-
466
- @cmd.options[:document] = %w[rdoc ri]
467
-
468
- @cmd.options[:args] = %w[a]
469
-
470
- use_ui @ui do
471
- @cmd.execute
472
- end
473
-
474
- wait_for_child_process_to_exit
475
-
476
- a2 = @specs["a-2"]
477
-
478
- assert_path_exist File.join(a2.doc_dir, "rdoc")
479
- end
480
-
481
- def test_execute_named
482
- spec_fetcher do |fetcher|
483
- fetcher.download "a", 2
484
-
485
- fetcher.spec "a", 1
486
- end
487
-
488
- @cmd.options[:args] = %w[a]
489
-
490
- use_ui @ui do
491
- @cmd.execute
492
- end
493
-
494
- out = @ui.output.split "\n"
495
- assert_equal "Updating installed gems", out.shift
496
- assert_equal "Updating a", out.shift
497
- assert_equal "Gems updated: a", out.shift
498
-
499
- assert_empty out
500
- end
501
-
502
- def test_execute_named_some_up_to_date
503
- spec_fetcher do |fetcher|
504
- fetcher.download "a", 2
505
- fetcher.spec "a", 1
506
-
507
- fetcher.spec "b", 2
508
- end
509
-
510
- @cmd.options[:args] = %w[a b]
511
-
512
- use_ui @ui do
513
- @cmd.execute
514
- end
515
-
516
- out = @ui.output.split "\n"
517
- assert_equal "Updating installed gems", out.shift
518
- assert_equal "Updating a", out.shift
519
- assert_equal "Gems updated: a", out.shift
520
- assert_equal "Gems already up-to-date: b", out.shift
521
-
522
- assert_empty out
523
- end
524
-
525
- def test_execute_named_up_to_date
526
- spec_fetcher do |fetcher|
527
- fetcher.spec "a", 2
528
- end
529
-
530
- @cmd.options[:args] = %w[a]
531
-
532
- use_ui @ui do
533
- @cmd.execute
534
- end
535
-
536
- out = @ui.output.split "\n"
537
- assert_equal "Updating installed gems", out.shift
538
- assert_equal "Nothing to update", out.shift
539
- assert_equal "Gems already up-to-date: a", out.shift
540
-
541
- assert_empty out
542
- end
543
-
544
- def test_execute_named_up_to_date_prerelease
545
- spec_fetcher do |fetcher|
546
- fetcher.download "a", "3.a"
547
-
548
- fetcher.gem "a", 2
549
- end
550
-
551
- @cmd.options[:args] = %w[a]
552
- @cmd.options[:prerelease] = true
553
-
554
- use_ui @ui do
555
- @cmd.execute
556
- end
557
-
558
- out = @ui.output.split "\n"
559
- assert_equal "Updating installed gems", out.shift
560
- assert_equal "Updating a", out.shift
561
- assert_equal "Gems updated: a", out.shift
562
-
563
- assert_empty out
564
- end
565
-
566
- def test_execute_up_to_date
567
- spec_fetcher do |fetcher|
568
- fetcher.gem "a", 2
569
- end
570
-
571
- @cmd.options[:args] = []
572
-
573
- use_ui @ui do
574
- @cmd.execute
575
- end
576
-
577
- out = @ui.output.split "\n"
578
- assert_equal "Updating installed gems", out.shift
579
- assert_equal "Nothing to update", out.shift
580
-
581
- assert_empty out
582
- end
583
-
584
- def test_execute_user_install
585
- a = util_spec "a", 1
586
- b = util_spec "b", 1
587
- install_gem_user(a)
588
- install_gem(b)
589
-
590
- @cmd.handle_options %w[--user-install]
591
-
592
- use_ui @ui do
593
- @cmd.execute
594
- end
595
-
596
- installer = @cmd.installer
597
- user_install = installer.instance_variable_get :@user_install
598
-
599
- assert user_install, "user_install must be set on the installer"
600
-
601
- out = @ui.output.split "\n"
602
- assert_equal "Updating installed gems", out.shift
603
- assert_equal "Updating a", out.shift
604
- assert_equal "Gems updated: a", out.shift
605
- assert_empty out
606
- end
607
-
608
- def test_fetch_remote_gems
609
- specs = spec_fetcher do |fetcher|
610
- fetcher.gem "a", 1
611
- fetcher.gem "a", 2
612
- end
613
-
614
- expected = [
615
- [Gem::NameTuple.new("a", v(2), Gem::Platform::RUBY),
616
- Gem::Source.new(@gem_repo)],
617
- ]
618
-
619
- assert_equal expected, @cmd.fetch_remote_gems(specs["a-1"])
620
- end
621
-
622
- def test_fetch_remote_gems_error
623
- Gem.sources.replace %w[http://nonexistent.example]
624
-
625
- assert_raise Gem::RemoteFetcher::FetchError do
626
- @cmd.fetch_remote_gems @specs["a-1"]
627
- end
628
- end
629
-
630
- def test_fetch_remote_gems_mismatch
631
- platform = Gem::Platform.new "x86-freebsd9"
632
-
633
- specs = spec_fetcher do |fetcher|
634
- fetcher.spec "a", 1
635
- fetcher.spec "a", 2
636
-
637
- fetcher.spec "a", 2 do |s|
638
- s.platform = platform
639
- end
640
- end
641
-
642
- expected = [
643
- [Gem::NameTuple.new("a", v(2), Gem::Platform::RUBY),
644
- Gem::Source.new(@gem_repo)],
645
- ]
646
-
647
- assert_equal expected, @cmd.fetch_remote_gems(specs["a-1"])
648
- end
649
-
650
- def test_fetch_remote_gems_prerelease
651
- specs = spec_fetcher do |fetcher|
652
- fetcher.gem "a", 1
653
- fetcher.gem "a", 2
654
- fetcher.gem "a", "3.a"
655
- end
656
-
657
- @cmd.options[:prerelease] = true
658
-
659
- expected = [
660
- [Gem::NameTuple.new("a", v(2), Gem::Platform::RUBY),
661
- Gem::Source.new(@gem_repo)],
662
- [Gem::NameTuple.new("a", v("3.a"), Gem::Platform::RUBY),
663
- Gem::Source.new(@gem_repo)],
664
- ]
665
-
666
- assert_equal expected, @cmd.fetch_remote_gems(specs["a-1"])
667
- end
668
-
669
- def test_handle_options_system
670
- @cmd.handle_options %w[--system]
671
-
672
- expected = {
673
- :args => [],
674
- :document => %w[ri],
675
- :force => false,
676
- :system => true,
677
- }
678
-
679
- assert_equal expected, @cmd.options
680
- end
681
-
682
- def test_handle_options_system_non_version
683
- assert_raise ArgumentError do
684
- @cmd.handle_options %w[--system non-version]
685
- end
686
- end
687
-
688
- def test_handle_options_system_specific
689
- @cmd.handle_options %w[--system 1.3.7]
690
-
691
- expected = {
692
- :args => [],
693
- :document => %w[ri],
694
- :force => false,
695
- :system => "1.3.7",
696
- }
697
-
698
- assert_equal expected, @cmd.options
699
- end
700
-
701
- def test_update_gem_prerelease
702
- spec_fetcher do |fetcher|
703
- fetcher.spec "a", "1.a"
704
- fetcher.gem "a", "1.b"
705
- end
706
-
707
- @cmd.update_gem "a", Gem::Requirement.new("= 1.b")
708
-
709
- refute_empty @cmd.updated
710
-
711
- assert @cmd.installer.instance_variable_get :@prerelease
712
- end
713
-
714
- def test_update_gem_unresolved_dependency
715
- spec_fetcher do |fetcher|
716
- fetcher.spec "a", 1
717
- fetcher.gem "a", 2 do |s|
718
- s.add_dependency "b", ">= 2"
719
- end
720
-
721
- fetcher.spec "b", 1
722
- end
723
-
724
- @cmd.update_gem "a"
725
-
726
- assert_empty @cmd.updated
727
- end
728
-
729
- def test_update_rubygems_arguments
730
- @cmd.options[:system] = true
731
-
732
- arguments = @cmd.update_rubygems_arguments
733
-
734
- assert_equal "--prefix", arguments.shift
735
- assert_equal Gem.prefix, arguments.shift
736
- assert_equal "--no-document", arguments.shift
737
- assert_equal "--previous-version", arguments.shift
738
- assert_equal Gem::VERSION, arguments.shift
739
- assert_empty arguments
740
- end
741
-
742
- def test_explain
743
- spec_fetcher do |fetcher|
744
- fetcher.download "a", 2
745
- fetcher.spec "a", 1
746
- end
747
-
748
- @cmd.options[:explain] = true
749
- @cmd.options[:args] = %w[a]
750
-
751
- use_ui @ui do
752
- @cmd.execute
753
- end
754
-
755
- out = @ui.output.split "\n"
756
-
757
- assert_equal "Gems to update:", out.shift
758
- assert_equal " a-2", out.shift
759
- assert_empty out
760
- end
761
-
762
- def test_explain_platform_local
763
- local = Gem::Platform.local
764
- spec_fetcher do |fetcher|
765
- fetcher.download "a", 2
766
-
767
- fetcher.download "a", 2 do |s|
768
- s.platform = local
769
- end
770
-
771
- fetcher.spec "a", 1
772
- end
773
-
774
- @cmd.options[:explain] = true
775
- @cmd.options[:args] = %w[a]
776
-
777
- use_ui @ui do
778
- @cmd.execute
779
- end
780
-
781
- out = @ui.output.split "\n"
782
-
783
- assert_equal "Gems to update:", out.shift
784
- assert_equal " a-2-#{local}", out.shift
785
- assert_empty out
786
- end
787
-
788
- def test_explain_platform_ruby
789
- local = Gem::Platform.local
790
- spec_fetcher do |fetcher|
791
- fetcher.download "a", 2
792
-
793
- fetcher.download "a", 2 do |s|
794
- s.platform = local
795
- end
796
-
797
- fetcher.spec "a", 1
798
- end
799
-
800
- # equivalent to --platform=ruby
801
- Gem.platforms = [Gem::Platform::RUBY]
802
-
803
- @cmd.options[:explain] = true
804
- @cmd.options[:args] = %w[a]
805
-
806
- use_ui @ui do
807
- @cmd.execute
808
- end
809
-
810
- out = @ui.output.split "\n"
811
-
812
- assert_equal "Gems to update:", out.shift
813
- assert_equal " a-2", out.shift
814
- assert_empty out
815
- end
816
-
817
- def test_execute_named_not_installed_and_no_update
818
- spec_fetcher do |fetcher|
819
- fetcher.spec "a", 2
820
- end
821
-
822
- @cmd.options[:args] = %w[a b]
823
-
824
- use_ui @ui do
825
- @cmd.execute
826
- end
827
-
828
- out = @ui.output.split "\n"
829
- assert_equal "Updating installed gems", out.shift
830
- assert_equal "Nothing to update", out.shift
831
- assert_equal "Gems already up-to-date: a", out.shift
832
- assert_equal "Gems not currently installed: b", out.shift
833
-
834
- assert_empty out
835
- end
836
- end