chef 12.0.3-x86-mingw32 → 12.1.0.rc.0-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (653) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +4 -1
  3. data/README.md +42 -18
  4. data/distro/common/html/_sources/ctl_chef_client.txt +1 -1
  5. data/distro/common/html/_sources/ctl_chef_server.txt +53 -35
  6. data/distro/common/html/_sources/ctl_chef_solo.txt +1 -1
  7. data/distro/common/html/_sources/knife_bootstrap.txt +1 -1
  8. data/distro/common/html/_sources/knife_cookbook_site.txt +1 -1
  9. data/distro/common/html/_sources/knife_data_bag.txt +4 -4
  10. data/distro/common/html/_sources/knife_status.txt +1 -1
  11. data/distro/common/html/_static/searchtools.js +1 -1
  12. data/distro/common/html/ctl_chef_client.html +55 -7
  13. data/distro/common/html/ctl_chef_server.html +84 -41
  14. data/distro/common/html/ctl_chef_shell.html +45 -1
  15. data/distro/common/html/ctl_chef_solo.html +51 -5
  16. data/distro/common/html/index.html +2 -2
  17. data/distro/common/html/knife.html +1 -1
  18. data/distro/common/html/knife_bootstrap.html +30 -10
  19. data/distro/common/html/knife_cookbook_site.html +2 -0
  20. data/distro/common/html/knife_data_bag.html +4 -4
  21. data/distro/common/html/knife_node.html +2 -2
  22. data/distro/common/html/knife_raw.html +1 -1
  23. data/distro/common/html/knife_role.html +1 -1
  24. data/distro/common/html/knife_search.html +3 -3
  25. data/distro/common/html/knife_status.html +4 -0
  26. data/distro/common/html/searchindex.js +1 -1
  27. data/distro/common/man/man1/chef-shell.1 +72 -1
  28. data/distro/common/man/man1/knife-bootstrap.1 +71 -63
  29. data/distro/common/man/man1/knife-client.1 +1 -1
  30. data/distro/common/man/man1/knife-configure.1 +1 -1
  31. data/distro/common/man/man1/knife-cookbook-site.1 +4 -1
  32. data/distro/common/man/man1/knife-cookbook.1 +1 -1
  33. data/distro/common/man/man1/knife-data-bag.1 +5 -5
  34. data/distro/common/man/man1/knife-delete.1 +1 -1
  35. data/distro/common/man/man1/knife-deps.1 +1 -1
  36. data/distro/common/man/man1/knife-diff.1 +1 -1
  37. data/distro/common/man/man1/knife-download.1 +1 -1
  38. data/distro/common/man/man1/knife-edit.1 +1 -1
  39. data/distro/common/man/man1/knife-environment.1 +1 -1
  40. data/distro/common/man/man1/knife-exec.1 +1 -1
  41. data/distro/common/man/man1/knife-index-rebuild.1 +1 -1
  42. data/distro/common/man/man1/knife-list.1 +1 -1
  43. data/distro/common/man/man1/knife-node.1 +3 -3
  44. data/distro/common/man/man1/knife-raw.1 +2 -2
  45. data/distro/common/man/man1/knife-recipe-list.1 +1 -1
  46. data/distro/common/man/man1/knife-role.1 +2 -2
  47. data/distro/common/man/man1/knife-search.1 +4 -4
  48. data/distro/common/man/man1/knife-serve.1 +1 -1
  49. data/distro/common/man/man1/knife-show.1 +1 -1
  50. data/distro/common/man/man1/knife-ssh.1 +1 -1
  51. data/distro/common/man/man1/knife-ssl-check.1 +1 -1
  52. data/distro/common/man/man1/knife-ssl-fetch.1 +1 -1
  53. data/distro/common/man/man1/knife-status.1 +1 -1
  54. data/distro/common/man/man1/knife-tag.1 +1 -1
  55. data/distro/common/man/man1/knife-upload.1 +1 -1
  56. data/distro/common/man/man1/knife-user.1 +1 -1
  57. data/distro/common/man/man1/knife-xargs.1 +1 -1
  58. data/distro/common/man/man1/knife.1 +1 -1
  59. data/distro/common/man/man8/chef-apply.8 +86 -0
  60. data/distro/common/man/man8/chef-client.8 +76 -5
  61. data/distro/common/man/man8/chef-solo.8 +79 -6
  62. data/distro/common/markdown/man1/knife-bootstrap.mkd +1 -1
  63. data/distro/common/markdown/man1/knife-cookbook-site.mkd +1 -1
  64. data/distro/common/markdown/man1/knife-data-bag.mkd +1 -1
  65. data/distro/common/markdown/man1/knife-environment.mkd +1 -1
  66. data/distro/common/markdown/man1/knife.mkd +1 -1
  67. data/lib/chef.rb +0 -7
  68. data/lib/chef/api_client.rb +10 -2
  69. data/lib/chef/api_client/registration.rb +7 -9
  70. data/lib/chef/application.rb +28 -12
  71. data/lib/chef/application/apply.rb +17 -1
  72. data/lib/chef/application/client.rb +74 -6
  73. data/lib/chef/application/knife.rb +1 -2
  74. data/lib/chef/application/solo.rb +30 -0
  75. data/lib/chef/application/windows_service.rb +1 -0
  76. data/lib/chef/application/windows_service_manager.rb +8 -2
  77. data/lib/chef/applications.rb +0 -1
  78. data/lib/chef/audit/audit_event_proxy.rb +93 -0
  79. data/lib/chef/audit/audit_reporter.rb +169 -0
  80. data/lib/chef/audit/control_group_data.rb +140 -0
  81. data/lib/chef/audit/rspec_formatter.rb +37 -0
  82. data/lib/chef/audit/runner.rb +178 -0
  83. data/lib/chef/chef_fs/chef_fs_data_store.rb +11 -2
  84. data/lib/chef/chef_fs/config.rb +25 -4
  85. data/lib/chef/chef_fs/data_handler/policy_data_handler.rb +15 -0
  86. data/lib/chef/chef_fs/data_handler/user_data_handler.rb +1 -0
  87. data/lib/chef/chef_fs/file_system.rb +1 -1
  88. data/lib/chef/chef_fs/file_system/base_fs_dir.rb +5 -0
  89. data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb +3 -2
  90. data/lib/chef/{shef/ext.rb → chef_fs/file_system/chef_repository_file_system_policies_dir.rb} +22 -3
  91. data/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +4 -0
  92. data/lib/chef/client.rb +81 -52
  93. data/lib/chef/config.rb +35 -3
  94. data/lib/chef/cookbook/metadata.rb +3 -3
  95. data/lib/chef/cookbook_manifest.rb +275 -0
  96. data/lib/chef/cookbook_site_streaming_uploader.rb +24 -23
  97. data/lib/chef/cookbook_uploader.rb +11 -2
  98. data/lib/chef/cookbook_version.rb +71 -194
  99. data/lib/chef/data_bag.rb +5 -2
  100. data/lib/chef/data_bag_item.rb +6 -3
  101. data/lib/chef/deprecation/warnings.rb +5 -4
  102. data/lib/chef/dsl/audit.rb +51 -0
  103. data/lib/chef/dsl/include_recipe.rb +2 -3
  104. data/lib/chef/dsl/reboot_pending.rb +1 -1
  105. data/lib/chef/dsl/recipe.rb +49 -31
  106. data/lib/chef/encrypted_data_bag_item/assertions.rb +0 -3
  107. data/lib/chef/environment.rb +5 -2
  108. data/lib/chef/event_dispatch/base.rb +36 -1
  109. data/lib/chef/event_dispatch/dispatcher.rb +3 -5
  110. data/lib/chef/exceptions.rb +61 -2
  111. data/lib/chef/file_access_control/unix.rb +12 -0
  112. data/lib/chef/file_access_control/windows.rb +14 -0
  113. data/lib/chef/formatters/doc.rb +47 -1
  114. data/{spec/unit/monkey_patches/string_spec.rb → lib/chef/guard_interpreter.rb} +11 -16
  115. data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +3 -2
  116. data/lib/chef/http.rb +1 -2
  117. data/lib/chef/knife.rb +5 -3
  118. data/lib/chef/knife/bootstrap.rb +84 -15
  119. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +165 -0
  120. data/lib/chef/knife/bootstrap/client_builder.rb +190 -0
  121. data/lib/chef/knife/bootstrap/{README.md → templates/README.md} +0 -0
  122. data/lib/chef/knife/bootstrap/{archlinux-gems.erb → templates/archlinux-gems.erb} +9 -0
  123. data/lib/chef/knife/bootstrap/{chef-aix.erb → templates/chef-aix.erb} +9 -0
  124. data/lib/chef/knife/bootstrap/{chef-full.erb → templates/chef-full.erb} +10 -1
  125. data/lib/chef/knife/client_create.rb +8 -7
  126. data/lib/chef/knife/cookbook_site_download.rb +1 -1
  127. data/lib/chef/knife/cookbook_site_install.rb +1 -1
  128. data/lib/chef/knife/cookbook_site_list.rb +1 -1
  129. data/lib/chef/knife/cookbook_site_search.rb +1 -1
  130. data/lib/chef/knife/cookbook_site_share.rb +39 -28
  131. data/lib/chef/knife/cookbook_site_show.rb +3 -3
  132. data/lib/chef/knife/cookbook_site_unshare.rb +1 -1
  133. data/lib/chef/knife/cookbook_test.rb +1 -0
  134. data/lib/chef/knife/cookbook_upload.rb +13 -8
  135. data/lib/chef/knife/core/bootstrap_context.rb +14 -3
  136. data/lib/chef/knife/core/generic_presenter.rb +5 -2
  137. data/lib/chef/knife/core/object_loader.rb +1 -1
  138. data/lib/chef/knife/core/subcommand_loader.rb +24 -0
  139. data/lib/chef/knife/core/ui.rb +9 -1
  140. data/lib/chef/knife/node_run_list_remove.rb +11 -3
  141. data/lib/chef/knife/raw.rb +14 -3
  142. data/lib/chef/knife/role_env_run_list_add.rb +86 -0
  143. data/lib/chef/knife/role_env_run_list_clear.rb +55 -0
  144. data/lib/chef/knife/role_env_run_list_remove.rb +57 -0
  145. data/lib/chef/knife/role_env_run_list_replace.rb +59 -0
  146. data/lib/chef/knife/role_env_run_list_set.rb +70 -0
  147. data/lib/chef/knife/role_run_list_add.rb +86 -0
  148. data/lib/chef/knife/role_run_list_clear.rb +55 -0
  149. data/lib/chef/knife/role_run_list_remove.rb +57 -0
  150. data/lib/chef/knife/role_run_list_replace.rb +59 -0
  151. data/lib/chef/knife/role_run_list_set.rb +70 -0
  152. data/lib/chef/knife/search.rb +4 -4
  153. data/lib/chef/knife/serve.rb +3 -0
  154. data/lib/chef/knife/ssh.rb +1 -1
  155. data/lib/chef/knife/ssl_check.rb +2 -2
  156. data/lib/chef/knife/ssl_fetch.rb +14 -1
  157. data/lib/chef/log.rb +10 -1
  158. data/lib/chef/mixin/command.rb +1 -1
  159. data/lib/chef/mixin/command/windows.rb +1 -5
  160. data/lib/chef/mixin/get_source_from_package.rb +1 -0
  161. data/lib/chef/mixin/params_validate.rb +2 -2
  162. data/lib/chef/mixin/securable.rb +1 -7
  163. data/lib/chef/mixin/shell_out.rb +7 -1
  164. data/lib/chef/mixin/template.rb +2 -14
  165. data/lib/chef/mixin/why_run.rb +1 -1
  166. data/lib/chef/monkey_patches/net_http.rb +4 -0
  167. data/lib/chef/monologger.rb +0 -2
  168. data/lib/chef/node.rb +5 -2
  169. data/lib/chef/node/attribute.rb +11 -9
  170. data/lib/chef/node/attribute_collections.rb +8 -12
  171. data/lib/chef/node/immutable_collections.rb +4 -10
  172. data/lib/chef/org.rb +148 -0
  173. data/lib/chef/platform/provider_mapping.rb +3 -2
  174. data/lib/chef/platform/provider_priority_map.rb +2 -0
  175. data/lib/chef/platform/query_helpers.rb +0 -3
  176. data/lib/chef/policy_builder/policyfile.rb +51 -8
  177. data/lib/chef/provider/deploy.rb +1 -2
  178. data/lib/chef/provider/directory.rb +3 -3
  179. data/lib/chef/provider/dsc_script.rb +13 -7
  180. data/lib/chef/provider/env.rb +8 -8
  181. data/lib/chef/provider/execute.rb +55 -36
  182. data/lib/chef/provider/file.rb +8 -0
  183. data/lib/chef/provider/group.rb +2 -0
  184. data/lib/chef/provider/group/dscl.rb +3 -4
  185. data/lib/chef/provider/ifconfig.rb +25 -25
  186. data/lib/chef/provider/ifconfig/aix.rb +25 -27
  187. data/lib/chef/provider/lwrp_base.rb +1 -1
  188. data/lib/chef/provider/mount.rb +2 -2
  189. data/lib/chef/provider/mount/mount.rb +3 -4
  190. data/lib/chef/provider/mount/solaris.rb +1 -1
  191. data/lib/chef/provider/package.rb +297 -48
  192. data/lib/chef/provider/package/aix.rb +25 -30
  193. data/lib/chef/provider/package/apt.rb +63 -19
  194. data/lib/chef/provider/package/dpkg.rb +15 -16
  195. data/lib/chef/provider/package/macports.rb +7 -7
  196. data/lib/chef/provider/package/openbsd.rb +107 -0
  197. data/lib/chef/provider/package/pacman.rb +13 -15
  198. data/lib/chef/provider/package/portage.rb +3 -4
  199. data/lib/chef/provider/package/rpm.rb +28 -17
  200. data/lib/chef/provider/package/rubygems.rb +9 -9
  201. data/lib/chef/provider/package/solaris.rb +17 -21
  202. data/lib/chef/provider/package/windows/msi.rb +1 -1
  203. data/lib/chef/provider/package/yum-dump.py +2 -2
  204. data/lib/chef/provider/package/yum.rb +117 -51
  205. data/lib/chef/provider/package/zypper.rb +17 -18
  206. data/lib/chef/provider/powershell_script.rb +4 -4
  207. data/lib/chef/provider/registry_key.rb +2 -2
  208. data/lib/chef/provider/remote_directory.rb +1 -1
  209. data/lib/chef/provider/script.rb +25 -16
  210. data/lib/chef/provider/service.rb +1 -1
  211. data/lib/chef/provider/service/freebsd.rb +1 -1
  212. data/lib/chef/provider/service/openbsd.rb +216 -0
  213. data/lib/chef/provider/service/upstart.rb +1 -1
  214. data/lib/chef/provider/service/windows.rb +99 -1
  215. data/lib/chef/provider/user.rb +1 -1
  216. data/lib/chef/provider/user/dscl.rb +19 -4
  217. data/lib/chef/providers.rb +2 -0
  218. data/lib/chef/recipe.rb +11 -5
  219. data/lib/chef/request_id.rb +1 -1
  220. data/lib/chef/resource.rb +839 -444
  221. data/lib/chef/resource/chef_gem.rb +20 -3
  222. data/lib/chef/resource/conditional.rb +3 -14
  223. data/lib/chef/resource/dsc_script.rb +14 -0
  224. data/lib/chef/resource/execute.rb +14 -7
  225. data/lib/chef/resource/file.rb +14 -0
  226. data/lib/chef/resource/file/verification.rb +122 -0
  227. data/lib/chef/resource/ips_package.rb +1 -1
  228. data/lib/chef/resource/lwrp_base.rb +2 -11
  229. data/lib/chef/resource/macports_package.rb +2 -1
  230. data/lib/chef/resource/openbsd_package.rb +51 -0
  231. data/lib/chef/resource/package.rb +2 -2
  232. data/lib/chef/resource/paludis_package.rb +1 -1
  233. data/lib/chef/resource/reboot.rb +1 -1
  234. data/lib/chef/resource/remote_file.rb +1 -0
  235. data/lib/chef/resource/rpm_package.rb +9 -0
  236. data/lib/chef/resource/script.rb +11 -0
  237. data/lib/chef/resource/template.rb +2 -3
  238. data/lib/chef/resource/windows_package.rb +1 -1
  239. data/lib/chef/resource/windows_service.rb +18 -0
  240. data/lib/chef/resource_builder.rb +137 -0
  241. data/lib/chef/resource_definition.rb +1 -1
  242. data/lib/chef/resource_reporter.rb +1 -1
  243. data/lib/chef/resources.rb +1 -0
  244. data/lib/chef/role.rb +17 -4
  245. data/lib/chef/run_context.rb +10 -6
  246. data/lib/chef/search/query.rb +66 -87
  247. data/lib/chef/shell/ext.rb +2 -2
  248. data/lib/chef/util/diff.rb +1 -4
  249. data/lib/chef/util/dsc/configuration_generator.rb +30 -6
  250. data/lib/chef/util/dsc/lcm_output_parser.rb +7 -3
  251. data/lib/chef/util/dsc/local_configuration_manager.rb +8 -8
  252. data/lib/chef/util/file_edit.rb +2 -2
  253. data/lib/chef/util/path_helper.rb +1 -4
  254. data/lib/chef/util/windows/net_use.rb +3 -3
  255. data/lib/chef/version.rb +1 -1
  256. data/lib/chef/win32/api.rb +1 -0
  257. data/lib/chef/win32/api/security.rb +26 -0
  258. data/lib/chef/win32/file.rb +21 -0
  259. data/lib/chef/win32/security.rb +46 -0
  260. data/lib/chef/win32/security/token.rb +8 -0
  261. data/lib/chef/win32/version.rb +0 -4
  262. data/spec/data/recipes.tgz +0 -0
  263. data/spec/functional/application_spec.rb +1 -1
  264. data/spec/functional/audit/rspec_formatter_spec.rb +54 -0
  265. data/spec/functional/audit/runner_spec.rb +137 -0
  266. data/spec/functional/dsl/reboot_pending_spec.rb +10 -10
  267. data/spec/functional/dsl/registry_helper_spec.rb +6 -6
  268. data/spec/functional/event_loggers/windows_eventlog_spec.rb +5 -5
  269. data/spec/functional/file_content_management/deploy_strategies_spec.rb +12 -21
  270. data/spec/functional/http/simple_spec.rb +1 -1
  271. data/spec/functional/knife/cookbook_delete_spec.rb +24 -24
  272. data/spec/functional/knife/exec_spec.rb +2 -4
  273. data/spec/functional/knife/smoke_test.rb +1 -1
  274. data/spec/functional/knife/ssh_spec.rb +23 -23
  275. data/spec/functional/provider/remote_file/cache_control_data_spec.rb +8 -8
  276. data/spec/functional/provider/whyrun_safe_ruby_block_spec.rb +2 -2
  277. data/spec/functional/rebooter_spec.rb +1 -1
  278. data/spec/functional/resource/aix_service_spec.rb +3 -0
  279. data/spec/functional/resource/aixinit_service_spec.rb +3 -3
  280. data/spec/functional/resource/bash_spec.rb +88 -0
  281. data/spec/functional/resource/deploy_revision_spec.rb +99 -100
  282. data/spec/functional/resource/env_spec.rb +3 -3
  283. data/spec/functional/resource/execute_spec.rb +97 -63
  284. data/spec/functional/resource/file_spec.rb +7 -7
  285. data/spec/functional/resource/git_spec.rb +13 -13
  286. data/spec/functional/resource/group_spec.rb +28 -25
  287. data/spec/functional/resource/ifconfig_spec.rb +2 -2
  288. data/spec/functional/resource/link_spec.rb +77 -78
  289. data/spec/functional/resource/mount_spec.rb +5 -5
  290. data/spec/functional/resource/ohai_spec.rb +1 -1
  291. data/spec/functional/resource/package_spec.rb +22 -22
  292. data/spec/functional/resource/powershell_spec.rb +57 -42
  293. data/spec/functional/resource/reboot_spec.rb +2 -2
  294. data/spec/functional/resource/registry_spec.rb +91 -91
  295. data/spec/functional/resource/remote_directory_spec.rb +19 -19
  296. data/spec/functional/resource/remote_file_spec.rb +18 -18
  297. data/spec/functional/resource/template_spec.rb +4 -4
  298. data/spec/functional/resource/user/dscl_spec.rb +4 -4
  299. data/spec/functional/resource/user/useradd_spec.rb +64 -51
  300. data/spec/functional/resource/windows_service_spec.rb +98 -0
  301. data/spec/functional/run_lock_spec.rb +9 -9
  302. data/spec/functional/shell_spec.rb +3 -3
  303. data/spec/functional/tiny_server_spec.rb +12 -12
  304. data/spec/functional/util/path_helper_spec.rb +1 -1
  305. data/spec/functional/version_spec.rb +1 -1
  306. data/spec/functional/win32/registry_helper_spec.rb +125 -125
  307. data/spec/functional/win32/security_spec.rb +65 -2
  308. data/spec/functional/win32/service_manager_spec.rb +30 -84
  309. data/spec/functional/win32/versions_spec.rb +6 -6
  310. data/spec/integration/client/client_spec.rb +102 -9
  311. data/spec/integration/knife/chef_fs_data_store_spec.rb +12 -8
  312. data/spec/integration/knife/common_options_spec.rb +3 -3
  313. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +2 -2
  314. data/spec/integration/knife/deps_spec.rb +4 -4
  315. data/spec/integration/knife/diff_spec.rb +6 -6
  316. data/spec/integration/knife/download_spec.rb +6 -6
  317. data/spec/integration/knife/list_spec.rb +2 -2
  318. data/spec/integration/knife/raw_spec.rb +5 -5
  319. data/spec/integration/knife/serve_spec.rb +3 -3
  320. data/spec/integration/knife/show_spec.rb +3 -3
  321. data/spec/integration/knife/upload_spec.rb +18 -18
  322. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
  323. data/spec/integration/solo/solo_spec.rb +11 -12
  324. data/spec/spec_helper.rb +27 -15
  325. data/spec/stress/win32/file_spec.rb +4 -4
  326. data/spec/stress/win32/security_spec.rb +4 -4
  327. data/spec/support/chef_helpers.rb +3 -3
  328. data/spec/support/matchers/leak.rb +2 -2
  329. data/spec/support/mock/platform.rb +1 -1
  330. data/spec/support/pedant/Gemfile +3 -0
  331. data/spec/support/pedant/pedant_config.rb +9 -2
  332. data/spec/support/pedant/run_pedant.rb +15 -16
  333. data/spec/support/platform_helpers.rb +8 -12
  334. data/spec/support/shared/functional/directory_resource.rb +13 -13
  335. data/spec/support/shared/functional/file_resource.rb +83 -83
  336. data/spec/support/shared/functional/http.rb +1 -1
  337. data/spec/support/shared/functional/securable_resource.rb +64 -64
  338. data/spec/support/shared/functional/securable_resource_with_reporting.rb +43 -41
  339. data/spec/support/shared/functional/win32_service.rb +60 -0
  340. data/spec/support/shared/functional/windows_script.rb +8 -8
  341. data/spec/support/shared/integration/knife_support.rb +8 -5
  342. data/spec/support/shared/matchers/exit_with_code.rb +6 -2
  343. data/spec/support/shared/unit/api_error_inspector.rb +8 -8
  344. data/spec/support/shared/unit/execute_resource.rb +24 -20
  345. data/spec/support/shared/unit/file_system_support.rb +2 -2
  346. data/spec/support/shared/unit/platform_introspector.rb +21 -21
  347. data/spec/support/shared/unit/provider/file.rb +239 -210
  348. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +69 -69
  349. data/spec/support/shared/unit/script_resource.rb +40 -32
  350. data/spec/support/shared/unit/windows_script_resource.rb +8 -8
  351. data/spec/unit/api_client/registration_spec.rb +47 -47
  352. data/spec/unit/api_client_spec.rb +107 -69
  353. data/spec/unit/application/apply_spec.rb +31 -15
  354. data/spec/unit/application/client_spec.rb +146 -45
  355. data/spec/unit/application/knife_spec.rb +31 -31
  356. data/spec/unit/application/solo_spec.rb +59 -43
  357. data/spec/unit/application_spec.rb +109 -74
  358. data/spec/unit/audit/audit_event_proxy_spec.rb +311 -0
  359. data/spec/unit/audit/audit_reporter_spec.rb +393 -0
  360. data/spec/unit/audit/control_group_data_spec.rb +478 -0
  361. data/{lib/chef/monkey_patches/file.rb → spec/unit/audit/rspec_formatter_spec.rb} +11 -8
  362. data/spec/unit/audit/runner_spec.rb +135 -0
  363. data/spec/unit/chef_fs/config_spec.rb +52 -0
  364. data/spec/unit/chef_fs/diff_spec.rb +12 -12
  365. data/spec/unit/chef_fs/file_pattern_spec.rb +276 -277
  366. data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +6 -6
  367. data/spec/unit/chef_fs/file_system_spec.rb +26 -13
  368. data/spec/unit/chef_fs/parallelizer.rb +87 -87
  369. data/spec/unit/chef_spec.rb +1 -1
  370. data/spec/unit/client_spec.rb +263 -97
  371. data/spec/unit/config_fetcher_spec.rb +13 -13
  372. data/spec/unit/config_spec.rb +105 -66
  373. data/spec/unit/cookbook/chefignore_spec.rb +6 -6
  374. data/spec/unit/cookbook/cookbook_version_loader_spec.rb +3 -3
  375. data/spec/unit/cookbook/metadata_spec.rb +149 -149
  376. data/spec/unit/cookbook/syntax_check_spec.rb +36 -31
  377. data/spec/unit/cookbook_loader_spec.rb +62 -58
  378. data/spec/unit/cookbook_manifest_spec.rb +141 -468
  379. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +27 -27
  380. data/spec/unit/cookbook_spec.rb +15 -15
  381. data/spec/unit/cookbook_uploader_spec.rb +37 -3
  382. data/spec/unit/cookbook_version_file_specificity_spec.rb +554 -0
  383. data/spec/unit/cookbook_version_spec.rb +98 -240
  384. data/spec/unit/daemon_spec.rb +31 -31
  385. data/spec/unit/data_bag_item_spec.rb +121 -89
  386. data/spec/unit/data_bag_spec.rb +35 -35
  387. data/spec/unit/deprecation_spec.rb +27 -14
  388. data/spec/unit/digester_spec.rb +3 -3
  389. data/spec/unit/dsl/audit_spec.rb +43 -0
  390. data/spec/unit/dsl/data_query_spec.rb +1 -1
  391. data/spec/unit/dsl/platform_introspection_spec.rb +14 -14
  392. data/spec/unit/dsl/reboot_pending_spec.rb +18 -18
  393. data/spec/unit/dsl/regsitry_helper_spec.rb +6 -6
  394. data/spec/unit/encrypted_data_bag_item_spec.rb +58 -82
  395. data/spec/unit/environment_spec.rb +105 -105
  396. data/spec/unit/exceptions_spec.rb +47 -1
  397. data/spec/unit/file_access_control_spec.rb +62 -56
  398. data/spec/unit/file_cache_spec.rb +11 -11
  399. data/spec/unit/file_content_management/deploy/cp_spec.rb +2 -2
  400. data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +10 -10
  401. data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +23 -23
  402. data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +14 -14
  403. data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +12 -12
  404. data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +1 -1
  405. data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +16 -16
  406. data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +4 -4
  407. data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +103 -13
  408. data/spec/unit/guard_interpreter_spec.rb +41 -0
  409. data/spec/unit/handler/json_file_spec.rb +10 -10
  410. data/spec/unit/handler_spec.rb +39 -39
  411. data/spec/unit/http/basic_client_spec.rb +3 -3
  412. data/spec/unit/http/http_request_spec.rb +10 -10
  413. data/spec/unit/http/simple_spec.rb +3 -3
  414. data/spec/unit/http/ssl_policies_spec.rb +15 -15
  415. data/spec/unit/http/validate_content_length_spec.rb +18 -13
  416. data/spec/unit/http_spec.rb +16 -9
  417. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +153 -0
  418. data/spec/unit/knife/bootstrap/client_builder_spec.rb +178 -0
  419. data/spec/unit/knife/bootstrap_spec.rb +144 -91
  420. data/spec/unit/knife/client_bulk_delete_spec.rb +24 -24
  421. data/spec/unit/knife/client_create_spec.rb +57 -43
  422. data/spec/unit/knife/client_delete_spec.rb +15 -15
  423. data/spec/unit/knife/client_edit_spec.rb +4 -4
  424. data/spec/unit/knife/client_list_spec.rb +2 -2
  425. data/spec/unit/knife/client_reregister_spec.rb +9 -9
  426. data/spec/unit/knife/configure_client_spec.rb +20 -20
  427. data/spec/unit/knife/configure_spec.rb +85 -85
  428. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +15 -15
  429. data/spec/unit/knife/cookbook_create_spec.rb +59 -59
  430. data/spec/unit/knife/cookbook_delete_spec.rb +49 -49
  431. data/spec/unit/knife/cookbook_download_spec.rb +56 -56
  432. data/spec/unit/knife/cookbook_list_spec.rb +9 -9
  433. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +8 -8
  434. data/spec/unit/knife/cookbook_metadata_spec.rb +44 -44
  435. data/spec/unit/knife/cookbook_show_spec.rb +29 -29
  436. data/spec/unit/knife/cookbook_site_download_spec.rb +26 -26
  437. data/spec/unit/knife/cookbook_site_install_spec.rb +5 -1
  438. data/spec/unit/knife/cookbook_site_share_spec.rb +68 -59
  439. data/spec/unit/knife/cookbook_site_unshare_spec.rb +15 -15
  440. data/spec/unit/knife/cookbook_test_spec.rb +16 -16
  441. data/spec/unit/knife/cookbook_upload_spec.rb +105 -71
  442. data/spec/unit/knife/core/bootstrap_context_spec.rb +37 -22
  443. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +36 -36
  444. data/spec/unit/knife/core/object_loader_spec.rb +3 -3
  445. data/spec/unit/knife/core/subcommand_loader_spec.rb +107 -33
  446. data/spec/unit/knife/core/ui_spec.rb +84 -72
  447. data/spec/unit/knife/data_bag_from_file_spec.rb +1 -1
  448. data/spec/unit/knife/environment_compare_spec.rb +12 -12
  449. data/spec/unit/knife/environment_create_spec.rb +16 -16
  450. data/spec/unit/knife/environment_delete_spec.rb +14 -14
  451. data/spec/unit/knife/environment_edit_spec.rb +15 -15
  452. data/spec/unit/knife/environment_from_file_spec.rb +17 -17
  453. data/spec/unit/knife/environment_list_spec.rb +7 -7
  454. data/spec/unit/knife/environment_show_spec.rb +10 -10
  455. data/spec/unit/knife/index_rebuild_spec.rb +17 -17
  456. data/spec/unit/knife/knife_help.rb +24 -24
  457. data/spec/unit/knife/node_bulk_delete_spec.rb +14 -14
  458. data/spec/unit/knife/node_delete_spec.rb +11 -11
  459. data/spec/unit/knife/node_edit_spec.rb +17 -17
  460. data/spec/unit/knife/node_environment_set_spec.rb +12 -12
  461. data/spec/unit/knife/node_from_file_spec.rb +8 -8
  462. data/spec/unit/knife/node_list_spec.rb +9 -9
  463. data/spec/unit/knife/node_run_list_add_spec.rb +29 -29
  464. data/spec/unit/knife/node_run_list_remove_spec.rb +28 -13
  465. data/spec/unit/knife/node_run_list_set_spec.rb +27 -27
  466. data/spec/unit/knife/raw_spec.rb +43 -0
  467. data/spec/unit/knife/role_bulk_delete_spec.rb +12 -12
  468. data/spec/unit/knife/role_create_spec.rb +12 -12
  469. data/spec/unit/knife/role_delete_spec.rb +10 -10
  470. data/spec/unit/knife/role_edit_spec.rb +13 -13
  471. data/spec/unit/knife/role_env_run_list_add_spec.rb +217 -0
  472. data/spec/unit/knife/role_env_run_list_clear_spec.rb +100 -0
  473. data/spec/unit/knife/role_env_run_list_remove_spec.rb +108 -0
  474. data/spec/unit/knife/role_env_run_list_replace_spec.rb +108 -0
  475. data/spec/unit/knife/role_env_run_list_set_spec.rb +102 -0
  476. data/spec/unit/knife/role_from_file_spec.rb +10 -10
  477. data/spec/unit/knife/role_list_spec.rb +7 -7
  478. data/spec/unit/knife/role_run_list_add_spec.rb +179 -0
  479. data/spec/unit/knife/role_run_list_clear_spec.rb +90 -0
  480. data/spec/unit/knife/role_run_list_remove_spec.rb +98 -0
  481. data/spec/unit/knife/role_run_list_replace_spec.rb +101 -0
  482. data/spec/unit/knife/role_run_list_set_spec.rb +92 -0
  483. data/spec/unit/knife/ssh_spec.rb +66 -66
  484. data/spec/unit/knife/ssl_check_spec.rb +27 -27
  485. data/spec/unit/knife/ssl_fetch_spec.rb +45 -12
  486. data/spec/unit/knife/status_spec.rb +5 -5
  487. data/spec/unit/knife/tag_create_spec.rb +5 -5
  488. data/spec/unit/knife/tag_delete_spec.rb +6 -6
  489. data/spec/unit/knife/tag_list_spec.rb +4 -4
  490. data/spec/unit/knife/user_create_spec.rb +18 -18
  491. data/spec/unit/knife/user_delete_spec.rb +4 -4
  492. data/spec/unit/knife/user_edit_spec.rb +7 -7
  493. data/spec/unit/knife/user_list_spec.rb +2 -2
  494. data/spec/unit/knife/user_reregister_spec.rb +10 -10
  495. data/spec/unit/knife/user_show_spec.rb +5 -5
  496. data/spec/unit/knife_spec.rb +36 -36
  497. data/spec/unit/lwrp_spec.rb +63 -39
  498. data/spec/unit/mash_spec.rb +6 -6
  499. data/spec/unit/mixin/checksum_spec.rb +2 -2
  500. data/spec/unit/mixin/command_spec.rb +13 -13
  501. data/spec/unit/mixin/convert_to_class_name_spec.rb +6 -6
  502. data/spec/unit/mixin/deep_merge_spec.rb +49 -49
  503. data/spec/unit/mixin/deprecation_spec.rb +5 -5
  504. data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +14 -14
  505. data/spec/unit/mixin/homebrew_user_spec.rb +3 -3
  506. data/spec/unit/mixin/params_validate_spec.rb +71 -71
  507. data/spec/unit/mixin/path_sanity_spec.rb +14 -14
  508. data/spec/unit/mixin/securable_spec.rb +177 -177
  509. data/spec/unit/mixin/shell_out_spec.rb +56 -27
  510. data/spec/unit/mixin/template_spec.rb +31 -31
  511. data/spec/unit/mixin/windows_architecture_helper_spec.rb +5 -5
  512. data/spec/unit/mixin/xml_escape_spec.rb +7 -7
  513. data/spec/unit/monkey_patches/uri_spec.rb +1 -1
  514. data/spec/unit/monologger_spec.rb +3 -3
  515. data/spec/unit/node/attribute_spec.rb +185 -136
  516. data/spec/unit/node/immutable_collections_spec.rb +22 -22
  517. data/spec/unit/node_spec.rb +210 -179
  518. data/spec/unit/org_spec.rb +196 -0
  519. data/spec/unit/platform/query_helpers_spec.rb +5 -5
  520. data/spec/unit/platform_spec.rb +46 -46
  521. data/spec/unit/policy_builder/expand_node_object_spec.rb +17 -18
  522. data/spec/unit/policy_builder/policyfile_spec.rb +159 -71
  523. data/spec/unit/provider/directory_spec.rb +5 -5
  524. data/spec/unit/provider/dsc_script_spec.rb +6 -6
  525. data/spec/unit/provider/env_spec.rb +27 -14
  526. data/spec/unit/provider/execute_spec.rb +139 -68
  527. data/spec/unit/provider/file/content_spec.rb +8 -8
  528. data/spec/unit/provider/git_spec.rb +10 -5
  529. data/spec/unit/provider/group/dscl_spec.rb +8 -11
  530. data/spec/unit/provider/group_spec.rb +13 -13
  531. data/spec/unit/provider/ifconfig/aix_spec.rb +3 -2
  532. data/spec/unit/provider/ifconfig/debian_spec.rb +19 -19
  533. data/spec/unit/provider/ifconfig_spec.rb +2 -2
  534. data/spec/unit/provider/mdadm_spec.rb +2 -2
  535. data/spec/unit/provider/mount/aix_spec.rb +5 -5
  536. data/spec/unit/provider/mount/mount_spec.rb +22 -22
  537. data/spec/unit/provider/mount/solaris_spec.rb +20 -20
  538. data/spec/unit/provider/package/aix_spec.rb +23 -22
  539. data/spec/unit/provider/package/apt_spec.rb +23 -4
  540. data/spec/unit/provider/package/dpkg_spec.rb +14 -15
  541. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +1 -1
  542. data/spec/unit/provider/package/freebsd/port_spec.rb +1 -1
  543. data/spec/unit/provider/package/ips_spec.rb +1 -2
  544. data/spec/unit/provider/package/macports_spec.rb +14 -14
  545. data/spec/unit/provider/package/openbsd_spec.rb +66 -0
  546. data/spec/unit/provider/package/pacman_spec.rb +15 -14
  547. data/spec/unit/provider/package/portage_spec.rb +11 -11
  548. data/spec/unit/provider/package/rpm_spec.rb +132 -84
  549. data/spec/unit/provider/package/rubygems_spec.rb +54 -25
  550. data/spec/unit/provider/package/solaris_spec.rb +22 -25
  551. data/spec/unit/provider/package/yum_spec.rb +237 -36
  552. data/spec/unit/provider/package/zypper_spec.rb +9 -12
  553. data/spec/unit/provider/package_spec.rb +276 -2
  554. data/spec/unit/provider/package_spec.rbe +0 -0
  555. data/spec/unit/provider/remote_directory_spec.rb +25 -25
  556. data/spec/unit/provider/remote_file/ftp_spec.rb +3 -3
  557. data/spec/unit/provider/route_spec.rb +3 -3
  558. data/spec/unit/provider/script_spec.rb +61 -43
  559. data/spec/unit/provider/service/aix_service_spec.rb +5 -5
  560. data/spec/unit/provider/service/arch_service_spec.rb +5 -5
  561. data/spec/unit/provider/service/debian_service_spec.rb +8 -8
  562. data/spec/unit/provider/service/freebsd_service_spec.rb +16 -2
  563. data/spec/unit/provider/service/gentoo_service_spec.rb +8 -8
  564. data/spec/unit/provider/service/init_service_spec.rb +5 -5
  565. data/spec/unit/provider/service/insserv_service_spec.rb +2 -2
  566. data/spec/unit/provider/service/invokercd_service_spec.rb +5 -5
  567. data/spec/unit/provider/service/macosx_spec.rb +7 -7
  568. data/spec/unit/provider/service/openbsd_service_spec.rb +543 -0
  569. data/spec/unit/provider/service/redhat_spec.rb +4 -4
  570. data/spec/unit/provider/service/simple_service_spec.rb +2 -2
  571. data/spec/unit/provider/service/solaris_smf_service_spec.rb +14 -14
  572. data/spec/unit/provider/service/systemd_service_spec.rb +15 -7
  573. data/spec/unit/provider/service/upstart_service_spec.rb +4 -4
  574. data/spec/unit/provider/service/windows_spec.rb +119 -25
  575. data/spec/unit/provider/service_spec.rb +1 -1
  576. data/spec/unit/provider/user/dscl_spec.rb +38 -30
  577. data/spec/unit/provider/user_spec.rb +1 -1
  578. data/spec/unit/provider_resolver_spec.rb +7 -7
  579. data/spec/unit/provider_spec.rb +23 -23
  580. data/spec/unit/recipe_spec.rb +194 -83
  581. data/spec/unit/registry_helper_spec.rb +143 -143
  582. data/spec/unit/resource/chef_gem_spec.rb +117 -3
  583. data/spec/unit/resource/conditional_action_not_nothing_spec.rb +2 -2
  584. data/spec/unit/resource/conditional_spec.rb +56 -15
  585. data/spec/unit/resource/deploy_spec.rb +2 -2
  586. data/spec/unit/resource/dsc_script_spec.rb +32 -0
  587. data/spec/unit/resource/execute_spec.rb +4 -0
  588. data/spec/unit/resource/file/verification_spec.rb +111 -0
  589. data/spec/unit/resource/file_spec.rb +14 -0
  590. data/spec/unit/resource/openbsd_package_spec.rb +49 -0
  591. data/spec/unit/resource/remote_file_spec.rb +12 -12
  592. data/spec/unit/resource/resource_notification_spec.rb +18 -18
  593. data/spec/unit/resource/rpm_package_spec.rb +12 -0
  594. data/spec/unit/resource/scm_spec.rb +4 -4
  595. data/spec/unit/resource/script_spec.rb +3 -5
  596. data/spec/unit/resource/subversion_spec.rb +1 -1
  597. data/spec/unit/resource_builder_spec.rb +1 -0
  598. data/spec/unit/resource_collection/resource_list_spec.rb +2 -2
  599. data/spec/unit/resource_collection/resource_set_spec.rb +3 -3
  600. data/spec/unit/resource_collection/stepable_iterator_spec.rb +24 -24
  601. data/spec/unit/resource_collection_spec.rb +52 -52
  602. data/spec/unit/resource_definition_spec.rb +1 -1
  603. data/spec/unit/resource_reporter_spec.rb +118 -118
  604. data/spec/unit/resource_spec.rb +131 -125
  605. data/spec/unit/rest/auth_credentials_spec.rb +73 -73
  606. data/spec/unit/rest_spec.rb +12 -12
  607. data/spec/unit/role_spec.rb +85 -84
  608. data/spec/unit/run_context/cookbook_compiler_spec.rb +18 -18
  609. data/spec/unit/run_context_spec.rb +39 -68
  610. data/spec/unit/run_list/run_list_expansion_spec.rb +21 -21
  611. data/spec/unit/run_list/run_list_item_spec.rb +28 -28
  612. data/spec/unit/run_list/versioned_recipe_list_spec.rb +14 -14
  613. data/spec/unit/run_list_spec.rb +55 -55
  614. data/spec/unit/run_lock_spec.rb +14 -14
  615. data/spec/unit/run_status_spec.rb +24 -24
  616. data/spec/unit/scan_access_control_spec.rb +23 -23
  617. data/spec/unit/search/query_spec.rb +54 -66
  618. data/spec/unit/shell/model_wrapper_spec.rb +13 -13
  619. data/spec/unit/shell/shell_ext_spec.rb +32 -32
  620. data/spec/unit/shell/shell_session_spec.rb +24 -24
  621. data/spec/unit/shell_out_spec.rb +4 -4
  622. data/spec/unit/shell_spec.rb +27 -27
  623. data/spec/unit/user_spec.rb +50 -50
  624. data/spec/unit/util/backup_spec.rb +32 -32
  625. data/spec/unit/util/diff_spec.rb +31 -31
  626. data/spec/unit/util/dsc/configuration_generator_spec.rb +38 -16
  627. data/spec/unit/util/dsc/lcm_output_parser_spec.rb +21 -26
  628. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +10 -10
  629. data/spec/unit/util/editor_spec.rb +10 -10
  630. data/spec/unit/util/file_edit_spec.rb +10 -10
  631. data/spec/unit/util/path_helper_spec.rb +38 -46
  632. data/spec/unit/util/powershell/cmdlet_spec.rb +9 -9
  633. data/spec/unit/util/selinux_spec.rb +30 -30
  634. data/spec/unit/util/threaded_job_queue_spec.rb +6 -6
  635. data/spec/unit/version/platform_spec.rb +5 -5
  636. data/spec/unit/version_class_spec.rb +15 -15
  637. data/spec/unit/version_constraint/platform_spec.rb +7 -7
  638. data/spec/unit/version_constraint_spec.rb +43 -43
  639. data/spec/unit/windows_service_spec.rb +15 -15
  640. data/spec/unit/workstation_config_loader_spec.rb +2 -2
  641. data/tasks/rspec.rb +16 -18
  642. metadata +126 -49
  643. data/bin/shef +0 -35
  644. data/lib/chef/application/agent.rb +0 -18
  645. data/lib/chef/monkey_patches/fileutils.rb +0 -65
  646. data/lib/chef/monkey_patches/numeric.rb +0 -15
  647. data/lib/chef/monkey_patches/object.rb +0 -9
  648. data/lib/chef/monkey_patches/pathname.rb +0 -32
  649. data/lib/chef/monkey_patches/regexp.rb +0 -34
  650. data/lib/chef/monkey_patches/securerandom.rb +0 -44
  651. data/lib/chef/monkey_patches/string.rb +0 -49
  652. data/lib/chef/monkey_patches/tempfile.rb +0 -64
  653. data/lib/chef/monkey_patches/uri.rb +0 -70
@@ -22,7 +22,7 @@ describe Chef::Knife::CookbookList do
22
22
  before do
23
23
  @knife = Chef::Knife::CookbookList.new
24
24
  @rest_mock = double('rest')
25
- @knife.stub(:rest).and_return(@rest_mock)
25
+ allow(@knife).to receive(:rest).and_return(@rest_mock)
26
26
  @cookbook_names = ['apache2', 'mysql']
27
27
  @base_url = 'https://server.example.com/cookbooks'
28
28
  @cookbook_data = {}
@@ -32,22 +32,22 @@ describe Chef::Knife::CookbookList do
32
32
  'url' => "#{@base_url}/#{item}/1.0.1"}]}
33
33
  end
34
34
  @stdout = StringIO.new
35
- @knife.ui.stub(:stdout).and_return(@stdout)
35
+ allow(@knife.ui).to receive(:stdout).and_return(@stdout)
36
36
  end
37
37
 
38
38
  describe 'run' do
39
39
  it 'should display the latest version of the cookbooks' do
40
- @rest_mock.should_receive(:get_rest).with('/cookbooks?num_versions=1').
40
+ expect(@rest_mock).to receive(:get_rest).with('/cookbooks?num_versions=1').
41
41
  and_return(@cookbook_data)
42
42
  @knife.run
43
43
  @cookbook_names.each do |item|
44
- @stdout.string.should match /#{item}\s+1\.0\.1/
44
+ expect(@stdout.string).to match /#{item}\s+1\.0\.1/
45
45
  end
46
46
  end
47
47
 
48
48
  it 'should query cookbooks for the configured environment' do
49
49
  @knife.config[:environment] = 'production'
50
- @rest_mock.should_receive(:get_rest).
50
+ expect(@rest_mock).to receive(:get_rest).
51
51
  with('/environments/production/cookbooks?num_versions=1').
52
52
  and_return(@cookbook_data)
53
53
  @knife.run
@@ -56,11 +56,11 @@ describe Chef::Knife::CookbookList do
56
56
  describe 'with -w or --with-uri' do
57
57
  it 'should display the cookbook uris' do
58
58
  @knife.config[:with_uri] = true
59
- @rest_mock.stub(:get_rest).and_return(@cookbook_data)
59
+ allow(@rest_mock).to receive(:get_rest).and_return(@cookbook_data)
60
60
  @knife.run
61
61
  @cookbook_names.each do |item|
62
62
  pattern = /#{Regexp.escape(@cookbook_data[item]['versions'].first['url'])}/
63
- @stdout.string.should match pattern
63
+ expect(@stdout.string).to match pattern
64
64
  end
65
65
  end
66
66
  end
@@ -75,11 +75,11 @@ describe Chef::Knife::CookbookList do
75
75
 
76
76
  it 'should display all versions of the cookbooks' do
77
77
  @knife.config[:all_versions] = true
78
- @rest_mock.should_receive(:get_rest).with('/cookbooks?num_versions=all').
78
+ expect(@rest_mock).to receive(:get_rest).with('/cookbooks?num_versions=all').
79
79
  and_return(@cookbook_data)
80
80
  @knife.run
81
81
  @cookbook_names.each do |item|
82
- @stdout.string.should match /#{item}\s+1\.0\.1\s+1\.0\.0/
82
+ expect(@stdout.string).to match /#{item}\s+1\.0\.1\s+1\.0\.0/
83
83
  end
84
84
  end
85
85
  end
@@ -27,10 +27,10 @@ describe Chef::Knife::CookbookMetadataFromFile do
27
27
  @tgt = File.expand_path(File.join(CHEF_SPEC_DATA, "metadata", "quick_start", "metadata.json"))
28
28
  @knife = Chef::Knife::CookbookMetadataFromFile.new
29
29
  @knife.name_args = [ @src ]
30
- @knife.stub(:to_json_pretty).and_return(true)
30
+ allow(@knife).to receive(:to_json_pretty).and_return(true)
31
31
  @md = Chef::Cookbook::Metadata.new
32
- Chef::Cookbook::Metadata.stub(:new).and_return(@md)
33
- $stdout.stub(:write)
32
+ allow(Chef::Cookbook::Metadata).to receive(:new).and_return(@md)
33
+ allow($stdout).to receive(:write)
34
34
  end
35
35
 
36
36
  after do
@@ -41,23 +41,23 @@ describe Chef::Knife::CookbookMetadataFromFile do
41
41
 
42
42
  describe "run" do
43
43
  it "should determine cookbook name from path" do
44
- @md.should_receive(:name).with()
45
- @md.should_receive(:name).with("quick_start")
44
+ expect(@md).to receive(:name).with(no_args)
45
+ expect(@md).to receive(:name).with("quick_start")
46
46
  @knife.run
47
47
  end
48
48
 
49
49
  it "should load the metadata source" do
50
- @md.should_receive(:from_file).with(@src)
50
+ expect(@md).to receive(:from_file).with(@src)
51
51
  @knife.run
52
52
  end
53
53
 
54
54
  it "should write out the metadata to the correct location" do
55
- File.should_receive(:open).with(@tgt, "w")
55
+ expect(File).to receive(:open).with(@tgt, "w")
56
56
  @knife.run
57
57
  end
58
58
 
59
59
  it "should generate json from the metadata" do
60
- Chef::JSONCompat.should_receive(:to_json_pretty).with(@md)
60
+ expect(Chef::JSONCompat).to receive(:to_json_pretty).with(@md)
61
61
  @knife.run
62
62
  end
63
63
 
@@ -26,25 +26,25 @@ describe Chef::Knife::CookbookMetadata do
26
26
  @json_data = '{ "version": "1.0.0" }'
27
27
  @stdout = StringIO.new
28
28
  @stderr = StringIO.new
29
- @knife.ui.stub(:stdout).and_return(@stdout)
30
- @knife.ui.stub(:stderr).and_return(@stderr)
29
+ allow(@knife.ui).to receive(:stdout).and_return(@stdout)
30
+ allow(@knife.ui).to receive(:stderr).and_return(@stderr)
31
31
  end
32
32
 
33
33
  describe 'run' do
34
34
  it 'should print an error and exit if a cookbook name was not provided' do
35
35
  @knife.name_args = []
36
- @knife.ui.should_receive(:error).with(/you must specify the cookbook.+use the --all/i)
37
- lambda { @knife.run }.should raise_error(SystemExit)
36
+ expect(@knife.ui).to receive(:error).with(/you must specify the cookbook.+use the --all/i)
37
+ expect { @knife.run }.to raise_error(SystemExit)
38
38
  end
39
39
 
40
40
  it 'should print an error and exit if an empty cookbook name was provided' do
41
41
  @knife.name_args = ['']
42
- @knife.ui.should_receive(:error).with(/you must specify the cookbook.+use the --all/i)
43
- lambda { @knife.run }.should raise_error(SystemExit)
42
+ expect(@knife.ui).to receive(:error).with(/you must specify the cookbook.+use the --all/i)
43
+ expect { @knife.run }.to raise_error(SystemExit)
44
44
  end
45
45
 
46
46
  it 'should generate the metadata for the cookbook' do
47
- @knife.should_receive(:generate_metadata).with('foobar')
47
+ expect(@knife).to receive(:generate_metadata).with('foobar')
48
48
  @knife.run
49
49
  end
50
50
 
@@ -59,21 +59,21 @@ describe Chef::Knife::CookbookMetadata do
59
59
  "foo" => @foo,
60
60
  "bar" => @bar
61
61
  }
62
- @cookbook_loader.should_receive(:load_cookbooks).and_return(@cookbook_loader)
63
- @knife.should_receive(:generate_metadata).with('foo')
64
- @knife.should_receive(:generate_metadata).with('bar')
62
+ expect(@cookbook_loader).to receive(:load_cookbooks).and_return(@cookbook_loader)
63
+ expect(@knife).to receive(:generate_metadata).with('foo')
64
+ expect(@knife).to receive(:generate_metadata).with('bar')
65
65
  end
66
66
 
67
67
  it 'should generate the metadata for each cookbook' do
68
68
  Chef::Config[:cookbook_path] = @cookbook_dir
69
- Chef::CookbookLoader.should_receive(:new).with(@cookbook_dir).and_return(@cookbook_loader)
69
+ expect(Chef::CookbookLoader).to receive(:new).with(@cookbook_dir).and_return(@cookbook_loader)
70
70
  @knife.run
71
71
  end
72
72
 
73
73
  describe 'and with -o or --cookbook-path' do
74
74
  it 'should look in the provided path and generate cookbook metadata' do
75
75
  @knife.config[:cookbook_path] = '/opt/chef/cookbooks'
76
- Chef::CookbookLoader.should_receive(:new).with('/opt/chef/cookbooks').and_return(@cookbook_loader)
76
+ expect(Chef::CookbookLoader).to receive(:new).with('/opt/chef/cookbooks').and_return(@cookbook_loader)
77
77
  @knife.run
78
78
  end
79
79
  end
@@ -84,21 +84,21 @@ describe Chef::Knife::CookbookMetadata do
84
84
  describe 'generate_metadata' do
85
85
  before(:each) do
86
86
  @knife.config[:cookbook_path] = @cookbook_dir
87
- File.stub(:expand_path).with("#{@cookbook_dir}/foobar/metadata.rb").
87
+ allow(File).to receive(:expand_path).with("#{@cookbook_dir}/foobar/metadata.rb").
88
88
  and_return("#{@cookbook_dir}/foobar/metadata.rb")
89
89
  end
90
90
 
91
91
  it 'should generate the metadata from metadata.rb if it exists' do
92
- File.should_receive(:exists?).with("#{@cookbook_dir}/foobar/metadata.rb").
92
+ expect(File).to receive(:exists?).with("#{@cookbook_dir}/foobar/metadata.rb").
93
93
  and_return(true)
94
- @knife.should_receive(:generate_metadata_from_file).with('foobar', "#{@cookbook_dir}/foobar/metadata.rb")
94
+ expect(@knife).to receive(:generate_metadata_from_file).with('foobar', "#{@cookbook_dir}/foobar/metadata.rb")
95
95
  @knife.run
96
96
  end
97
97
 
98
98
  it 'should validate the metadata json if metadata.rb does not exist' do
99
- File.should_receive(:exists?).with("#{@cookbook_dir}/foobar/metadata.rb").
99
+ expect(File).to receive(:exists?).with("#{@cookbook_dir}/foobar/metadata.rb").
100
100
  and_return(false)
101
- @knife.should_receive(:validate_metadata_json).with(@cookbook_dir, 'foobar')
101
+ expect(@knife).to receive(:validate_metadata_json).with(@cookbook_dir, 'foobar')
102
102
  @knife.run
103
103
  end
104
104
  end
@@ -110,16 +110,16 @@ describe Chef::Knife::CookbookMetadata do
110
110
  end
111
111
 
112
112
  it 'should generate the metatdata json from metatdata.rb' do
113
- Chef::Cookbook::Metadata.stub(:new).and_return(@metadata_mock)
114
- @metadata_mock.should_receive(:name).with('foobar')
115
- @metadata_mock.should_receive(:from_file).with("#{@cookbook_dir}/foobar/metadata.rb")
116
- File.should_receive(:open).with("#{@cookbook_dir}/foobar/metadata.json", 'w').
113
+ allow(Chef::Cookbook::Metadata).to receive(:new).and_return(@metadata_mock)
114
+ expect(@metadata_mock).to receive(:name).with('foobar')
115
+ expect(@metadata_mock).to receive(:from_file).with("#{@cookbook_dir}/foobar/metadata.rb")
116
+ expect(File).to receive(:open).with("#{@cookbook_dir}/foobar/metadata.json", 'w').
117
117
  and_yield(@json_file_mock)
118
- @json_file_mock.should_receive(:write).with(@json_data)
119
- Chef::JSONCompat.should_receive(:to_json_pretty).with(@metadata_mock).
118
+ expect(@json_file_mock).to receive(:write).with(@json_data)
119
+ expect(Chef::JSONCompat).to receive(:to_json_pretty).with(@metadata_mock).
120
120
  and_return(@json_data)
121
121
  @knife.generate_metadata_from_file('foobar', "#{@cookbook_dir}/foobar/metadata.rb")
122
- @stderr.string.should match /generating metadata for foobar from #{@cookbook_dir}\/foobar\/metadata\.rb/im
122
+ expect(@stderr.string).to match /generating metadata for foobar from #{@cookbook_dir}\/foobar\/metadata\.rb/im
123
123
  end
124
124
 
125
125
  { Chef::Exceptions::ObsoleteDependencySyntax => 'obsolote dependency',
@@ -127,32 +127,32 @@ describe Chef::Knife::CookbookMetadata do
127
127
  }.each_pair do |klass, description|
128
128
  it "should print an error and exit when an #{description} syntax exception is encountered" do
129
129
  exception = klass.new("#{description} blah")
130
- Chef::Cookbook::Metadata.stub(:new).and_raise(exception)
131
- lambda {
130
+ allow(Chef::Cookbook::Metadata).to receive(:new).and_raise(exception)
131
+ expect {
132
132
  @knife.generate_metadata_from_file('foobar', "#{@cookbook_dir}/foobar/metadata.rb")
133
- }.should raise_error(SystemExit)
134
- @stderr.string.should match /error: the cookbook 'foobar' contains invalid or obsolete metadata syntax/im
135
- @stderr.string.should match /in #{@cookbook_dir}\/foobar\/metadata\.rb/im
136
- @stderr.string.should match /#{description} blah/im
133
+ }.to raise_error(SystemExit)
134
+ expect(@stderr.string).to match /error: the cookbook 'foobar' contains invalid or obsolete metadata syntax/im
135
+ expect(@stderr.string).to match /in #{@cookbook_dir}\/foobar\/metadata\.rb/im
136
+ expect(@stderr.string).to match /#{description} blah/im
137
137
  end
138
138
  end
139
139
  end
140
140
 
141
141
  describe 'validate_metadata_json' do
142
142
  it 'should validate the metadata json' do
143
- File.should_receive(:exist?).with("#{@cookbook_dir}/foobar/metadata.json").
143
+ expect(File).to receive(:exist?).with("#{@cookbook_dir}/foobar/metadata.json").
144
144
  and_return(true)
145
- IO.should_receive(:read).with("#{@cookbook_dir}/foobar/metadata.json").
145
+ expect(IO).to receive(:read).with("#{@cookbook_dir}/foobar/metadata.json").
146
146
  and_return(@json_data)
147
- Chef::Cookbook::Metadata.should_receive(:validate_json).with(@json_data)
147
+ expect(Chef::Cookbook::Metadata).to receive(:validate_json).with(@json_data)
148
148
  @knife.validate_metadata_json(@cookbook_dir, 'foobar')
149
149
  end
150
150
 
151
151
  it 'should not try to validate the metadata json if the file does not exist' do
152
- File.should_receive(:exist?).with("#{@cookbook_dir}/foobar/metadata.json").
152
+ expect(File).to receive(:exist?).with("#{@cookbook_dir}/foobar/metadata.json").
153
153
  and_return(false)
154
- IO.should_not_receive(:read)
155
- Chef::Cookbook::Metadata.should_not_receive(:validate_json)
154
+ expect(IO).not_to receive(:read)
155
+ expect(Chef::Cookbook::Metadata).not_to receive(:validate_json)
156
156
  @knife.validate_metadata_json(@cookbook_dir, 'foobar')
157
157
  end
158
158
 
@@ -160,18 +160,18 @@ describe Chef::Knife::CookbookMetadata do
160
160
  Chef::Exceptions::InvalidVersionConstraint => 'invalid version constraint'
161
161
  }.each_pair do |klass, description|
162
162
  it "should print an error and exit when an #{description} syntax exception is encountered" do
163
- File.should_receive(:exist?).with("#{@cookbook_dir}/foobar/metadata.json").
163
+ expect(File).to receive(:exist?).with("#{@cookbook_dir}/foobar/metadata.json").
164
164
  and_return(true)
165
- IO.should_receive(:read).with("#{@cookbook_dir}/foobar/metadata.json").
165
+ expect(IO).to receive(:read).with("#{@cookbook_dir}/foobar/metadata.json").
166
166
  and_return(@json_data)
167
167
  exception = klass.new("#{description} blah")
168
- Chef::Cookbook::Metadata.stub(:validate_json).and_raise(exception)
169
- lambda {
168
+ allow(Chef::Cookbook::Metadata).to receive(:validate_json).and_raise(exception)
169
+ expect {
170
170
  @knife.validate_metadata_json(@cookbook_dir, 'foobar')
171
- }.should raise_error(SystemExit)
172
- @stderr.string.should match /error: the cookbook 'foobar' contains invalid or obsolete metadata syntax/im
173
- @stderr.string.should match /in #{@cookbook_dir}\/foobar\/metadata\.json/im
174
- @stderr.string.should match /#{description} blah/im
171
+ }.to raise_error(SystemExit)
172
+ expect(@stderr.string).to match /error: the cookbook 'foobar' contains invalid or obsolete metadata syntax/im
173
+ expect(@stderr.string).to match /in #{@cookbook_dir}\/foobar\/metadata\.json/im
174
+ expect(@stderr.string).to match /#{description} blah/im
175
175
  end
176
176
  end
177
177
  end
@@ -26,18 +26,18 @@ describe Chef::Knife::CookbookShow do
26
26
  @knife.config = { }
27
27
  @knife.name_args = [ "cookbook_name" ]
28
28
  @rest = double(Chef::REST)
29
- @knife.stub(:rest).and_return(@rest)
30
- @knife.stub(:pretty_print).and_return(true)
31
- @knife.stub(:output).and_return(true)
29
+ allow(@knife).to receive(:rest).and_return(@rest)
30
+ allow(@knife).to receive(:pretty_print).and_return(true)
31
+ allow(@knife).to receive(:output).and_return(true)
32
32
  end
33
33
 
34
34
  describe "run" do
35
35
  describe "with 0 arguments: help" do
36
36
  it 'should should print usage and exit when given no arguments' do
37
37
  @knife.name_args = []
38
- @knife.should_receive(:show_usage)
39
- @knife.ui.should_receive(:fatal)
40
- lambda { @knife.run }.should raise_error(SystemExit)
38
+ expect(@knife).to receive(:show_usage)
39
+ expect(@knife.ui).to receive(:fatal)
40
+ expect { @knife.run }.to raise_error(SystemExit)
41
41
  end
42
42
  end
43
43
 
@@ -56,15 +56,15 @@ describe Chef::Knife::CookbookShow do
56
56
  end
57
57
 
58
58
  it "should show the raw cookbook data" do
59
- @rest.should_receive(:get_rest).with("cookbooks/cookbook_name").and_return(@response)
60
- @knife.should_receive(:format_cookbook_list_for_display).with(@response)
59
+ expect(@rest).to receive(:get_rest).with("cookbooks/cookbook_name").and_return(@response)
60
+ expect(@knife).to receive(:format_cookbook_list_for_display).with(@response)
61
61
  @knife.run
62
62
  end
63
63
 
64
64
  it "should respect the user-supplied environment" do
65
65
  @knife.config[:environment] = "foo"
66
- @rest.should_receive(:get_rest).with("environments/foo/cookbooks/cookbook_name").and_return(@response)
67
- @knife.should_receive(:format_cookbook_list_for_display).with(@response)
66
+ expect(@rest).to receive(:get_rest).with("environments/foo/cookbooks/cookbook_name").and_return(@response)
67
+ expect(@knife).to receive(:format_cookbook_list_for_display).with(@response)
68
68
  @knife.run
69
69
  end
70
70
  end
@@ -76,8 +76,8 @@ describe Chef::Knife::CookbookShow do
76
76
  end
77
77
 
78
78
  it "should show the specific part of a cookbook" do
79
- @rest.should_receive(:get_rest).with("cookbooks/cookbook_name/0.1.0").and_return(@response)
80
- @knife.should_receive(:output).with(@response)
79
+ expect(@rest).to receive(:get_rest).with("cookbooks/cookbook_name/0.1.0").and_return(@response)
80
+ expect(@knife).to receive(:output).with(@response)
81
81
  @knife.run
82
82
  end
83
83
  end
@@ -101,8 +101,8 @@ describe Chef::Knife::CookbookShow do
101
101
  end
102
102
 
103
103
  it "should print the json of the part" do
104
- @rest.should_receive(:get_rest).with("cookbooks/cookbook_name/0.1.0").and_return(@cookbook_response)
105
- @knife.should_receive(:output).with(@cookbook_response.manifest["recipes"])
104
+ expect(@rest).to receive(:get_rest).with("cookbooks/cookbook_name/0.1.0").and_return(@cookbook_response)
105
+ expect(@knife).to receive(:output).with(@cookbook_response.manifest["recipes"])
106
106
  @knife.run
107
107
  end
108
108
  end
@@ -125,9 +125,9 @@ describe Chef::Knife::CookbookShow do
125
125
  end
126
126
 
127
127
  it "should print the raw result of the request (likely a file!)" do
128
- @rest.should_receive(:get_rest).with("cookbooks/cookbook_name/0.1.0").and_return(@cookbook_response)
129
- @rest.should_receive(:get_rest).with("http://example.org/files/default.rb", true).and_return(StringIO.new(@response))
130
- @knife.should_receive(:pretty_print).with(@response)
128
+ expect(@rest).to receive(:get_rest).with("cookbooks/cookbook_name/0.1.0").and_return(@cookbook_response)
129
+ expect(@rest).to receive(:get_rest).with("http://example.org/files/default.rb", true).and_return(StringIO.new(@response))
130
+ expect(@knife).to receive(:pretty_print).with(@response)
131
131
  @knife.run
132
132
  end
133
133
  end
@@ -177,9 +177,9 @@ describe Chef::Knife::CookbookShow do
177
177
  @knife.config[:platform] = "example_platform"
178
178
  @knife.config[:platform_version] = "1.0"
179
179
  @knife.config[:fqdn] = "examplehost.example.org"
180
- @rest.should_receive(:get_rest).with("cookbooks/cookbook_name/0.1.0").and_return(@cookbook_response)
181
- @rest.should_receive(:get_rest).with("http://example.org/files/1111", true).and_return(StringIO.new(@response))
182
- @knife.should_receive(:pretty_print).with(@response)
180
+ expect(@rest).to receive(:get_rest).with("cookbooks/cookbook_name/0.1.0").and_return(@cookbook_response)
181
+ expect(@rest).to receive(:get_rest).with("http://example.org/files/1111", true).and_return(StringIO.new(@response))
182
+ expect(@knife).to receive(:pretty_print).with(@response)
183
183
  @knife.run
184
184
  end
185
185
  end
@@ -189,9 +189,9 @@ describe Chef::Knife::CookbookShow do
189
189
  @knife.config[:platform] = "ubuntu"
190
190
  @knife.config[:platform_version] = "1.0"
191
191
  @knife.config[:fqdn] = "differenthost.example.org"
192
- @rest.should_receive(:get_rest).with("cookbooks/cookbook_name/0.1.0").and_return(@cookbook_response)
193
- @rest.should_receive(:get_rest).with("http://example.org/files/3333", true).and_return(StringIO.new(@response))
194
- @knife.should_receive(:pretty_print).with(@response)
192
+ expect(@rest).to receive(:get_rest).with("cookbooks/cookbook_name/0.1.0").and_return(@cookbook_response)
193
+ expect(@rest).to receive(:get_rest).with("http://example.org/files/3333", true).and_return(StringIO.new(@response))
194
+ expect(@knife).to receive(:pretty_print).with(@response)
195
195
  @knife.run
196
196
  end
197
197
  end
@@ -201,18 +201,18 @@ describe Chef::Knife::CookbookShow do
201
201
  @knife.config[:platform] = "ubuntu"
202
202
  @knife.config[:platform_version] = "9.10"
203
203
  @knife.config[:fqdn] = "differenthost.example.org"
204
- @rest.should_receive(:get_rest).with("cookbooks/cookbook_name/0.1.0").and_return(@cookbook_response)
205
- @rest.should_receive(:get_rest).with("http://example.org/files/2222", true).and_return(StringIO.new(@response))
206
- @knife.should_receive(:pretty_print).with(@response)
204
+ expect(@rest).to receive(:get_rest).with("cookbooks/cookbook_name/0.1.0").and_return(@cookbook_response)
205
+ expect(@rest).to receive(:get_rest).with("http://example.org/files/2222", true).and_return(StringIO.new(@response))
206
+ expect(@knife).to receive(:pretty_print).with(@response)
207
207
  @knife.run
208
208
  end
209
209
  end
210
210
 
211
211
  describe "with none of the arguments, it should use the default" do
212
212
  it "should pass them all" do
213
- @rest.should_receive(:get_rest).with("cookbooks/cookbook_name/0.1.0").and_return(@cookbook_response)
214
- @rest.should_receive(:get_rest).with("http://example.org/files/4444", true).and_return(StringIO.new(@response))
215
- @knife.should_receive(:pretty_print).with(@response)
213
+ expect(@rest).to receive(:get_rest).with("cookbooks/cookbook_name/0.1.0").and_return(@cookbook_response)
214
+ expect(@rest).to receive(:get_rest).with("http://example.org/files/4444", true).and_return(StringIO.new(@response))
215
+ expect(@knife).to receive(:pretty_print).with(@response)
216
216
  @knife.run
217
217
  end
218
218
  end
@@ -26,16 +26,16 @@ describe Chef::Knife::CookbookSiteDownload do
26
26
  @knife.name_args = ['apache2']
27
27
  @noauth_rest = double('no auth rest')
28
28
  @stderr = StringIO.new
29
- @cookbook_api_url = 'https://supermarket.getchef.com/api/v1/cookbooks'
29
+ @cookbook_api_url = 'https://supermarket.chef.io/api/v1/cookbooks'
30
30
  @version = '1.0.2'
31
31
  @version_us = @version.gsub '.', '_'
32
32
  @current_data = { 'deprecated' => false,
33
33
  'latest_version' => "#{@cookbook_api_url}/apache2/versions/#{@version_us}",
34
34
  'replacement' => 'other_apache2' }
35
35
 
36
- @knife.ui.stub(:stderr).and_return(@stderr)
37
- @knife.stub(:noauth_rest).and_return(@noauth_rest)
38
- @noauth_rest.should_receive(:get_rest).
36
+ allow(@knife.ui).to receive(:stderr).and_return(@stderr)
37
+ allow(@knife).to receive(:noauth_rest).and_return(@noauth_rest)
38
+ expect(@noauth_rest).to receive(:get_rest).
39
39
  with("#{@cookbook_api_url}/apache2").
40
40
  and_return(@current_data)
41
41
  end
@@ -46,9 +46,9 @@ describe Chef::Knife::CookbookSiteDownload do
46
46
  end
47
47
 
48
48
  it 'should warn with info about the replacement' do
49
- @knife.ui.should_receive(:warn).
49
+ expect(@knife.ui).to receive(:warn).
50
50
  with(/.+deprecated.+replaced by other_apache2.+/i)
51
- @knife.ui.should_receive(:warn).
51
+ expect(@knife.ui).to receive(:warn).
52
52
  with(/use --force.+download.+/i)
53
53
  @knife.run
54
54
  end
@@ -61,15 +61,15 @@ describe Chef::Knife::CookbookSiteDownload do
61
61
  @temp_file = double( :path => "/tmp/apache2_#{@version_us}.tgz" )
62
62
  @file = File.join(Dir.pwd, "apache2-#{@version}.tar.gz")
63
63
 
64
- @noauth_rest.should_receive(:sign_on_redirect=).with(false)
64
+ expect(@noauth_rest).to receive(:sign_on_redirect=).with(false)
65
65
  end
66
66
 
67
67
  context 'downloading the latest version' do
68
68
  before do
69
- @noauth_rest.should_receive(:get_rest).
69
+ expect(@noauth_rest).to receive(:get_rest).
70
70
  with(@current_data['latest_version']).
71
71
  and_return(@cookbook_data)
72
- @noauth_rest.should_receive(:get_rest).
72
+ expect(@noauth_rest).to receive(:get_rest).
73
73
  with(@cookbook_data['file'], true).
74
74
  and_return(@temp_file)
75
75
  end
@@ -81,40 +81,40 @@ describe Chef::Knife::CookbookSiteDownload do
81
81
  end
82
82
 
83
83
  it 'should download the latest version' do
84
- @knife.ui.should_receive(:warn).
84
+ expect(@knife.ui).to receive(:warn).
85
85
  with(/.+deprecated.+replaced by other_apache2.+/i)
86
- FileUtils.should_receive(:cp).with(@temp_file.path, @file)
86
+ expect(FileUtils).to receive(:cp).with(@temp_file.path, @file)
87
87
  @knife.run
88
- @stderr.string.should match /downloading apache2.+version.+#{Regexp.escape(@version)}/i
89
- @stderr.string.should match /cookbook save.+#{Regexp.escape(@file)}/i
88
+ expect(@stderr.string).to match /downloading apache2.+version.+#{Regexp.escape(@version)}/i
89
+ expect(@stderr.string).to match /cookbook save.+#{Regexp.escape(@file)}/i
90
90
  end
91
91
 
92
92
  end
93
93
 
94
94
  it 'should download the latest version' do
95
- FileUtils.should_receive(:cp).with(@temp_file.path, @file)
95
+ expect(FileUtils).to receive(:cp).with(@temp_file.path, @file)
96
96
  @knife.run
97
- @stderr.string.should match /downloading apache2.+version.+#{Regexp.escape(@version)}/i
98
- @stderr.string.should match /cookbook save.+#{Regexp.escape(@file)}/i
97
+ expect(@stderr.string).to match /downloading apache2.+version.+#{Regexp.escape(@version)}/i
98
+ expect(@stderr.string).to match /cookbook save.+#{Regexp.escape(@file)}/i
99
99
  end
100
100
 
101
101
  context 'with -f or --file' do
102
102
  before do
103
103
  @file = '/opt/chef/cookbooks/apache2.tar.gz'
104
104
  @knife.config[:file] = @file
105
- FileUtils.should_receive(:cp).with(@temp_file.path, @file)
105
+ expect(FileUtils).to receive(:cp).with(@temp_file.path, @file)
106
106
  end
107
107
 
108
108
  it 'should download the cookbook to the desired file' do
109
109
  @knife.run
110
- @stderr.string.should match /downloading apache2.+version.+#{Regexp.escape(@version)}/i
111
- @stderr.string.should match /cookbook save.+#{Regexp.escape(@file)}/i
110
+ expect(@stderr.string).to match /downloading apache2.+version.+#{Regexp.escape(@version)}/i
111
+ expect(@stderr.string).to match /cookbook save.+#{Regexp.escape(@file)}/i
112
112
  end
113
113
  end
114
114
 
115
115
  it 'should provide an accessor to the version' do
116
- FileUtils.stub(:cp).and_return(true)
117
- @knife.version.should == @version
116
+ allow(FileUtils).to receive(:cp).and_return(true)
117
+ expect(@knife.version).to eq(@version)
118
118
  @knife.run
119
119
  end
120
120
  end
@@ -131,16 +131,16 @@ describe Chef::Knife::CookbookSiteDownload do
131
131
  end
132
132
 
133
133
  it 'should download the desired version' do
134
- @noauth_rest.should_receive(:get_rest).
134
+ expect(@noauth_rest).to receive(:get_rest).
135
135
  with("#{@cookbook_api_url}/apache2/versions/#{@version_us}").
136
136
  and_return(@cookbook_data)
137
- @noauth_rest.should_receive(:get_rest).
137
+ expect(@noauth_rest).to receive(:get_rest).
138
138
  with(@cookbook_data['file'], true).
139
139
  and_return(@temp_file)
140
- FileUtils.should_receive(:cp).with(@temp_file.path, @file)
140
+ expect(FileUtils).to receive(:cp).with(@temp_file.path, @file)
141
141
  @knife.run
142
- @stderr.string.should match /downloading apache2.+version.+#{Regexp.escape(@version)}/i
143
- @stderr.string.should match /cookbook save.+#{Regexp.escape(@file)}/i
142
+ expect(@stderr.string).to match /downloading apache2.+version.+#{Regexp.escape(@version)}/i
143
+ expect(@stderr.string).to match /cookbook save.+#{Regexp.escape(@file)}/i
144
144
  end
145
145
  end
146
146