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,130 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/available_set"
5
- require "rubygems/security"
6
-
7
- class TestGemAvailableSet < Gem::TestCase
8
- def setup
9
- super
10
-
11
- @source = Gem::Source.new(@gem_repo)
12
- end
13
-
14
- def test_add_and_empty
15
- a1, _ = util_gem "a", "1"
16
-
17
- set = Gem::AvailableSet.new
18
- assert set.empty?
19
-
20
- set.add a1, @source
21
-
22
- refute set.empty?
23
-
24
- assert_equal [a1], set.all_specs
25
- end
26
-
27
- def test_find_all
28
- a1, a1_gem = util_gem "a", 1
29
- a1a, a1a_gem = util_gem "a", "1.a"
30
-
31
- a1_source = Gem::Source::SpecificFile.new a1_gem
32
- a1a_source = Gem::Source::SpecificFile.new a1a_gem
33
-
34
- set = Gem::AvailableSet.new
35
- set.add a1, a1_source
36
- set.add a1a, a1a_source
37
-
38
- dep = Gem::Resolver::DependencyRequest.new dep("a"), nil
39
-
40
- assert_equal %w[a-1], set.find_all(dep).map {|spec| spec.full_name }
41
-
42
- dep = Gem::Resolver::DependencyRequest.new dep("a", ">= 0.a"), nil
43
-
44
- assert_equal %w[a-1 a-1.a],
45
- set.find_all(dep).map {|spec| spec.full_name }.sort
46
- end
47
-
48
- def test_match_platform
49
- a1, _ = util_gem "a", "1" do |g|
50
- g.platform = "something-weird-yep"
51
- end
52
-
53
- a1c, _ = util_gem "a", "2" do |g|
54
- g.platform = Gem::Platform.local
55
- end
56
-
57
- a2, _ = util_gem "a", "2"
58
-
59
- set = Gem::AvailableSet.new
60
- set.add a1, @source
61
- set.add a1c, @source
62
- set.add a2, @source
63
-
64
- set.match_platform!
65
-
66
- assert_equal [a1c, a2], set.all_specs
67
- end
68
-
69
- def test_best
70
- a1, _ = util_gem "a", "1"
71
- a2, _ = util_gem "a", "2"
72
-
73
- set = Gem::AvailableSet.new
74
- set.add a1, @source
75
- set.add a2, @source
76
-
77
- set.pick_best!
78
-
79
- assert_equal [a2], set.all_specs
80
- end
81
-
82
- def test_remove_installed_bang
83
- a1, _ = util_spec "a", "1"
84
- install_specs a1
85
-
86
- a1.activate
87
-
88
- set = Gem::AvailableSet.new
89
- set.add a1, @source
90
-
91
- dep = Gem::Dependency.new "a", ">= 0"
92
-
93
- set.remove_installed! dep
94
-
95
- assert set.empty?
96
- end
97
-
98
- def test_sorted_normal_versions
99
- a1, _ = util_gem "a", "1"
100
- a2, _ = util_gem "a", "2"
101
-
102
- set = Gem::AvailableSet.new
103
- set.add a1, @source
104
- set.add a2, @source
105
-
106
- g = set.sorted
107
-
108
- assert_equal a2, g[0].spec
109
- assert_equal a1, g[1].spec
110
- end
111
-
112
- def test_sorted_respect_pre
113
- a1a, _ = util_gem "a", "1.a"
114
- a1, _ = util_gem "a", "1"
115
- a2a, _ = util_gem "a", "2.a"
116
- a2, _ = util_gem "a", "2"
117
- a3a, _ = util_gem "a", "3.a"
118
-
119
- set = Gem::AvailableSet.new
120
- set.add a1, @source
121
- set.add a1a, @source
122
- set.add a3a, @source
123
- set.add a2a, @source
124
- set.add a2, @source
125
-
126
- g = set.sorted.map {|t| t.spec }
127
-
128
- assert_equal [a3a, a2, a2a, a1, a1a], g
129
- end
130
- end
@@ -1,127 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/bundler_version_finder"
5
-
6
- class TestGemBundlerVersionFinder < Gem::TestCase
7
- def setup
8
- @argv = ARGV.dup
9
- @dollar_0 = $0
10
- super
11
-
12
- without_any_upwards_gemfiles
13
- end
14
-
15
- def teardown
16
- ARGV.replace @argv
17
- $0 = @dollar_0
18
-
19
- super
20
- end
21
-
22
- def bvf
23
- Gem::BundlerVersionFinder
24
- end
25
-
26
- def test_bundler_version_defaults_to_nil
27
- assert_nil bvf.bundler_version
28
- end
29
-
30
- def test_bundler_version_with_env_var
31
- ENV["BUNDLER_VERSION"] = "1.1.1.1"
32
- assert_equal v("1.1.1.1"), bvf.bundler_version
33
- end
34
-
35
- def test_bundler_version_with_bundle_update_bundler
36
- ARGV.replace %w[update --bundler]
37
- assert_nil bvf.bundler_version
38
- $0 = "/foo/bar/bundle"
39
- assert_nil bvf.bundler_version
40
- ARGV.replace %w[update --bundler=1.1.1.1 gem_name]
41
- assert_equal v("1.1.1.1"), bvf.bundler_version
42
- ARGV.replace %w[update --bundler 1.1.1.1 gem_name]
43
- assert_equal v("1.1.1.1"), bvf.bundler_version
44
- ARGV.replace %w[update --bundler\ 1.1.1.1 gem_name]
45
- assert_equal v("1.1.1.1"), bvf.bundler_version
46
- ARGV.replace %w[update --bundler\ 1.1.1.2 --bundler --bundler 1.1.1.1 gem_name]
47
- assert_equal v("1.1.1.1"), bvf.bundler_version
48
- $0 = "other"
49
- assert_nil bvf.bundler_version
50
- end
51
-
52
- def test_bundler_version_with_lockfile
53
- bvf.stub(:lockfile_contents, "") do
54
- assert_nil bvf.bundler_version
55
- end
56
- bvf.stub(:lockfile_contents, "\n\nBUNDLED WITH\n 1.1.1.1\n") do
57
- assert_equal v("1.1.1.1"), bvf.bundler_version
58
- end
59
- bvf.stub(:lockfile_contents, "\n\nBUNDLED WITH\n fjdkslfjdkslfjsldk\n") do
60
- assert_nil bvf.bundler_version
61
- end
62
- end
63
-
64
- def test_bundler_version
65
- assert_nil bvf.bundler_version
66
- bvf.stub(:lockfile_contents, "\n\nBUNDLED WITH\n 1.1.1.1\n") do
67
- assert_equal "1.1.1.1", bvf.bundler_version.to_s
68
-
69
- $0 = "bundle"
70
- ARGV.replace %w[update --bundler]
71
- assert_nil bvf.bundler_version
72
-
73
- ARGV.replace %w[update --bundler=1.1.1.2]
74
- assert_equal "1.1.1.2", bvf.bundler_version.to_s
75
-
76
- ENV["BUNDLER_VERSION"] = "1.1.1.3"
77
- assert_equal "1.1.1.3", bvf.bundler_version.to_s
78
- end
79
- end
80
-
81
- def test_deleted_directory
82
- pend "Cannot perform this test on windows" if win_platform?
83
- pend "Cannot perform this test on Solaris" if RUBY_PLATFORM.include?("solaris")
84
- require "tmpdir"
85
-
86
- orig_dir = Dir.pwd
87
-
88
- begin
89
- Dir.mktmpdir("some_dir") do |dir|
90
- Dir.chdir(dir)
91
- end
92
- ensure
93
- Dir.chdir(orig_dir)
94
- end
95
-
96
- assert_nil bvf.bundler_version
97
- end
98
-
99
- def test_prioritize
100
- versions = %w[1 1.0 1.0.1.1 2 2.a 2.0 2.1.1 3 3.a 3.0 3.1.1]
101
- specs = versions.map {|v| util_spec("bundler", v) }
102
-
103
- assert_equal %w[1 1.0 1.0.1.1 2 2.a 2.0 2.1.1 3 3.a 3.0 3.1.1], util_prioritize_specs(specs)
104
-
105
- bvf.stub(:bundler_version, v("2.1.1.1")) do
106
- assert_equal %w[1 1.0 1.0.1.1 2 2.a 2.0 2.1.1 3 3.a 3.0 3.1.1], util_prioritize_specs(specs)
107
- end
108
- bvf.stub(:bundler_version, v("1.1.1.1")) do
109
- assert_equal %w[1 1.0 1.0.1.1 2 2.a 2.0 2.1.1 3 3.a 3.0 3.1.1], util_prioritize_specs(specs)
110
- end
111
- bvf.stub(:bundler_version, v("1")) do
112
- assert_equal %w[1 1.0 1.0.1.1 2 2.a 2.0 2.1.1 3 3.a 3.0 3.1.1], util_prioritize_specs(specs)
113
- end
114
- bvf.stub(:bundler_version, v("2.a")) do
115
- assert_equal %w[2.a 1 1.0 1.0.1.1 2 2.0 2.1.1 3 3.a 3.0 3.1.1], util_prioritize_specs(specs)
116
- end
117
- bvf.stub(:bundler_version, v("3")) do
118
- assert_equal %w[3 1 1.0 1.0.1.1 2 2.a 2.0 2.1.1 3.a 3.0 3.1.1], util_prioritize_specs(specs)
119
- end
120
- end
121
-
122
- def util_prioritize_specs(specs)
123
- specs = specs.dup
124
- bvf.prioritize!(specs)
125
- specs.map(&:version).map(&:to_s)
126
- end
127
- end
@@ -1,403 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/command"
5
-
6
- class Gem::Command
7
- public :parser
8
- end
9
-
10
- class TestGemCommand < Gem::TestCase
11
- def setup
12
- super
13
-
14
- @xopt = nil
15
-
16
- @common_options = Gem::Command.common_options.dup
17
- Gem::Command.common_options.clear
18
- Gem::Command.common_options << [
19
- ["-x", "--exe", "Execute"], lambda do |*a|
20
- @xopt = true
21
- end
22
- ]
23
-
24
- @cmd_name = "doit"
25
- @cmd = Gem::Command.new @cmd_name, "summary"
26
- end
27
-
28
- def teardown
29
- super
30
- Gem::Command.common_options.replace @common_options
31
- end
32
-
33
- def test_self_add_specific_extra_args
34
- added_args = %w[--all]
35
- @cmd.add_option("--all") {|v,o| }
36
-
37
- Gem::Command.add_specific_extra_args @cmd_name, added_args
38
-
39
- assert_equal added_args, Gem::Command.specific_extra_args(@cmd_name)
40
-
41
- h = @cmd.add_extra_args []
42
-
43
- assert_equal added_args, h
44
- end
45
-
46
- def test_self_add_specific_extra_args_unknown
47
- added_args = %w[--definitely_not_there]
48
-
49
- Gem::Command.add_specific_extra_args @cmd_name, added_args
50
-
51
- assert_equal added_args, Gem::Command.specific_extra_args(@cmd_name)
52
-
53
- h = @cmd.add_extra_args []
54
-
55
- assert_equal [], h
56
- end
57
-
58
- def test_self_extra_args
59
- verbose = $VERBOSE
60
- $VERBOSE = nil
61
- separator = $;
62
- extra_args = Gem::Command.extra_args
63
-
64
- Gem::Command.extra_args = %w[--all]
65
- assert_equal %w[--all], Gem::Command.extra_args
66
-
67
- Gem::Command.extra_args = "--file --help"
68
- assert_equal %w[--file --help], Gem::Command.extra_args
69
-
70
- $; = "="
71
-
72
- Gem::Command.extra_args = "--awesome=true --verbose"
73
- assert_equal %w[--awesome=true --verbose], Gem::Command.extra_args
74
-
75
- ensure
76
- Gem::Command.extra_args = extra_args
77
- $; = separator
78
- $VERBOSE = verbose
79
- end
80
-
81
- def test_basic_accessors
82
- assert_equal "doit", @cmd.command
83
- assert_equal "gem doit", @cmd.program_name
84
- assert_equal "summary", @cmd.summary
85
- end
86
-
87
- def test_common_option_in_class
88
- assert Array === Gem::Command.common_options
89
- end
90
-
91
- def test_defaults
92
- @cmd.add_option("-h", "--help [COMMAND]", "Get help on COMMAND") do |value, options|
93
- options[:help] = value
94
- end
95
-
96
- @cmd.defaults = { :help => true }
97
-
98
- @cmd.when_invoked do |options|
99
- assert options[:help], "Help options should default true"
100
- end
101
-
102
- use_ui @ui do
103
- @cmd.invoke
104
- end
105
-
106
- assert_match %r{Usage: gem doit}, @ui.output
107
- end
108
-
109
- def test_invoke
110
- done = false
111
- @cmd.when_invoked { done = true }
112
-
113
- use_ui @ui do
114
- @cmd.invoke
115
- end
116
-
117
- assert done
118
- end
119
-
120
- def test_invoke_with_bad_options
121
- use_ui @ui do
122
- @cmd.when_invoked { true }
123
-
124
- ex = assert_raise Gem::OptionParser::InvalidOption do
125
- @cmd.invoke("-zzz")
126
- end
127
-
128
- assert_match(/invalid option:/, ex.message)
129
- end
130
- end
131
-
132
- def test_invoke_with_common_options
133
- @cmd.when_invoked { true }
134
-
135
- use_ui @ui do
136
- @cmd.invoke "-x"
137
- end
138
-
139
- assert @xopt, "Should have done xopt"
140
- end
141
-
142
- def test_invoke_with_build_args
143
- @cmd.when_invoked { true }
144
-
145
- use_ui @ui do
146
- @cmd.invoke_with_build_args ["-x"], ["--awesome=true"]
147
- end
148
-
149
- assert_equal ["--awesome=true"], @cmd.options[:build_args]
150
- end
151
-
152
- # Returning false from the command handler invokes the usage output.
153
- def test_invoke_with_help
154
- done = false
155
-
156
- use_ui @ui do
157
- @cmd.add_option("-h", "--help [COMMAND]", "Get help on COMMAND") do |value, options|
158
- options[:help] = true
159
- done = true
160
- end
161
-
162
- @cmd.invoke("--help")
163
-
164
- assert done
165
- end
166
-
167
- assert_match(/Usage/, @ui.output)
168
- assert_match(/gem doit/, @ui.output)
169
- assert_match(/\[options\]/, @ui.output)
170
- assert_match(/-h/, @ui.output)
171
- assert_match(/--help \[COMMAND\]/, @ui.output)
172
- assert_match(/Get help on COMMAND/, @ui.output)
173
- assert_match(/-x/, @ui.output)
174
- assert_match(/--exe/, @ui.output)
175
- assert_match(/Execute/, @ui.output)
176
- assert_match(/Common Options:/, @ui.output)
177
- end
178
-
179
- def test_invoke_with_options
180
- @cmd.add_option("-h", "--help [COMMAND]", "Get help on COMMAND") do |value, options|
181
- options[:help] = true
182
- end
183
-
184
- @cmd.when_invoked do |opts|
185
- assert opts[:help]
186
- end
187
-
188
- use_ui @ui do
189
- @cmd.invoke "-h"
190
- end
191
-
192
- assert_match %r{Usage: gem doit}, @ui.output
193
- end
194
-
195
- def test_add_option
196
- assert_nothing_raised RuntimeError do
197
- @cmd.add_option("--force", "skip validation of the spec") {|v,o| }
198
- end
199
- end
200
-
201
- def test_add_option_with_empty
202
- assert_raise RuntimeError, "Do not pass an empty string in opts" do
203
- @cmd.add_option("", "skip validation of the spec") {|v,o| }
204
- end
205
- end
206
-
207
- def test_option_recognition
208
- @cmd.add_option("-h", "--help [COMMAND]", "Get help on COMMAND") do |value, options|
209
- options[:help] = true
210
- end
211
- @cmd.add_option("-f", "--file FILE", "File option") do |value, options|
212
- options[:help] = true
213
- end
214
- @cmd.add_option("--silent", "Silence RubyGems output") do |value, options|
215
- options[:silent] = true
216
- end
217
- assert @cmd.handles?(["-x"])
218
- assert @cmd.handles?(["-h"])
219
- assert @cmd.handles?(["-h", "command"])
220
- assert @cmd.handles?(["--help", "command"])
221
- assert @cmd.handles?(["-f", "filename"])
222
- assert @cmd.handles?(["--file=filename"])
223
- assert @cmd.handles?(["--silent"])
224
- refute @cmd.handles?(["-z"])
225
- refute @cmd.handles?(["-f"])
226
- refute @cmd.handles?(["--toothpaste"])
227
-
228
- args = ["-h", "command"]
229
- @cmd.handles?(args)
230
- assert_equal ["-h", "command"], args
231
- end
232
-
233
- def test_deprecate_option
234
- deprecate_msg = <<-EXPECTED
235
- WARNING: The \"--test\" option has been deprecated and will be removed in Rubygems 3.1.
236
- EXPECTED
237
-
238
- testCommand = Class.new(Gem::Command) do
239
- def initialize
240
- super("test", "Gem::Command instance for testing")
241
-
242
- add_option("-t", "--test", "Test command") do |value, options|
243
- options[:test] = true
244
- end
245
-
246
- deprecate_option("--test", version: "3.1")
247
- end
248
-
249
- def execute
250
- true
251
- end
252
- end
253
-
254
- cmd = testCommand.new
255
-
256
- use_ui @ui do
257
- cmd.invoke("--test")
258
- assert_equal deprecate_msg, @ui.error
259
- end
260
- end
261
-
262
- def test_deprecate_option_no_version
263
- deprecate_msg = <<-EXPECTED
264
- WARNING: The \"--test\" option has been deprecated and will be removed in future versions of Rubygems.
265
- EXPECTED
266
-
267
- testCommand = Class.new(Gem::Command) do
268
- def initialize
269
- super("test", "Gem::Command instance for testing")
270
-
271
- add_option("-t", "--test", "Test command") do |value, options|
272
- options[:test] = true
273
- end
274
-
275
- deprecate_option("--test")
276
- end
277
-
278
- def execute
279
- true
280
- end
281
- end
282
-
283
- cmd = testCommand.new
284
-
285
- use_ui @ui do
286
- cmd.invoke("--test")
287
- assert_equal deprecate_msg, @ui.error
288
- end
289
- end
290
-
291
- def test_deprecate_option_extra_message
292
- deprecate_msg = <<-EXPECTED
293
- WARNING: The \"--test\" option has been deprecated and will be removed in Rubygems 3.1. Whether you set `--test` mode or not, this dummy app always runs in test mode.
294
- EXPECTED
295
-
296
- testCommand = Class.new(Gem::Command) do
297
- def initialize
298
- super("test", "Gem::Command instance for testing")
299
-
300
- add_option("-t", "--test", "Test command") do |value, options|
301
- options[:test] = true
302
- end
303
-
304
- deprecate_option("--test", version: "3.1", extra_msg: "Whether you set `--test` mode or not, this dummy app always runs in test mode.")
305
- end
306
-
307
- def execute
308
- true
309
- end
310
- end
311
-
312
- cmd = testCommand.new
313
-
314
- use_ui @ui do
315
- cmd.invoke("--test")
316
- assert_equal deprecate_msg, @ui.error
317
- end
318
- end
319
-
320
- def test_deprecate_option_extra_message_and_no_version
321
- deprecate_msg = <<-EXPECTED
322
- WARNING: The \"--test\" option has been deprecated and will be removed in future versions of Rubygems. Whether you set `--test` mode or not, this dummy app always runs in test mode.
323
- EXPECTED
324
-
325
- testCommand = Class.new(Gem::Command) do
326
- def initialize
327
- super("test", "Gem::Command instance for testing")
328
-
329
- add_option("-t", "--test", "Test command") do |value, options|
330
- options[:test] = true
331
- end
332
-
333
- deprecate_option("--test", extra_msg: "Whether you set `--test` mode or not, this dummy app always runs in test mode.")
334
- end
335
-
336
- def execute
337
- true
338
- end
339
- end
340
-
341
- cmd = testCommand.new
342
-
343
- use_ui @ui do
344
- cmd.invoke("--test")
345
- assert_equal deprecate_msg, @ui.error
346
- end
347
- end
348
-
349
- def test_show_lookup_failure_suggestions_local
350
- correct = "non_existent_with_hint"
351
- misspelled = "nonexistent_with_hint"
352
-
353
- spec_fetcher do |fetcher|
354
- fetcher.spec correct, 2
355
- end
356
-
357
- use_ui @ui do
358
- @cmd.show_lookup_failure misspelled, Gem::Requirement.default, [], :local
359
- end
360
-
361
- expected = <<-EXPECTED
362
- ERROR: Could not find a valid gem 'nonexistent_with_hint' (>= 0) in any repository
363
- EXPECTED
364
-
365
- assert_equal expected, @ui.error
366
- end
367
-
368
- def test_show_lookup_failure_suggestions_none
369
- spec_fetcher do |fetcher|
370
- fetcher.spec "correct", 2
371
- end
372
-
373
- use_ui @ui do
374
- @cmd.show_lookup_failure "other", Gem::Requirement.default, [], :remote
375
- end
376
-
377
- expected = <<-EXPECTED
378
- ERROR: Could not find a valid gem 'other' (>= 0) in any repository
379
- EXPECTED
380
-
381
- assert_equal expected, @ui.error
382
- end
383
-
384
- def test_show_lookup_failure_suggestions_remote
385
- correct = "non_existent_with_hint"
386
- misspelled = "nonexistent_with_hint"
387
-
388
- spec_fetcher do |fetcher|
389
- fetcher.spec correct, 2
390
- end
391
-
392
- use_ui @ui do
393
- @cmd.show_lookup_failure misspelled, Gem::Requirement.default, []
394
- end
395
-
396
- expected = <<-EXPECTED
397
- ERROR: Could not find a valid gem 'nonexistent_with_hint' (>= 0) in any repository
398
- ERROR: Possible alternatives: non_existent_with_hint
399
- EXPECTED
400
-
401
- assert_equal expected, @ui.error
402
- end
403
- end