chef 14.14.29 → 14.15.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (367) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/README.md +18 -7
  4. data/Rakefile +7 -4
  5. data/chef.gemspec +1 -1
  6. data/lib/chef/knife/ssh.rb +6 -0
  7. data/lib/chef/provider/ifconfig.rb +14 -5
  8. data/lib/chef/provider/windows_task.rb +9 -5
  9. data/lib/chef/resource/kernel_module.rb +61 -0
  10. data/lib/chef/resource/windows_task.rb +4 -0
  11. data/lib/chef/version.rb +1 -1
  12. data/lib/chef/win32/system.rb +0 -0
  13. data/spec/data/cookbooks/openldap/metadata.rb +2 -2
  14. data/spec/data/metadata/quick_start/metadata.rb +2 -7
  15. data/spec/functional/audit/runner_spec.rb +1 -1
  16. data/spec/functional/dsl/reboot_pending_spec.rb +7 -25
  17. data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -4
  18. data/spec/functional/file_content_management/deploy_strategies_spec.rb +21 -21
  19. data/spec/functional/knife/exec_spec.rb +1 -1
  20. data/spec/functional/knife/ssh_spec.rb +3 -3
  21. data/spec/functional/mixin/user_context_spec.rb +3 -1
  22. data/spec/functional/rebooter_spec.rb +1 -1
  23. data/spec/functional/resource/aix_service_spec.rb +1 -1
  24. data/spec/functional/resource/aixinit_service_spec.rb +1 -1
  25. data/spec/functional/resource/apt_package_spec.rb +1 -1
  26. data/spec/functional/resource/chocolatey_package_spec.rb +2 -2
  27. data/spec/functional/resource/cookbook_file_spec.rb +1 -3
  28. data/spec/functional/resource/cron_spec.rb +4 -3
  29. data/spec/functional/resource/dpkg_package_spec.rb +4 -4
  30. data/spec/functional/resource/dsc_resource_spec.rb +2 -1
  31. data/spec/functional/resource/dsc_script_spec.rb +16 -20
  32. data/spec/functional/resource/execute_spec.rb +2 -2
  33. data/spec/functional/resource/git_spec.rb +6 -6
  34. data/spec/functional/resource/group_spec.rb +8 -6
  35. data/spec/functional/resource/ifconfig_spec.rb +3 -5
  36. data/spec/functional/resource/link_spec.rb +2 -2
  37. data/spec/functional/resource/mount_spec.rb +3 -7
  38. data/spec/functional/resource/powershell_script_spec.rb +9 -8
  39. data/spec/functional/resource/reboot_spec.rb +1 -1
  40. data/spec/functional/resource/remote_file_spec.rb +2 -2
  41. data/spec/functional/resource/template_spec.rb +1 -1
  42. data/spec/functional/resource/user/windows_spec.rb +2 -2
  43. data/spec/functional/resource/windows_certificate_spec.rb +3 -3
  44. data/spec/functional/resource/windows_service_spec.rb +3 -3
  45. data/spec/functional/resource/windows_task_spec.rb +51 -0
  46. data/spec/functional/run_lock_spec.rb +10 -3
  47. data/spec/functional/shell_spec.rb +1 -1
  48. data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
  49. data/spec/functional/version_spec.rb +1 -1
  50. data/spec/functional/win32/security_spec.rb +12 -7
  51. data/spec/functional/win32/service_manager_spec.rb +1 -1
  52. data/spec/functional/win32/version_info_spec.rb +4 -4
  53. data/spec/integration/client/client_spec.rb +114 -132
  54. data/spec/integration/client/exit_code_spec.rb +8 -8
  55. data/spec/integration/client/ipv6_spec.rb +5 -5
  56. data/spec/integration/knife/chef_fs_data_store_spec.rb +38 -38
  57. data/spec/integration/knife/chef_repo_path_spec.rb +42 -42
  58. data/spec/integration/knife/chef_repository_file_system_spec.rb +9 -9
  59. data/spec/integration/knife/chefignore_spec.rb +13 -13
  60. data/spec/integration/knife/client_bulk_delete_spec.rb +8 -8
  61. data/spec/integration/knife/client_create_spec.rb +1 -1
  62. data/spec/integration/knife/client_delete_spec.rb +4 -4
  63. data/spec/integration/knife/client_key_delete_spec.rb +1 -1
  64. data/spec/integration/knife/client_key_list_spec.rb +1 -1
  65. data/spec/integration/knife/client_list_spec.rb +1 -1
  66. data/spec/integration/knife/common_options_spec.rb +1 -1
  67. data/spec/integration/knife/config_get_spec.rb +1 -1
  68. data/spec/integration/knife/config_list_profiles_spec.rb +2 -1
  69. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +3 -3
  70. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +3 -3
  71. data/spec/integration/knife/cookbook_download_spec.rb +4 -4
  72. data/spec/integration/knife/cookbook_list_spec.rb +2 -2
  73. data/spec/integration/knife/cookbook_show_spec.rb +3 -3
  74. data/spec/integration/knife/cookbook_upload_spec.rb +6 -6
  75. data/spec/integration/knife/data_bag_delete_spec.rb +4 -4
  76. data/spec/integration/knife/data_bag_from_file_spec.rb +7 -7
  77. data/spec/integration/knife/data_bag_list_spec.rb +1 -1
  78. data/spec/integration/knife/delete_spec.rb +37 -37
  79. data/spec/integration/knife/deps_spec.rb +23 -23
  80. data/spec/integration/knife/diff_spec.rb +23 -23
  81. data/spec/integration/knife/download_spec.rb +79 -79
  82. data/spec/integration/knife/environment_compare_spec.rb +3 -3
  83. data/spec/integration/knife/environment_from_file_spec.rb +6 -6
  84. data/spec/integration/knife/environment_list_spec.rb +1 -1
  85. data/spec/integration/knife/environment_show_spec.rb +4 -4
  86. data/spec/integration/knife/list_spec.rb +25 -25
  87. data/spec/integration/knife/node_bulk_delete_spec.rb +2 -2
  88. data/spec/integration/knife/node_delete_spec.rb +2 -2
  89. data/spec/integration/knife/node_environment_set_spec.rb +1 -1
  90. data/spec/integration/knife/node_from_file_spec.rb +2 -2
  91. data/spec/integration/knife/node_list_spec.rb +1 -1
  92. data/spec/integration/knife/raw_spec.rb +12 -12
  93. data/spec/integration/knife/redirection_spec.rb +1 -1
  94. data/spec/integration/knife/role_bulk_delete_spec.rb +2 -2
  95. data/spec/integration/knife/role_delete_spec.rb +2 -2
  96. data/spec/integration/knife/role_from_file_spec.rb +5 -5
  97. data/spec/integration/knife/role_list_spec.rb +1 -1
  98. data/spec/integration/knife/role_show_spec.rb +1 -1
  99. data/spec/integration/knife/show_spec.rb +10 -10
  100. data/spec/integration/knife/upload_spec.rb +85 -85
  101. data/spec/integration/recipes/accumulator_spec.rb +4 -4
  102. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +6 -6
  103. data/spec/integration/recipes/lwrp_spec.rb +6 -6
  104. data/spec/integration/recipes/notifies_spec.rb +45 -45
  105. data/spec/integration/recipes/notifying_block_spec.rb +4 -4
  106. data/spec/integration/recipes/provider_choice.rb +1 -2
  107. data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
  108. data/spec/integration/recipes/remote_directory.rb +2 -2
  109. data/spec/integration/recipes/resource_action_spec.rb +1 -1
  110. data/spec/integration/recipes/resource_converge_if_changed_spec.rb +19 -19
  111. data/spec/integration/solo/solo_spec.rb +29 -29
  112. data/spec/scripts/ssl-serve.rb +1 -1
  113. data/spec/spec_helper.rb +11 -14
  114. data/spec/stress/win32/security_spec.rb +1 -1
  115. data/spec/support/lib/chef/resource/zen_follower.rb +1 -1
  116. data/spec/support/lib/chef/resource/zen_master.rb +1 -1
  117. data/spec/support/mock/platform.rb +2 -2
  118. data/spec/support/platform_helpers.rb +12 -3
  119. data/spec/support/platforms/win32/spec_service.rb +6 -10
  120. data/spec/support/shared/context/client.rb +2 -1
  121. data/spec/support/shared/functional/execute_resource.rb +4 -4
  122. data/spec/support/shared/functional/file_resource.rb +1 -3
  123. data/spec/support/shared/functional/http.rb +20 -44
  124. data/spec/support/shared/functional/securable_resource.rb +4 -8
  125. data/spec/support/shared/functional/win32_service.rb +1 -1
  126. data/spec/support/shared/functional/windows_script.rb +2 -1
  127. data/spec/support/shared/integration/app_server_support.rb +3 -4
  128. data/spec/support/shared/integration/integration_helper.rb +1 -0
  129. data/spec/support/shared/integration/knife_support.rb +5 -5
  130. data/spec/support/shared/unit/application_dot_d.rb +10 -4
  131. data/spec/support/shared/unit/file_system_support.rb +3 -2
  132. data/spec/support/shared/unit/platform_introspector.rb +12 -12
  133. data/spec/support/shared/unit/provider/file.rb +1 -1
  134. data/spec/support/shared/unit/script_resource.rb +1 -1
  135. data/spec/support/shared/unit/windows_script_resource.rb +1 -1
  136. data/spec/tiny_server.rb +1 -1
  137. data/spec/unit/api_client/registration_spec.rb +1 -1
  138. data/spec/unit/api_client_spec.rb +5 -5
  139. data/spec/unit/api_client_v1_spec.rb +6 -6
  140. data/spec/unit/application/client_spec.rb +8 -8
  141. data/spec/unit/application/exit_code_spec.rb +3 -2
  142. data/spec/unit/application/knife_spec.rb +1 -2
  143. data/spec/unit/audit/audit_event_proxy_spec.rb +14 -7
  144. data/spec/unit/audit/audit_reporter_spec.rb +20 -11
  145. data/spec/unit/audit/control_group_data_spec.rb +17 -12
  146. data/spec/unit/chef_fs/config_spec.rb +3 -3
  147. data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +1 -1
  148. data/spec/unit/chef_fs/parallelizer.rb +1 -1
  149. data/spec/unit/client_spec.rb +3 -3
  150. data/spec/unit/config_fetcher_spec.rb +1 -1
  151. data/spec/unit/cookbook/metadata_spec.rb +13 -13
  152. data/spec/unit/cookbook/synchronizer_spec.rb +6 -6
  153. data/spec/unit/cookbook_loader_spec.rb +17 -17
  154. data/spec/unit/cookbook_manifest_spec.rb +9 -9
  155. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +1 -2
  156. data/spec/unit/cookbook_uploader_spec.rb +2 -2
  157. data/spec/unit/cookbook_version_file_specificity_spec.rb +9 -9
  158. data/spec/unit/cookbook_version_spec.rb +2 -2
  159. data/spec/unit/data_bag_item_spec.rb +7 -7
  160. data/spec/unit/data_bag_spec.rb +1 -1
  161. data/spec/unit/data_collector_spec.rb +23 -23
  162. data/spec/unit/decorator_spec.rb +2 -2
  163. data/spec/unit/deprecated_spec.rb +2 -2
  164. data/spec/unit/dsl/data_query_spec.rb +3 -2
  165. data/spec/unit/dsl/declare_resource_spec.rb +1 -1
  166. data/spec/unit/dsl/platform_introspection_spec.rb +2 -2
  167. data/spec/unit/encrypted_data_bag_item/check_encrypted_spec.rb +2 -1
  168. data/spec/unit/encrypted_data_bag_item_spec.rb +2 -1
  169. data/spec/unit/environment_spec.rb +13 -13
  170. data/spec/unit/event_dispatch/dsl_spec.rb +1 -1
  171. data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +3 -3
  172. data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +2 -2
  173. data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +3 -3
  174. data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +1 -1
  175. data/spec/unit/http/authenticator_spec.rb +4 -3
  176. data/spec/unit/http/json_input_spec.rb +1 -1
  177. data/spec/unit/http/socketless_chef_zero_client_spec.rb +15 -15
  178. data/spec/unit/key_spec.rb +8 -8
  179. data/spec/unit/knife/bootstrap_spec.rb +14 -10
  180. data/spec/unit/knife/client_bulk_delete_spec.rb +4 -4
  181. data/spec/unit/knife/configure_client_spec.rb +1 -1
  182. data/spec/unit/knife/configure_spec.rb +1 -1
  183. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +1 -1
  184. data/spec/unit/knife/cookbook_delete_spec.rb +2 -2
  185. data/spec/unit/knife/cookbook_download_spec.rb +2 -2
  186. data/spec/unit/knife/cookbook_metadata_spec.rb +4 -4
  187. data/spec/unit/knife/cookbook_upload_spec.rb +7 -5
  188. data/spec/unit/knife/core/bootstrap_context_spec.rb +1 -1
  189. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +2 -2
  190. data/spec/unit/knife/core/gem_glob_loader_spec.rb +4 -4
  191. data/spec/unit/knife/core/hashed_command_loader_spec.rb +4 -2
  192. data/spec/unit/knife/core/node_editor_spec.rb +12 -12
  193. data/spec/unit/knife/core/ui_spec.rb +11 -11
  194. data/spec/unit/knife/data_bag_from_file_spec.rb +2 -1
  195. data/spec/unit/knife/data_bag_show_spec.rb +2 -1
  196. data/spec/unit/knife/key_create_spec.rb +1 -1
  197. data/spec/unit/knife/key_delete_spec.rb +3 -3
  198. data/spec/unit/knife/key_edit_spec.rb +4 -4
  199. data/spec/unit/knife/key_list_spec.rb +1 -1
  200. data/spec/unit/knife/key_show_spec.rb +3 -3
  201. data/spec/unit/knife/node_bulk_delete_spec.rb +3 -3
  202. data/spec/unit/knife/node_delete_spec.rb +2 -2
  203. data/spec/unit/knife/node_edit_spec.rb +1 -1
  204. data/spec/unit/knife/node_environment_set_spec.rb +1 -1
  205. data/spec/unit/knife/node_from_file_spec.rb +1 -1
  206. data/spec/unit/knife/node_policy_set_spec.rb +1 -1
  207. data/spec/unit/knife/node_run_list_add_spec.rb +1 -1
  208. data/spec/unit/knife/node_run_list_remove_spec.rb +1 -1
  209. data/spec/unit/knife/node_run_list_set_spec.rb +1 -1
  210. data/spec/unit/knife/node_show_spec.rb +1 -1
  211. data/spec/unit/knife/raw_spec.rb +2 -2
  212. data/spec/unit/knife/role_bulk_delete_spec.rb +2 -2
  213. data/spec/unit/knife/role_create_spec.rb +1 -1
  214. data/spec/unit/knife/role_delete_spec.rb +1 -1
  215. data/spec/unit/knife/role_edit_spec.rb +1 -1
  216. data/spec/unit/knife/role_env_run_list_add_spec.rb +1 -1
  217. data/spec/unit/knife/role_env_run_list_clear_spec.rb +1 -1
  218. data/spec/unit/knife/role_env_run_list_remove_spec.rb +1 -1
  219. data/spec/unit/knife/role_env_run_list_replace_spec.rb +1 -1
  220. data/spec/unit/knife/role_env_run_list_set_spec.rb +1 -1
  221. data/spec/unit/knife/role_from_file_spec.rb +1 -1
  222. data/spec/unit/knife/role_run_list_add_spec.rb +1 -1
  223. data/spec/unit/knife/role_run_list_clear_spec.rb +1 -1
  224. data/spec/unit/knife/role_run_list_remove_spec.rb +1 -1
  225. data/spec/unit/knife/role_run_list_replace_spec.rb +1 -1
  226. data/spec/unit/knife/role_run_list_set_spec.rb +1 -1
  227. data/spec/unit/knife/ssh_spec.rb +27 -17
  228. data/spec/unit/knife/ssl_check_spec.rb +4 -4
  229. data/spec/unit/knife/ssl_fetch_spec.rb +5 -5
  230. data/spec/unit/knife/status_spec.rb +3 -2
  231. data/spec/unit/knife/supermarket_download_spec.rb +4 -4
  232. data/spec/unit/knife/supermarket_install_spec.rb +5 -4
  233. data/spec/unit/knife/supermarket_share_spec.rb +1 -1
  234. data/spec/unit/knife_spec.rb +34 -33
  235. data/spec/unit/lwrp_spec.rb +19 -19
  236. data/spec/unit/mixin/homebrew_user_spec.rb +1 -1
  237. data/spec/unit/mixin/params_validate_spec.rb +10 -10
  238. data/spec/unit/mixin/properties_spec.rb +4 -4
  239. data/spec/unit/mixin/shell_out_spec.rb +27 -27
  240. data/spec/unit/mixin/template_spec.rb +4 -8
  241. data/spec/unit/mixin/unformatter_spec.rb +1 -2
  242. data/spec/unit/mixin/user_context_spec.rb +1 -2
  243. data/spec/unit/mixin/which.rb +2 -0
  244. data/spec/unit/mixin/windows_architecture_helper_spec.rb +3 -3
  245. data/spec/unit/node/attribute_spec.rb +79 -79
  246. data/spec/unit/node/immutable_collections_spec.rb +50 -50
  247. data/spec/unit/node_spec.rb +16 -16
  248. data/spec/unit/org_spec.rb +3 -3
  249. data/spec/unit/policy_builder/policyfile_spec.rb +2 -2
  250. data/spec/unit/property/state_spec.rb +26 -25
  251. data/spec/unit/property/validation_spec.rb +14 -13
  252. data/spec/unit/property_spec.rb +10 -9
  253. data/spec/unit/provider/apt_update_spec.rb +6 -6
  254. data/spec/unit/provider/cron_spec.rb +15 -15
  255. data/spec/unit/provider/dsc_resource_spec.rb +6 -3
  256. data/spec/unit/provider/dsc_script_spec.rb +1 -1
  257. data/spec/unit/provider/execute_spec.rb +5 -5
  258. data/spec/unit/provider/git_spec.rb +39 -39
  259. data/spec/unit/provider/group/dscl_spec.rb +3 -3
  260. data/spec/unit/provider/group/groupadd_spec.rb +1 -1
  261. data/spec/unit/provider/group_spec.rb +2 -3
  262. data/spec/unit/provider/ifconfig/aix_spec.rb +1 -1
  263. data/spec/unit/provider/ifconfig/debian_spec.rb +2 -2
  264. data/spec/unit/provider/ifconfig_spec.rb +45 -16
  265. data/spec/unit/provider/launchd_spec.rb +23 -15
  266. data/spec/unit/provider/link_spec.rb +22 -11
  267. data/spec/unit/provider/mount/aix_spec.rb +6 -6
  268. data/spec/unit/provider/mount/mount_spec.rb +31 -31
  269. data/spec/unit/provider/mount/solaris_spec.rb +11 -11
  270. data/spec/unit/provider/ohai_spec.rb +1 -1
  271. data/spec/unit/provider/osx_profile_spec.rb +5 -7
  272. data/spec/unit/provider/package/apt_spec.rb +5 -5
  273. data/spec/unit/provider/package/bff_spec.rb +1 -1
  274. data/spec/unit/provider/package/cab_spec.rb +1 -1
  275. data/spec/unit/provider/package/chocolatey_spec.rb +8 -8
  276. data/spec/unit/provider/package/freebsd/pkg_spec.rb +1 -1
  277. data/spec/unit/provider/package/ips_spec.rb +6 -6
  278. data/spec/unit/provider/package/macports_spec.rb +1 -1
  279. data/spec/unit/provider/package/msu_spec.rb +1 -1
  280. data/spec/unit/provider/package/openbsd_spec.rb +15 -11
  281. data/spec/unit/provider/package/pacman_spec.rb +3 -3
  282. data/spec/unit/provider/package/paludis_spec.rb +4 -4
  283. data/spec/unit/provider/package/portage_spec.rb +1 -1
  284. data/spec/unit/provider/package/powershell_spec.rb +1 -1
  285. data/spec/unit/provider/package/smartos_spec.rb +3 -3
  286. data/spec/unit/provider/package/solaris_spec.rb +1 -1
  287. data/spec/unit/provider/package/windows/exe_spec.rb +9 -9
  288. data/spec/unit/provider/package/windows/msi_spec.rb +7 -7
  289. data/spec/unit/provider/package/windows_spec.rb +2 -1
  290. data/spec/unit/provider/package/yum/yum_cache_spec.rb +1 -1
  291. data/spec/unit/provider/package/zypper_spec.rb +4 -4
  292. data/spec/unit/provider/package_spec.rb +1 -1
  293. data/spec/unit/provider/powershell_script_spec.rb +7 -7
  294. data/spec/unit/provider/registry_key_spec.rb +1 -1
  295. data/spec/unit/provider/remote_directory_spec.rb +6 -6
  296. data/spec/unit/provider/route_spec.rb +11 -11
  297. data/spec/unit/provider/service/arch_service_spec.rb +13 -13
  298. data/spec/unit/provider/service/debian_service_spec.rb +2 -1
  299. data/spec/unit/provider/service/freebsd_service_spec.rb +28 -24
  300. data/spec/unit/provider/service/gentoo_service_spec.rb +2 -2
  301. data/spec/unit/provider/service/init_service_spec.rb +11 -11
  302. data/spec/unit/provider/service/invokercd_service_spec.rb +11 -11
  303. data/spec/unit/provider/service/macosx_spec.rb +5 -5
  304. data/spec/unit/provider/service/openbsd_service_spec.rb +15 -11
  305. data/spec/unit/provider/service/simple_service_spec.rb +7 -7
  306. data/spec/unit/provider/service/upstart_service_spec.rb +14 -14
  307. data/spec/unit/provider/service/windows_spec.rb +53 -35
  308. data/spec/unit/provider/subversion_spec.rb +8 -4
  309. data/spec/unit/provider/systemd_unit_spec.rb +142 -142
  310. data/spec/unit/provider/template/content_spec.rb +29 -29
  311. data/spec/unit/provider/windows_task_spec.rb +1 -1
  312. data/spec/unit/provider_resolver_spec.rb +75 -75
  313. data/spec/unit/provider_spec.rb +2 -4
  314. data/spec/unit/recipe_spec.rb +4 -4
  315. data/spec/unit/resource/batch_spec.rb +1 -1
  316. data/spec/unit/resource/chef_gem_spec.rb +1 -1
  317. data/spec/unit/resource/chocolatey_config_spec.rb +1 -1
  318. data/spec/unit/resource/chocolatey_source_spec.rb +1 -1
  319. data/spec/unit/resource/directory_spec.rb +1 -1
  320. data/spec/unit/resource/dnf_package_spec.rb +1 -1
  321. data/spec/unit/resource/dsc_resource_spec.rb +1 -1
  322. data/spec/unit/resource/file/verification_spec.rb +1 -2
  323. data/spec/unit/resource/file_spec.rb +1 -1
  324. data/spec/unit/resource/group_spec.rb +1 -1
  325. data/spec/unit/resource/link_spec.rb +1 -1
  326. data/spec/unit/resource/osx_profile_spec.rb +2 -1
  327. data/spec/unit/resource/powershell_script_spec.rb +12 -7
  328. data/spec/unit/resource/registry_key_spec.rb +3 -3
  329. data/spec/unit/resource/rhsm_subscription_spec.rb +1 -1
  330. data/spec/unit/resource/service_spec.rb +1 -1
  331. data/spec/unit/resource/template_spec.rb +2 -2
  332. data/spec/unit/resource/windows_env_spec.rb +1 -1
  333. data/spec/unit/resource/windows_service_spec.rb +5 -5
  334. data/spec/unit/resource/windows_task_spec.rb +6 -2
  335. data/spec/unit/resource/yum_package_spec.rb +1 -1
  336. data/spec/unit/resource_collection/resource_list_spec.rb +1 -1
  337. data/spec/unit/resource_collection/resource_set_spec.rb +7 -7
  338. data/spec/unit/resource_collection/stepable_iterator_spec.rb +2 -2
  339. data/spec/unit/resource_collection_spec.rb +4 -4
  340. data/spec/unit/resource_definition_spec.rb +2 -2
  341. data/spec/unit/resource_inspector_spec.rb +1 -1
  342. data/spec/unit/resource_reporter_spec.rb +4 -4
  343. data/spec/unit/resource_spec.rb +22 -22
  344. data/spec/unit/role_spec.rb +3 -3
  345. data/spec/unit/run_context/cookbook_compiler_spec.rb +23 -23
  346. data/spec/unit/run_list/run_list_expansion_spec.rb +9 -6
  347. data/spec/unit/run_list_spec.rb +1 -1
  348. data/spec/unit/runner_spec.rb +3 -3
  349. data/spec/unit/search/query_spec.rb +3 -2
  350. data/spec/unit/shell/model_wrapper_spec.rb +1 -1
  351. data/spec/unit/shell/shell_session_spec.rb +8 -11
  352. data/spec/unit/shell_spec.rb +1 -2
  353. data/spec/unit/user_spec.rb +4 -4
  354. data/spec/unit/user_v1_spec.rb +3 -3
  355. data/spec/unit/util/backup_spec.rb +1 -1
  356. data/spec/unit/util/dsc/lcm_output_parser_spec.rb +13 -13
  357. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +3 -3
  358. data/spec/unit/util/editor_spec.rb +1 -1
  359. data/spec/unit/util/powershell/ps_credential_spec.rb +3 -2
  360. data/spec/unit/util/threaded_job_queue_spec.rb +2 -2
  361. data/spec/unit/version_class_spec.rb +4 -4
  362. data/spec/unit/win32/registry_spec.rb +5 -5
  363. data/spec/unit/win32/security_spec.rb +2 -1
  364. data/tasks/announce.rb +4 -11
  365. metadata +10 -6
  366. data/tasks/maintainers.rb +0 -211
  367. data/tasks/templates/prerelease.md.erb +0 -35
@@ -22,7 +22,7 @@ describe Chef::GuardInterpreter::ResourceGuardInterpreter do
22
22
  let(:node) do
23
23
  node = Chef::Node.new
24
24
 
25
- node.default["kernel"] = Hash.new
25
+ node.default["kernel"] = {}
26
26
  node.default["kernel"][:machine] = :x86_64.to_s
27
27
  node.automatic[:os] = "windows"
28
28
  node
@@ -23,7 +23,7 @@ describe Chef::HTTP::Authenticator do
23
23
  let(:class_instance) { Chef::HTTP::Authenticator.new(client_name: "test") }
24
24
  let(:method) { "GET" }
25
25
  let(:url) { URI("https://chef.example.com/organizations/test") }
26
- let(:headers) { Hash.new }
26
+ let(:headers) { {} }
27
27
  let(:data) { "" }
28
28
 
29
29
  context "when handle_request is called" do
@@ -92,7 +92,8 @@ describe Chef::HTTP::Authenticator do
92
92
  it "calls authentication_headers with the proper input" do
93
93
  expect(class_instance).to receive(:authentication_headers).with(
94
94
  method, url, data,
95
- { "X-Ops-Server-API-Version" => Chef::HTTP::Authenticator::DEFAULT_SERVER_API_VERSION }).and_return({})
95
+ { "X-Ops-Server-API-Version" => Chef::HTTP::Authenticator::DEFAULT_SERVER_API_VERSION }
96
+ ).and_return({})
96
97
  class_instance.handle_request(method, url, headers, data)
97
98
  end
98
99
  end
@@ -108,7 +109,7 @@ describe Chef::HTTP::Authenticator do
108
109
  wxpGV4dGtdcahwXNE4601aXPra+xPcRd2puCNoEDBzgVuTSsLYeKBDMSfs173W1Q
109
110
  YwIDAQAB
110
111
  -----END PUBLIC KEY-----
111
- EOH
112
+ EOH
112
113
 
113
114
  let(:class_instance) { Chef::HTTP::Authenticator.new(client_name: "test", raw_key: public_key, ssh_agent_signing: true) }
114
115
 
@@ -21,7 +21,7 @@ require "chef/http/json_input"
21
21
 
22
22
  describe Chef::HTTP::JSONInput do
23
23
 
24
- let(:json_encoder) { described_class.new() }
24
+ let(:json_encoder) { described_class.new }
25
25
 
26
26
  let(:url) { URI.parse("http://example.com") }
27
27
  let(:headers) { {} }
@@ -38,13 +38,13 @@ describe Chef::HTTP::SocketlessChefZeroClient do
38
38
 
39
39
  let(:expected_rack_req) do
40
40
  {
41
- "SCRIPT_NAME" => "",
42
- "SERVER_NAME" => "localhost",
43
- "REQUEST_METHOD" => method.to_s.upcase,
44
- "PATH_INFO" => uri.path,
45
- "QUERY_STRING" => uri.query,
46
- "SERVER_PORT" => uri.port,
47
- "HTTP_HOST" => "localhost:#{uri.port}",
41
+ "SCRIPT_NAME" => "",
42
+ "SERVER_NAME" => "localhost",
43
+ "REQUEST_METHOD" => method.to_s.upcase,
44
+ "PATH_INFO" => uri.path,
45
+ "QUERY_STRING" => uri.query,
46
+ "SERVER_PORT" => uri.port,
47
+ "HTTP_HOST" => "localhost:#{uri.port}",
48
48
  "rack.url_scheme" => "chefzero",
49
49
  }
50
50
  end
@@ -137,16 +137,16 @@ describe Chef::HTTP::SocketlessChefZeroClient do
137
137
 
138
138
  let(:expected_rack_req) do
139
139
  {
140
- "SCRIPT_NAME" => "",
141
- "SERVER_NAME" => "localhost",
142
- "REQUEST_METHOD" => method.to_s.upcase,
143
- "PATH_INFO" => uri.path,
144
- "QUERY_STRING" => uri.query,
145
- "SERVER_PORT" => uri.port,
146
- "HTTP_HOST" => "localhost:#{uri.port}",
140
+ "SCRIPT_NAME" => "",
141
+ "SERVER_NAME" => "localhost",
142
+ "REQUEST_METHOD" => method.to_s.upcase,
143
+ "PATH_INFO" => uri.path,
144
+ "QUERY_STRING" => uri.query,
145
+ "SERVER_PORT" => uri.port,
146
+ "HTTP_HOST" => "localhost:#{uri.port}",
147
147
  "HTTP_X_OPS_SERVER_API_VERSION" => "2",
148
148
  "rack.url_scheme" => "chefzero",
149
- "rack.input" => an_instance_of(StringIO),
149
+ "rack.input" => an_instance_of(StringIO),
150
150
  }
151
151
  end
152
152
 
@@ -34,7 +34,7 @@ describe Chef::Key do
34
34
  Tfuc9dUYsFjptWYrV6pfEQ+bgo1OGBXORBFcFL+2D7u9JYquKrMgosznHoEkQNLo
35
35
  0wIDAQAB
36
36
  -----END PUBLIC KEY-----
37
- EOS
37
+ EOS
38
38
  end
39
39
 
40
40
  shared_examples_for "fields with username type validation" do
@@ -66,7 +66,7 @@ EOS
66
66
 
67
67
  context "when you feed it anything but a string" do
68
68
  it "should raise an ArgumentError" do
69
- expect { key.send(field, Hash.new) }.to raise_error(ArgumentError)
69
+ expect { key.send(field, {}) }.to raise_error(ArgumentError)
70
70
  end
71
71
  end
72
72
  end
@@ -406,9 +406,9 @@ EOS
406
406
 
407
407
  it "creates a new key via the API with the fingerprint as the name" do
408
408
  expect(rest).to receive(:post).with(url,
409
- { "name" => "12:3e:33:73:0b:f4:ec:72:dc:f0:4c:51:62:27:08:76:96:24:f4:4a",
410
- "public_key" => key.public_key,
411
- "expiration_date" => key.expiration_date }).and_return({})
409
+ { "name" => "12:3e:33:73:0b:f4:ec:72:dc:f0:4c:51:62:27:08:76:96:24:f4:4a",
410
+ "public_key" => key.public_key,
411
+ "expiration_date" => key.expiration_date }).and_return({})
412
412
  key.create
413
413
  end
414
414
  end
@@ -424,9 +424,9 @@ EOS
424
424
  context "when create_key is false" do
425
425
  it "creates a new key via the API" do
426
426
  expect(rest).to receive(:post).with(url,
427
- { "name" => key.name,
428
- "public_key" => key.public_key,
429
- "expiration_date" => key.expiration_date }).and_return({})
427
+ { "name" => key.name,
428
+ "public_key" => key.public_key,
429
+ "expiration_date" => key.expiration_date }).and_return({})
430
430
  key.create
431
431
  end
432
432
  end
@@ -72,7 +72,7 @@ describe Chef::Knife::Bootstrap do
72
72
  expect(knife).to receive(:read_secret).and_return("secrets")
73
73
  expect(rendered_template).to match("cat > /etc/chef/encrypted_data_bag_secret <<'EOP'")
74
74
  expect(rendered_template).to match('{"run_list":\[\]}')
75
- expect(rendered_template).to match(%r{secrets})
75
+ expect(rendered_template).to match(/secrets/)
76
76
  end
77
77
  end
78
78
  end
@@ -92,7 +92,7 @@ describe Chef::Knife::Bootstrap do
92
92
  knife.render_template
93
93
  end
94
94
  it "configures the preinstall command in the bootstrap template correctly" do
95
- expect(rendered_template).to match(%r{command})
95
+ expect(rendered_template).to match(/command/)
96
96
  end
97
97
  end
98
98
 
@@ -103,7 +103,7 @@ describe Chef::Knife::Bootstrap do
103
103
  knife.render_template
104
104
  end
105
105
  it "configures the https_proxy environment variable in the bootstrap template correctly" do
106
- expect(rendered_template).to match(%r{https_proxy="1.1.1.1" export https_proxy})
106
+ expect(rendered_template).to match(/https_proxy="1.1.1.1" export https_proxy/)
107
107
  end
108
108
  end
109
109
 
@@ -114,7 +114,7 @@ describe Chef::Knife::Bootstrap do
114
114
  knife.render_template
115
115
  end
116
116
  it "configures the https_proxy environment variable in the bootstrap template correctly" do
117
- expect(rendered_template).to match(%r{no_proxy="localserver" export no_proxy})
117
+ expect(rendered_template).to match(/no_proxy="localserver" export no_proxy/)
118
118
  end
119
119
  end
120
120
 
@@ -324,7 +324,7 @@ describe Chef::Knife::Bootstrap do
324
324
  it "should create a hint file when told to" do
325
325
  knife.parse_options(["--hint", "openstack"])
326
326
  knife.merge_configs
327
- expect(knife.render_template).to match(/\/etc\/chef\/ohai\/hints\/openstack.json/)
327
+ expect(knife.render_template).to match(%r{/etc/chef/ohai/hints/openstack.json})
328
328
  end
329
329
 
330
330
  it "should populate a hint file with JSON when given a file to read" do
@@ -354,7 +354,7 @@ describe Chef::Knife::Bootstrap do
354
354
  let(:setting) { "api.opscode.com" }
355
355
 
356
356
  it "renders the client.rb with a single FQDN no_proxy entry" do
357
- expect(rendered_template).to match(%r{.*no_proxy\s*"api.opscode.com".*})
357
+ expect(rendered_template).to match(/.*no_proxy\s*"api.opscode.com".*/)
358
358
  end
359
359
  end
360
360
 
@@ -362,7 +362,7 @@ describe Chef::Knife::Bootstrap do
362
362
  let(:setting) { "api.opscode.com,172.16.10.*" }
363
363
 
364
364
  it "renders the client.rb with comma-separated FQDN and wildcard IP address no_proxy entries" do
365
- expect(rendered_template).to match(%r{.*no_proxy\s*"api.opscode.com,172.16.10.\*".*})
365
+ expect(rendered_template).to match(/.*no_proxy\s*"api.opscode.com,172.16.10.\*".*/)
366
366
  end
367
367
  end
368
368
 
@@ -420,7 +420,7 @@ describe Chef::Knife::Bootstrap do
420
420
  it "creates a secret file" do
421
421
  expect(knife).to receive(:encryption_secret_provided_ignore_encrypt_flag?).and_return(true)
422
422
  expect(knife).to receive(:read_secret).and_return(secret)
423
- expect(rendered_template).to match(%r{#{secret}})
423
+ expect(rendered_template).to match(/#{secret}/)
424
424
  end
425
425
 
426
426
  it "renders the client.rb with an encrypted_data_bag_secret entry" do
@@ -528,7 +528,9 @@ describe Chef::Knife::Bootstrap do
528
528
  context "when client_d_dir is set" do
529
529
  let(:client_d_dir) do
530
530
  Chef::Util::PathHelper.cleanpath(
531
- File.join(File.dirname(__FILE__), "../../data/client.d_00")) end
531
+ File.join(File.dirname(__FILE__), "../../data/client.d_00")
532
+ )
533
+ end
532
534
 
533
535
  it "creates /etc/chef/client.d" do
534
536
  expect(rendered_template).to match("mkdir -p /etc/chef/client\.d")
@@ -553,7 +555,9 @@ describe Chef::Knife::Bootstrap do
553
555
  context "a nested directory structure" do
554
556
  let(:client_d_dir) do
555
557
  Chef::Util::PathHelper.cleanpath(
556
- File.join(File.dirname(__FILE__), "../../data/client.d_01")) end
558
+ File.join(File.dirname(__FILE__), "../../data/client.d_01")
559
+ )
560
+ end
557
561
  it "creates a file foo/bar.rb" do
558
562
  expect(rendered_template).to match("cat > /etc/chef/client.d/foo/bar.rb <<'EOP'")
559
563
  expect(rendered_template).to match("1 / 0")
@@ -42,10 +42,10 @@ describe Chef::Knife::ClientBulkDelete do
42
42
 
43
43
  let(:nonvalidator_client_names) { %w{tim dan stephen} }
44
44
  let(:nonvalidator_clients) do
45
- clients = Hash.new
45
+ clients = {}
46
46
 
47
47
  nonvalidator_client_names.each do |client_name|
48
- client = Chef::ApiClientV1.new()
48
+ client = Chef::ApiClientV1.new
49
49
  client.name(client_name)
50
50
  allow(client).to receive(:destroy).and_return(true)
51
51
  clients[client_name] = client
@@ -56,10 +56,10 @@ describe Chef::Knife::ClientBulkDelete do
56
56
 
57
57
  let(:validator_client_names) { %w{myorg-validator} }
58
58
  let(:validator_clients) do
59
- clients = Hash.new
59
+ clients = {}
60
60
 
61
61
  validator_client_names.each do |validator_client_name|
62
- validator_client = Chef::ApiClientV1.new()
62
+ validator_client = Chef::ApiClientV1.new
63
63
  validator_client.name(validator_client_name)
64
64
  allow(validator_client).to receive(:validator).and_return(true)
65
65
  allow(validator_client).to receive(:destroy).and_return(true)
@@ -58,7 +58,7 @@ describe Chef::Knife::ConfigureClient do
58
58
  it "should write out the config file" do
59
59
  allow(FileUtils).to receive(:mkdir_p)
60
60
  @knife.run
61
- expect(@client_file.string).to match /chef_server_url\s+'https\:\/\/chef\.example\.com'/
61
+ expect(@client_file.string).to match %r{chef_server_url\s+'https\://chef\.example\.com'}
62
62
  expect(@client_file.string).to match /validation_client_name\s+'chef-validator'/
63
63
  end
64
64
 
@@ -159,7 +159,7 @@ describe Chef::Knife::Configure do
159
159
  @knife.run
160
160
  expect(config_file.string).to match(/^client_name[\s]+=[\s]+'#{Etc.getlogin}'$/)
161
161
  expect(config_file.string).to match(%r{^client_key[\s]+=[\s]+'/home/you/.chef/#{Etc.getlogin}.pem'$})
162
- expect(config_file.string).to match(%r{^chef_server_url\s+=[\s]+'#{default_server_url}'$})
162
+ expect(config_file.string).to match(/^chef_server_url\s+=[\s]+'#{default_server_url}'$/)
163
163
  end
164
164
 
165
165
  it "creates a new client when given the --initial option" do
@@ -31,7 +31,7 @@ describe Chef::Knife::CookbookBulkDelete do
31
31
  allow(@knife.ui).to receive(:stdout).and_return(@stdout)
32
32
  allow(@knife.ui).to receive(:stderr).and_return(@stderr)
33
33
  allow(@knife.ui).to receive(:confirm).and_return(true)
34
- @cookbooks = Hash.new
34
+ @cookbooks = {}
35
35
  %w{cheezburger pizza lasagna}.each do |cookbook_name|
36
36
  cookbook = Chef::CookbookVersion.new(cookbook_name)
37
37
  @cookbooks[cookbook_name] = cookbook
@@ -76,8 +76,8 @@ describe Chef::Knife::CookbookDelete do
76
76
  @knife.cookbook_name = "foobar"
77
77
  @knife.version = "1.0.0"
78
78
  expect(@knife).to receive(:delete_object).with(Chef::CookbookVersion,
79
- "foobar version 1.0.0",
80
- "cookbook").and_yield()
79
+ "foobar version 1.0.0",
80
+ "cookbook").and_yield
81
81
  expect(@knife).to receive(:delete_request).with("cookbooks/foobar/1.0.0")
82
82
  @knife.delete_explicit_version
83
83
  end
@@ -112,7 +112,7 @@ describe Chef::Knife::CookbookDownload do
112
112
 
113
113
  it "should print an error and exit if the cookbook download directory already exists" do
114
114
  expect(File).to receive(:exists?).with("/var/tmp/chef/foobar-1.0.0").and_return(true)
115
- expect(@knife.ui).to receive(:fatal).with(/\/var\/tmp\/chef\/foobar-1\.0\.0 exists/i)
115
+ expect(@knife.ui).to receive(:fatal).with(%r{/var/tmp/chef/foobar-1\.0\.0 exists}i)
116
116
  expect { @knife.run }.to raise_error(SystemExit)
117
117
  end
118
118
 
@@ -141,7 +141,7 @@ describe Chef::Knife::CookbookDownload do
141
141
  expect(@stderr.string).to match /downloading #{segment}/im
142
142
  end
143
143
  expect(@stderr.string).to match /downloading foobar cookbook version 1\.0\.0/im
144
- expect(@stderr.string).to match /cookbook downloaded to \/var\/tmp\/chef\/foobar-1\.0\.0/im
144
+ expect(@stderr.string).to match %r{cookbook downloaded to /var/tmp/chef/foobar-1\.0\.0}im
145
145
  end
146
146
 
147
147
  describe "with -f or --force" do
@@ -98,8 +98,8 @@ describe Chef::Knife::CookbookMetadata do
98
98
  it "should generate the metadata for each cookbook" do
99
99
  expect(Chef::CookbookLoader).to receive(:new).with(cookbook_dir).and_call_original
100
100
  knife.run
101
- expect(stderr.string).to match /generating metadata for foo from #{cookbook_dir}\/foo\/metadata\.rb/im
102
- expect(stderr.string).to match /generating metadata for bar from #{cookbook_dir}\/bar\/metadata\.rb/im
101
+ expect(stderr.string).to match %r{generating metadata for foo from #{cookbook_dir}/foo/metadata\.rb}im
102
+ expect(stderr.string).to match %r{generating metadata for bar from #{cookbook_dir}/bar/metadata\.rb}im
103
103
  end
104
104
 
105
105
  it "with -o or --cookbook_path should look in the provided path and generate cookbook metadata" do
@@ -107,8 +107,8 @@ describe Chef::Knife::CookbookMetadata do
107
107
  knife.config[:cookbook_path] = cookbook_dir
108
108
  expect(Chef::CookbookLoader).to receive(:new).with(cookbook_dir).and_call_original
109
109
  knife.run
110
- expect(stderr.string).to match /generating metadata for foo from #{cookbook_dir}\/foo\/metadata\.rb/im
111
- expect(stderr.string).to match /generating metadata for bar from #{cookbook_dir}\/bar\/metadata\.rb/im
110
+ expect(stderr.string).to match %r{generating metadata for foo from #{cookbook_dir}/foo/metadata\.rb}im
111
+ expect(stderr.string).to match %r{generating metadata for bar from #{cookbook_dir}/bar/metadata\.rb}im
112
112
  end
113
113
  end
114
114
 
@@ -122,7 +122,7 @@ describe Chef::Knife::CookbookUpload do
122
122
  test_cookbook:
123
123
  /path/one/test_cookbook
124
124
  /path/two/test_cookbook
125
- E
125
+ E
126
126
  expect(output.string).to include(expected_message)
127
127
  end
128
128
  end
@@ -198,7 +198,7 @@ E
198
198
  before(:each) do
199
199
  cookbook.metadata.depends("dependency")
200
200
  allow(cookbook_loader).to receive(:[]) do |ckbk|
201
- { "test_cookbook" => cookbook,
201
+ { "test_cookbook" => cookbook,
202
202
  "dependency" => cookbook_dependency }[ckbk]
203
203
  end
204
204
  allow(knife).to receive(:cookbook_names).and_return(%w{cookbook_dependency test_cookbook})
@@ -225,7 +225,7 @@ E
225
225
  cookbook_dependency2 = Chef::CookbookVersion.new("dependency2")
226
226
  cookbook.metadata.depends("dependency2")
227
227
  allow(cookbook_loader).to receive(:[]) do |ckbk|
228
- { "test_cookbook" => cookbook,
228
+ { "test_cookbook" => cookbook,
229
229
  "dependency" => cookbook_dependency,
230
230
  "dependency2" => cookbook_dependency2 }[ckbk]
231
231
  end
@@ -291,7 +291,8 @@ E
291
291
  it "should warn users that no cookbooks exist" do
292
292
  knife.config[:cookbook_path] = ["/chef-repo/cookbooks", "/home/user/cookbooks"]
293
293
  expect(knife.ui).to receive(:warn).with(
294
- /Could not find any cookbooks in your cookbook path: #{knife.config[:cookbook_path].join(', ')}\. Use --cookbook-path to specify the desired path\./)
294
+ /Could not find any cookbooks in your cookbook path: #{knife.config[:cookbook_path].join(', ')}\. Use --cookbook-path to specify the desired path\./
295
+ )
295
296
  knife.run
296
297
  end
297
298
  end
@@ -300,7 +301,8 @@ E
300
301
  it "should warn users that no cookbooks exist" do
301
302
  knife.config[:cookbook_path] = "/chef-repo/cookbooks"
302
303
  expect(knife.ui).to receive(:warn).with(
303
- /Could not find any cookbooks in your cookbook path: #{knife.config[:cookbook_path]}\. Use --cookbook-path to specify the desired path\./)
304
+ /Could not find any cookbooks in your cookbook path: #{knife.config[:cookbook_path]}\. Use --cookbook-path to specify the desired path\./
305
+ )
304
306
  knife.run
305
307
  end
306
308
  end
@@ -75,7 +75,7 @@ describe Chef::Knife::Core::BootstrapContext do
75
75
  log_level :info
76
76
  log_location "/tmp/log"
77
77
  # Using default node name (fqdn)
78
- EXPECTED
78
+ EXPECTED
79
79
  expect(bootstrap_context.config_content).to eq expected
80
80
  end
81
81
 
@@ -35,7 +35,7 @@ describe Chef::Knife::CookbookSCMRepo do
35
35
  chef-vendor-graphite
36
36
  chef-vendor-python
37
37
  chef-vendor-absent-new
38
- BRANCHES
38
+ BRANCHES
39
39
  end
40
40
 
41
41
  it "has a path to the cookbook repo" do
@@ -84,7 +84,7 @@ BRANCHES
84
84
  @dirty_status = Mixlib::ShellOut.new
85
85
  @dirty_status.stdout.replace(<<-DIRTY)
86
86
  M chef/lib/chef/knife/cookbook_site_install.rb
87
- DIRTY
87
+ DIRTY
88
88
  expect(@cookbook_repo).to receive(:shell_out!).with("git status --porcelain", cwd: @repo_path).and_return(@dirty_status)
89
89
  expect { @cookbook_repo.sanity_check }.to raise_error(SystemExit)
90
90
  end
@@ -34,7 +34,7 @@ describe Chef::Knife::SubcommandLoader::GemGlobLoader do
34
34
  it "builds a list of the core subcommand file require paths" do
35
35
  expect(loader.subcommand_files).not_to be_empty
36
36
  loader.subcommand_files.each do |require_path|
37
- expect(require_path).to match(/chef\/knife\/.*|plugins\/knife\/.*/)
37
+ expect(require_path).to match(%r{chef/knife/.*|plugins/knife/.*})
38
38
  end
39
39
  end
40
40
 
@@ -52,7 +52,7 @@ describe Chef::Knife::SubcommandLoader::GemGlobLoader do
52
52
  expect($LOAD_PATH).to receive(:map).and_return([])
53
53
  if Gem::Specification.respond_to? :latest_specs
54
54
  expect(Gem::Specification).to receive(:latest_specs).with(true).and_return(gems)
55
- expect(gems[0]).to receive(:matches_for_glob).with(/chef\/knife\/\*\.rb\{(.*),\.rb,(.*)\}/).and_return(gem_files)
55
+ expect(gems[0]).to receive(:matches_for_glob).with(%r{chef/knife/\*\.rb\{(.*),\.rb,(.*)\}}).and_return(gem_files)
56
56
  else
57
57
  expect(Gem.source_index).to receive(:latest_specs).with(true).and_return(gems)
58
58
  expect(gems[0]).to receive(:require_paths).twice.and_return(["lib"])
@@ -185,7 +185,7 @@ describe Chef::Knife::SubcommandLoader::GemGlobLoader do
185
185
  expect(Gem.source_index).to receive(:latest_specs).and_call_original
186
186
  end
187
187
  loader.subcommand_files.each do |require_path|
188
- expect(require_path).to match(/chef\/knife\/.*|plugins\/knife\/.*/)
188
+ expect(require_path).to match(%r{chef/knife/.*|plugins/knife/.*})
189
189
  end
190
190
  end
191
191
 
@@ -201,7 +201,7 @@ describe Chef::Knife::SubcommandLoader::GemGlobLoader do
201
201
  expect(Gem.source_index).to receive(:latest_specs).and_call_original
202
202
  end
203
203
  loader.subcommand_files.each do |require_path|
204
- expect(require_path).to match(/chef\/knife\/.*|plugins\/knife\/.*/)
204
+ expect(require_path).to match(%r{chef/knife/.*|plugins/knife/.*})
205
205
  end
206
206
  end
207
207
  end