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
@@ -18,12 +18,6 @@
18
18
  # If you need to add anything in here, don't.
19
19
  # Add it to one of the files in spec/support
20
20
 
21
- # Configure this first so it doesn't trigger annoying warning when we use it.
22
- # Main rspec configuration comes later
23
- RSpec.configure do |config|
24
- config.treat_symbols_as_metadata_keys_with_true_values = true
25
- end
26
-
27
21
  # Abuse ruby's constant lookup to avoid undefined constant errors
28
22
  module Shell
29
23
  JUST_TESTING_MOVE_ALONG = true unless defined? JUST_TESTING_MOVE_ALONG
@@ -89,14 +83,27 @@ Dir["spec/support/**/*.rb"].
89
83
 
90
84
  OHAI_SYSTEM = Ohai::System.new
91
85
  OHAI_SYSTEM.all_plugins("platform")
92
- TEST_PLATFORM = OHAI_SYSTEM["platform"].dup.freeze
93
- TEST_PLATFORM_VERSION = OHAI_SYSTEM["platform_version"].dup.freeze
86
+
87
+ TEST_PLATFORM =
88
+ (OHAI_SYSTEM['platform'] ||
89
+ 'unknown_test_platform').dup.freeze
90
+ TEST_PLATFORM_VERSION =
91
+ (OHAI_SYSTEM['platform_version'] ||
92
+ 'unknown_platform_version').dup.freeze
94
93
 
95
94
  RSpec.configure do |config|
96
95
  config.include(Matchers)
97
96
  config.filter_run :focus => true
98
97
  config.filter_run_excluding :external => true
99
98
 
99
+ # Explicitly disable :should syntax
100
+ config.expect_with :rspec do |c|
101
+ c.syntax = :expect
102
+ end
103
+ config.mock_with :rspec do |c|
104
+ c.syntax = :expect
105
+ end
106
+
100
107
  # Only run these tests on platforms that are also chef workstations
101
108
  config.filter_run_excluding :workstation if solaris? or aix?
102
109
 
@@ -122,19 +129,19 @@ RSpec.configure do |config|
122
129
  config.filter_run_excluding :aix_only => true unless aix?
123
130
  config.filter_run_excluding :supports_cloexec => true unless supports_cloexec?
124
131
  config.filter_run_excluding :selinux_only => true unless selinux_enabled?
125
- config.filter_run_excluding :ruby_18_only => true unless ruby_18?
126
- config.filter_run_excluding :ruby_19_only => true unless ruby_19?
127
- config.filter_run_excluding :ruby_gte_19_only => true unless ruby_gte_19?
128
132
  config.filter_run_excluding :ruby_20_only => true unless ruby_20?
129
- config.filter_run_excluding :ruby_gte_20_only => true unless ruby_gte_20?
133
+ # chef_gte_XX_only and chef_lt_XX_only pair up correctly with the same XX
134
+ # number. please conserve this pattern & resist filling out all the operators
135
+ config.filter_run_excluding :chef_gte_13_only => true unless chef_gte_13?
136
+ config.filter_run_excluding :chef_lt_13_only => true unless chef_lt_13?
130
137
  config.filter_run_excluding :requires_root => true unless root?
131
138
  config.filter_run_excluding :requires_root_or_running_windows => true unless (root? || windows?)
132
139
  config.filter_run_excluding :requires_unprivileged_user => true if root?
133
140
  config.filter_run_excluding :uses_diff => true unless has_diff?
134
- config.filter_run_excluding :ruby_gte_20_and_openssl_gte_101 => true unless (ruby_gte_20? && openssl_gte_101?)
141
+ config.filter_run_excluding :openssl_gte_101 => true unless openssl_gte_101?
135
142
  config.filter_run_excluding :openssl_lt_101 => true unless openssl_lt_101?
136
- config.filter_run_excluding :ruby_lt_20 => true unless ruby_lt_20?
137
143
  config.filter_run_excluding :aes_256_gcm_only => true unless aes_256_gcm?
144
+ config.filter_run_excluding :broken => true
138
145
 
139
146
  running_platform_arch = `uname -m`.strip
140
147
 
@@ -159,10 +166,15 @@ RSpec.configure do |config|
159
166
  }
160
167
 
161
168
  config.run_all_when_everything_filtered = true
162
- config.treat_symbols_as_metadata_keys_with_true_values = true
163
169
 
164
170
  config.before(:each) do
165
171
  Chef::Config.reset
172
+
173
+ # By default, treat deprecation warnings as errors in tests.
174
+ Chef::Config.treat_deprecation_warnings_as_errors(true)
175
+
176
+ # Set environment variable so the setting persists in child processes
177
+ ENV['CHEF_TREAT_DEPRECATION_WARNINGS_AS_ERRORS'] = "1"
166
178
  end
167
179
 
168
180
  config.before(:suite) do
@@ -24,14 +24,14 @@ describe 'Chef::ReservedNames::Win32::File', :windows_only do
24
24
  @path = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "data", "old_home_dir", "my-dot-emacs"))
25
25
  end
26
26
 
27
- it "should not leak significant memory" do
27
+ it "should not leak significant memory", :volatile do
28
28
  test = lambda { Chef::ReservedNames::Win32::File.symlink?(@path) }
29
- test.should_not leak_memory(:warmup => 50000, :iterations => 50000)
29
+ expect(test).not_to leak_memory(:warmup => 50000, :iterations => 50000)
30
30
  end
31
31
 
32
- it "should not leak handles" do
32
+ it "should not leak handles", :volatile do
33
33
  test = lambda { Chef::ReservedNames::Win32::File.symlink?(@path) }
34
- test.should_not leak_handles(:warmup => 50, :iterations => 100)
34
+ expect(test).not_to leak_handles(:warmup => 50, :iterations => 100)
35
35
  end
36
36
 
37
37
  end
@@ -49,21 +49,21 @@ describe 'Chef::ReservedNames::Win32::Security', :windows_only do
49
49
  end
50
50
 
51
51
  it "should not leak when retrieving and reading the ACE from a file", :volatile do
52
- lambda {
52
+ expect {
53
53
  sids = Chef::ReservedNames::Win32::Security::SecurableObject.new(@monkeyfoo).security_descriptor.dacl.select { |ace| ace.sid }
54
54
  GC.start
55
- }.should_not leak_memory(:warmup => 50, :iterations => 100)
55
+ }.not_to leak_memory(:warmup => 50, :iterations => 100)
56
56
  end
57
57
 
58
58
  it "should not leak when creating a new ACL and setting it on a file", :volatile do
59
59
  securable_object = Security::SecurableObject.new(@monkeyfoo)
60
- lambda {
60
+ expect {
61
61
  securable_object.dacl = Chef::ReservedNames::Win32::Security::ACL.create([
62
62
  Chef::ReservedNames::Win32::Security::ACE.access_allowed(Chef::ReservedNames::Win32::Security::SID.Everyone, Chef::ReservedNames::Win32::API::Security::GENERIC_READ),
63
63
  Chef::ReservedNames::Win32::Security::ACE.access_denied(Chef::ReservedNames::Win32::Security::SID.from_account("Users"), Chef::ReservedNames::Win32::API::Security::GENERIC_ALL)
64
64
  ])
65
65
  GC.start
66
- }.should_not leak_memory(:warmup => 50, :iterations => 100)
66
+ }.not_to leak_memory(:warmup => 50, :iterations => 100)
67
67
  end
68
68
 
69
69
  end
@@ -67,15 +67,15 @@ end
67
67
  # win32/service gem. windows_service_manager tests create a windows
68
68
  # service that starts with the system ruby and requires this gem.
69
69
  def system_windows_service_gem?
70
- windows_service_gem_check_command = "ruby -e 'require \"win32/daemon\"' > /dev/null 2>&1"
70
+ windows_service_gem_check_command = %q{ruby -r "win32/daemon" -e ":noop"}
71
71
  if defined?(Bundler)
72
72
  Bundler.with_clean_env do
73
73
  # This returns true if the gem can be loaded
74
- system windows_service_gem_check_command
74
+ system(windows_service_gem_check_command)
75
75
  end
76
76
  else
77
77
  # This returns true if the gem can be loaded
78
- system windows_service_gem_check_command
78
+ system(windows_service_gem_check_command)
79
79
  end
80
80
  end
81
81
 
@@ -26,11 +26,11 @@ module Matchers
26
26
  @variance = opts[:variance] || 5000
27
27
  end
28
28
 
29
- def failure_message_for_should
29
+ def failure_message
30
30
  "expected final measure [#{@final_measure}] to be greater than or within +/- #{@variance} delta of initial measure [#{@initial_measure}]"
31
31
  end
32
32
 
33
- def failure_message_for_should_not
33
+ def failure_message_when_negated
34
34
  "expected final measure [#{@final_measure}] to be less than or within +/- #{@variance} delta of initial measure [#{@initial_measure}]"
35
35
  end
36
36
 
@@ -6,7 +6,7 @@
6
6
  # testing code that mixes in platform specific modules like +Chef::Mixin::Securable+
7
7
  # or +Chef::FileAccessControl+
8
8
  def platform_mock(platform = :unix, &block)
9
- Chef::Platform.stub(:windows?).and_return(platform == :windows ? true : false)
9
+ allow(Chef::Platform).to receive(:windows?).and_return(platform == :windows ? true : false)
10
10
  ENV['SYSTEMDRIVE'] = (platform == :windows ? 'C:' : nil)
11
11
 
12
12
  if platform == :windows
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem 'chef-pedant', :github => 'opscode/chef-pedant', :ref => "server-cli-option"
@@ -26,7 +26,7 @@
26
26
 
27
27
  # If you are doing development testing, you can specify the address of
28
28
  # the Solr server. The presence of this parameter will enable tests
29
- # to force commits to Solr, greatly decreasing the amout of time
29
+ # to force commits to Solr, greatly decreasing the amount of time
30
30
  # needed for testing the search endpoint. This is only an
31
31
  # optimization for development! If you are testing a "live" Chef
32
32
  # Server, or otherwise do not have access to the Solr server from your
@@ -36,7 +36,7 @@
36
36
  #search_server "http://localhost:8983"
37
37
 
38
38
  # Related to the 'search_server' parameter, this specifies the maximum
39
- # amout of time (in seconds) that search endpoint requests should be
39
+ # amount of time (in seconds) that search endpoint requests should be
40
40
  # retried before giving up. If not explicitly set, it will default to
41
41
  # 65 seconds; only set it if you know that your Solr commit interval
42
42
  # differs significantly from this.
@@ -72,6 +72,13 @@ superuser_name 'admin'
72
72
  superuser_key key
73
73
  webui_key key
74
74
 
75
+ # When we updated Chef to RSpec 3 there were gem conflicts with chef-pedant.
76
+ # We removed chef as a chef-pedant gem dependency in pedant.gemfile, but this
77
+ # caused chef-pedant to fail because it could not query for the chef version
78
+ # on the box pedant is running on. X-Chef-Version isn't needed in server
79
+ # requests for these tests, so we've disabled it.
80
+ ingore_x_chef_version true
81
+
75
82
  # Set the platform_class
76
83
  platform_class Pedant::OpenSourcePlatform
77
84
 
@@ -8,6 +8,7 @@ require 'chef/chef_fs/config'
8
8
  require 'tmpdir'
9
9
  require 'fileutils'
10
10
  require 'chef/version'
11
+ require 'chef/mixin/shell_out'
11
12
 
12
13
  def start_server(chef_repo_path)
13
14
  Dir.mkdir(chef_repo_path) if !File.exists?(chef_repo_path)
@@ -37,28 +38,26 @@ begin
37
38
 
38
39
  # Capture setup data into master_chef_repo_path
39
40
  server = start_server(chef_repo_path)
41
+ so = nil
40
42
 
41
- require 'pedant'
42
- require 'pedant/opensource'
43
+ include Chef::Mixin::ShellOut
43
44
 
44
- #Pedant::Config.rerun = true
45
+ Bundler.with_clean_env do
45
46
 
46
- Pedant.config.suite = 'api'
47
- Pedant.config[:config_file] = 'spec/support/pedant/pedant_config.rb'
48
- Pedant.config.chef_server = server.url
49
- Pedant.setup([
50
- '--skip-knife',
51
- '--skip-validation',
52
- '--skip-authentication',
53
- '--skip-authorization',
54
- '--skip-omnibus'
55
- ])
47
+ shell_out("bundle install --gemfile spec/support/pedant/Gemfile", :live_stream => STDOUT)
56
48
 
57
- result = RSpec::Core::Runner.run(Pedant.config.rspec_args)
49
+ pedant_cmd = "chef-pedant " +
50
+ " --config spec/support/pedant/pedant_config.rb" +
51
+ " --server '#{server.url}'" +
52
+ " --skip-knife --skip-validation --skip-authentication" +
53
+ " --skip-authorization --skip-omnibus"
54
+ so = shell_out("bundle exec #{pedant_cmd}", :live_stream => STDOUT, :env => {'BUNDLE_GEMFILE' => 'spec/support/pedant/Gemfile'})
55
+
56
+ end
58
57
 
59
- server.stop if server.running?
60
58
  ensure
59
+ server.stop if server && server.running?
61
60
  FileUtils.remove_entry_secure(tmpdir) if tmpdir
62
61
  end
63
62
 
64
- exit(result)
63
+ exit(so.exitstatus)
@@ -6,28 +6,24 @@ class ShellHelpers
6
6
  extend Chef::Mixin::ShellOut
7
7
  end
8
8
 
9
- def ruby_gte_20?
10
- RUBY_VERSION.to_f >= 2.0
11
- end
12
-
13
9
  def ruby_lt_20?
14
10
  !ruby_gte_20?
15
11
  end
16
12
 
17
- def ruby_gte_19?
18
- RUBY_VERSION.to_f >= 1.9
13
+ def chef_gte_13?
14
+ Chef::VERSION.split('.').first.to_i >= 13
19
15
  end
20
16
 
21
- def ruby_20?
22
- !!(RUBY_VERSION =~ /^2.0/)
17
+ def chef_lt_13?
18
+ Chef::VERSION.split('.').first.to_i < 13
23
19
  end
24
20
 
25
- def ruby_19?
26
- !!(RUBY_VERSION =~ /^1.9/)
21
+ def ruby_gte_19?
22
+ RUBY_VERSION.to_f >= 1.9
27
23
  end
28
24
 
29
- def ruby_18?
30
- !!(RUBY_VERSION =~ /^1.8/)
25
+ def ruby_20?
26
+ !!(RUBY_VERSION =~ /^2.0/)
31
27
  end
32
28
 
33
29
  def windows?
@@ -25,7 +25,7 @@ shared_examples_for "a directory resource" do
25
25
  context "when the target directory does not exist" do
26
26
  before do
27
27
  # assert pre-condition
28
- File.should_not exist(path)
28
+ expect(File).not_to exist(path)
29
29
  end
30
30
 
31
31
  describe "when running action :create" do
@@ -35,17 +35,17 @@ shared_examples_for "a directory resource" do
35
35
  end
36
36
 
37
37
  it "creates the directory when the :create action is run" do
38
- File.should exist(path)
38
+ expect(File).to exist(path)
39
39
  end
40
40
 
41
41
  it "is marked updated by last action" do
42
- resource.should be_updated_by_last_action
42
+ expect(resource).to be_updated_by_last_action
43
43
  end
44
44
  end
45
45
 
46
46
  context "and the recursive option is set" do
47
47
  before do
48
- File.should_not exist(path)
48
+ expect(File).not_to exist(path)
49
49
 
50
50
  resource.recursive(true)
51
51
  @recursive_path = File.join(path, 'red-headed-stepchild')
@@ -54,12 +54,12 @@ shared_examples_for "a directory resource" do
54
54
  end
55
55
 
56
56
  it "recursively creates required directories" do
57
- File.should exist(path)
58
- File.should exist(@recursive_path)
57
+ expect(File).to exist(path)
58
+ expect(File).to exist(@recursive_path)
59
59
  end
60
60
 
61
61
  it "is marked updated by last action" do
62
- resource.should be_updated_by_last_action
62
+ expect(resource).to be_updated_by_last_action
63
63
  end
64
64
  end
65
65
  end
@@ -97,7 +97,7 @@ shared_examples_for "a directory resource" do
97
97
  # so we run the resource twice--otherwise the updated_by_last_action test
98
98
  # will fail.
99
99
  resource.dup.run_action(:create)
100
- File.should exist(path)
100
+ expect(File).to exist(path)
101
101
 
102
102
  resource.run_action(:create)
103
103
  end
@@ -108,11 +108,11 @@ shared_examples_for "a directory resource" do
108
108
  end
109
109
 
110
110
  it "does not re-create the directory" do
111
- File.should exist(path)
111
+ expect(File).to exist(path)
112
112
  end
113
113
 
114
114
  it "is not marked updated by last action" do
115
- resource.should_not be_updated_by_last_action
115
+ expect(resource).not_to be_updated_by_last_action
116
116
  end
117
117
  end
118
118
 
@@ -123,11 +123,11 @@ shared_examples_for "a directory resource" do
123
123
  end
124
124
 
125
125
  it "deletes the directory" do
126
- File.should_not exist(path)
126
+ expect(File).not_to exist(path)
127
127
  end
128
128
 
129
129
  it "is marked as updated by last action" do
130
- resource.should be_updated_by_last_action
130
+ expect(resource).to be_updated_by_last_action
131
131
  end
132
132
  end
133
133
 
@@ -139,7 +139,7 @@ shared_examples_for "a directory resource" do
139
139
  end
140
140
 
141
141
  it "recursively deletes directories" do
142
- File.should_not exist(path)
142
+ expect(File).not_to exist(path)
143
143
  end
144
144
  end
145
145
  end
@@ -48,10 +48,10 @@ end
48
48
  shared_examples_for "a file with the wrong content" do
49
49
  before do
50
50
  # Assert starting state is as expected
51
- File.should exist(path)
51
+ expect(File).to exist(path)
52
52
  # Kinda weird, in this case @expected_checksum is the cksum of the file
53
53
  # with incorrect content.
54
- sha256_checksum(path).should == @expected_checksum
54
+ expect(sha256_checksum(path)).to eq(@expected_checksum)
55
55
  end
56
56
 
57
57
  describe "when diff is disabled" do
@@ -65,20 +65,20 @@ shared_examples_for "a file with the wrong content" do
65
65
  end
66
66
 
67
67
  it "overwrites the file with the updated content when the :create action is run" do
68
- File.stat(path).mtime.should > @expected_mtime
69
- sha256_checksum(path).should_not == @expected_checksum
68
+ expect(File.stat(path).mtime).to be > @expected_mtime
69
+ expect(sha256_checksum(path)).not_to eq(@expected_checksum)
70
70
  end
71
71
 
72
72
  it "backs up the existing file" do
73
- Dir.glob(backup_glob).size.should equal(1)
73
+ expect(Dir.glob(backup_glob).size).to equal(1)
74
74
  end
75
75
 
76
76
  it "is marked as updated by last action" do
77
- resource.should be_updated_by_last_action
77
+ expect(resource).to be_updated_by_last_action
78
78
  end
79
79
 
80
80
  it "should restore the security contexts on selinux", :selinux_only do
81
- selinux_security_context_restored?(path).should be_true
81
+ expect(selinux_security_context_restored?(path)).to be_truthy
82
82
  end
83
83
  end
84
84
 
@@ -89,11 +89,11 @@ shared_examples_for "a file with the wrong content" do
89
89
  end
90
90
 
91
91
  it "should not attempt to backup the existing file if :backup == 0" do
92
- Dir.glob(backup_glob).size.should equal(0)
92
+ expect(Dir.glob(backup_glob).size).to equal(0)
93
93
  end
94
94
 
95
95
  it "should restore the security contexts on selinux", :selinux_only do
96
- selinux_security_context_restored?(path).should be_true
96
+ expect(selinux_security_context_restored?(path)).to be_truthy
97
97
  end
98
98
  end
99
99
 
@@ -114,16 +114,16 @@ shared_examples_for "a file with the wrong content" do
114
114
  end
115
115
 
116
116
  it "doesn't overwrite the file when the :create_if_missing action is run" do
117
- File.stat(path).mtime.should == @expected_mtime
118
- sha256_checksum(path).should == @expected_checksum
117
+ expect(File.stat(path).mtime).to eq(@expected_mtime)
118
+ expect(sha256_checksum(path)).to eq(@expected_checksum)
119
119
  end
120
120
 
121
121
  it "is not marked as updated" do
122
- resource.should_not be_updated_by_last_action
122
+ expect(resource).not_to be_updated_by_last_action
123
123
  end
124
124
 
125
125
  it "should restore the security contexts on selinux", :selinux_only do
126
- selinux_security_context_restored?(path).should be_true
126
+ expect(selinux_security_context_restored?(path)).to be_truthy
127
127
  end
128
128
  end
129
129
 
@@ -133,11 +133,11 @@ shared_examples_for "a file with the wrong content" do
133
133
  end
134
134
 
135
135
  it "deletes the file" do
136
- File.should_not exist(path)
136
+ expect(File).not_to exist(path)
137
137
  end
138
138
 
139
139
  it "is marked as updated by last action" do
140
- resource.should be_updated_by_last_action
140
+ expect(resource).to be_updated_by_last_action
141
141
  end
142
142
  end
143
143
 
@@ -146,14 +146,14 @@ shared_examples_for "a file with the wrong content" do
146
146
  context "when diff is enabled" do
147
147
  describe 'sensitive attribute' do
148
148
  context "should be insensitive by default" do
149
- it { expect(resource.sensitive).to(be_false) }
149
+ it { expect(resource.sensitive).to(be_falsey) }
150
150
  end
151
151
 
152
152
  context "when set" do
153
153
  before { resource.sensitive(true) }
154
154
 
155
155
  it "should be set on the resource" do
156
- expect(resource.sensitive).to(be_true)
156
+ expect(resource.sensitive).to(be_truthy)
157
157
  end
158
158
 
159
159
  context "when running :create action" do
@@ -181,8 +181,8 @@ end
181
181
  shared_examples_for "a file with the correct content" do
182
182
  before do
183
183
  # Assert starting state is as expected
184
- File.should exist(path)
185
- sha256_checksum(path).should == @expected_checksum
184
+ expect(File).to exist(path)
185
+ expect(sha256_checksum(path)).to eq(@expected_checksum)
186
186
  end
187
187
 
188
188
  include_context "diff disabled"
@@ -192,19 +192,19 @@ shared_examples_for "a file with the correct content" do
192
192
  resource.run_action(:create)
193
193
  end
194
194
  it "does not overwrite the original when the :create action is run" do
195
- sha256_checksum(path).should == @expected_checksum
195
+ expect(sha256_checksum(path)).to eq(@expected_checksum)
196
196
  end
197
197
 
198
198
  it "does not update the mtime of the file when the :create action is run" do
199
- File.stat(path).mtime.should == @expected_mtime
199
+ expect(File.stat(path).mtime).to eq(@expected_mtime)
200
200
  end
201
201
 
202
202
  it "is not marked as updated by last action" do
203
- resource.should_not be_updated_by_last_action
203
+ expect(resource).not_to be_updated_by_last_action
204
204
  end
205
205
 
206
206
  it "should restore the security contexts on selinux", :selinux_only do
207
- selinux_security_context_restored?(path).should be_true
207
+ expect(selinux_security_context_restored?(path)).to be_truthy
208
208
  end
209
209
  end
210
210
 
@@ -214,15 +214,15 @@ shared_examples_for "a file with the correct content" do
214
214
  end
215
215
 
216
216
  it "doesn't overwrite the file when the :create_if_missing action is run" do
217
- sha256_checksum(path).should == @expected_checksum
217
+ expect(sha256_checksum(path)).to eq(@expected_checksum)
218
218
  end
219
219
 
220
220
  it "is not marked as updated by last action" do
221
- resource.should_not be_updated_by_last_action
221
+ expect(resource).not_to be_updated_by_last_action
222
222
  end
223
223
 
224
224
  it "should restore the security contexts on selinux", :selinux_only do
225
- selinux_security_context_restored?(path).should be_true
225
+ expect(selinux_security_context_restored?(path)).to be_truthy
226
226
  end
227
227
  end
228
228
 
@@ -232,11 +232,11 @@ shared_examples_for "a file with the correct content" do
232
232
  end
233
233
 
234
234
  it "deletes the file when the :delete action is run" do
235
- File.should_not exist(path)
235
+ expect(File).not_to exist(path)
236
236
  end
237
237
 
238
238
  it "is marked as updated by last action" do
239
- resource.should be_updated_by_last_action
239
+ expect(resource).to be_updated_by_last_action
240
240
  end
241
241
  end
242
242
  end
@@ -300,7 +300,7 @@ shared_examples_for "a file resource" do
300
300
 
301
301
  it "successfully doesn't create the file" do
302
302
  resource.run_action(:create) # should not raise
303
- File.should_not exist(path)
303
+ expect(File).not_to exist(path)
304
304
  end
305
305
  end
306
306
 
@@ -308,14 +308,14 @@ shared_examples_for "a file resource" do
308
308
 
309
309
  describe "when setting atomic_update" do
310
310
  it "booleans should work" do
311
- lambda {resource.atomic_update(true)}.should_not raise_error
312
- lambda {resource.atomic_update(false)}.should_not raise_error
311
+ expect {resource.atomic_update(true)}.not_to raise_error
312
+ expect {resource.atomic_update(false)}.not_to raise_error
313
313
  end
314
314
 
315
315
  it "anything else should raise an error" do
316
- lambda {resource.atomic_update(:copy)}.should raise_error(ArgumentError)
317
- lambda {resource.atomic_update(:move)}.should raise_error(ArgumentError)
318
- lambda {resource.atomic_update(958)}.should raise_error(ArgumentError)
316
+ expect {resource.atomic_update(:copy)}.to raise_error(ArgumentError)
317
+ expect {resource.atomic_update(:move)}.to raise_error(ArgumentError)
318
+ expect {resource.atomic_update(958)}.to raise_error(ArgumentError)
319
319
  end
320
320
  end
321
321
 
@@ -340,24 +340,24 @@ shared_examples_for "file resource not pointing to a real file" do
340
340
 
341
341
  describe "when force_unlink is set to true" do
342
342
  it ":create unlinks the target" do
343
- real_file?(path).should be_false
343
+ expect(real_file?(path)).to be_falsey
344
344
  resource.force_unlink(true)
345
345
  resource.run_action(:create)
346
- real_file?(path).should be_true
347
- binread(path).should == expected_content
348
- resource.should be_updated_by_last_action
346
+ expect(real_file?(path)).to be_truthy
347
+ expect(binread(path)).to eq(expected_content)
348
+ expect(resource).to be_updated_by_last_action
349
349
  end
350
350
  end
351
351
 
352
352
  describe "when force_unlink is set to false" do
353
353
  it ":create raises an error" do
354
- lambda {resource.run_action(:create) }.should raise_error(Chef::Exceptions::FileTypeMismatch)
354
+ expect {resource.run_action(:create) }.to raise_error(Chef::Exceptions::FileTypeMismatch)
355
355
  end
356
356
  end
357
357
 
358
358
  describe "when force_unlink is not set (default)" do
359
359
  it ":create raises an error" do
360
- lambda {resource.run_action(:create) }.should raise_error(Chef::Exceptions::FileTypeMismatch)
360
+ expect {resource.run_action(:create) }.to raise_error(Chef::Exceptions::FileTypeMismatch)
361
361
  end
362
362
  end
363
363
  end
@@ -441,7 +441,7 @@ shared_examples_for "a configured file resource" do
441
441
 
442
442
  after(:each) do
443
443
  # symlink should never be followed
444
- binread(symlink_target).should == "This is so wrong!!!"
444
+ expect(binread(symlink_target)).to eq("This is so wrong!!!")
445
445
  end
446
446
 
447
447
  it_behaves_like "file resource not pointing to a real file"
@@ -477,7 +477,7 @@ shared_examples_for "a configured file resource" do
477
477
  end
478
478
 
479
479
  it "raises an InvalidSymlink error" do
480
- lambda { resource.run_action(:create) }.should raise_error(Chef::Exceptions::InvalidSymlink)
480
+ expect { resource.run_action(:create) }.to raise_error(Chef::Exceptions::InvalidSymlink)
481
481
  end
482
482
 
483
483
  it "issues a warning/assumption in whyrun mode" do
@@ -505,7 +505,7 @@ shared_examples_for "a configured file resource" do
505
505
  FileUtils.rm_rf(link_path)
506
506
  end
507
507
  it "raises an InvalidSymlink error" do
508
- lambda { resource.run_action(:create) }.should raise_error(Chef::Exceptions::InvalidSymlink)
508
+ expect { resource.run_action(:create) }.to raise_error(Chef::Exceptions::InvalidSymlink)
509
509
  end
510
510
 
511
511
  it "issues a warning/assumption in whyrun mode" do
@@ -536,7 +536,7 @@ shared_examples_for "a configured file resource" do
536
536
  end
537
537
 
538
538
  it "raises an InvalidSymlink error" do
539
- lambda { resource.run_action(:create) }.should raise_error(Chef::Exceptions::FileTypeMismatch)
539
+ expect { resource.run_action(:create) }.to raise_error(Chef::Exceptions::FileTypeMismatch)
540
540
  end
541
541
 
542
542
  it "issues a warning/assumption in whyrun mode" do
@@ -564,7 +564,7 @@ shared_examples_for "a configured file resource" do
564
564
  after(:each) do
565
565
  # shared examples should not change our test setup of a file resource
566
566
  # pointing at a symlink:
567
- resource.path.should == link_path
567
+ expect(resource.path).to eq(link_path)
568
568
  FileUtils.rm_rf(link_path)
569
569
  end
570
570
 
@@ -581,7 +581,7 @@ shared_examples_for "a configured file resource" do
581
581
 
582
582
  it "does not replace the symlink with a real file" do
583
583
  resource.run_action(:create)
584
- File.should be_symlink(link_path)
584
+ expect(File).to be_symlink(link_path)
585
585
  end
586
586
 
587
587
  end
@@ -593,17 +593,17 @@ shared_examples_for "a configured file resource" do
593
593
  end
594
594
 
595
595
  it "updates the source file content" do
596
- pending
596
+ skip
597
597
  end
598
598
 
599
599
  it "marks the resource as updated" do
600
600
  resource.run_action(:create)
601
- resource.should be_updated_by_last_action
601
+ expect(resource).to be_updated_by_last_action
602
602
  end
603
603
 
604
604
  it "does not replace the symlink with a real file" do
605
605
  resource.run_action(:create)
606
- File.should be_symlink(link_path)
606
+ expect(File).to be_symlink(link_path)
607
607
  end
608
608
  end
609
609
 
@@ -646,15 +646,15 @@ shared_examples_for "a configured file resource" do
646
646
  after(:each) do
647
647
  # shared examples should not change our test setup of a file resource
648
648
  # pointing at a symlink:
649
- resource.path.should == link_to_link_path
649
+ expect(resource.path).to eq(link_to_link_path)
650
650
  FileUtils.rm_rf(link_to_file_path)
651
651
  FileUtils.rm_rf(link_to_link_path)
652
652
  end
653
653
 
654
654
  it "does not replace the symlink with a real file" do
655
655
  resource.run_action(:create)
656
- File.should be_symlink(link_to_link_path)
657
- File.should be_symlink(link_to_file_path)
656
+ expect(File).to be_symlink(link_to_link_path)
657
+ expect(File).to be_symlink(link_to_file_path)
658
658
  end
659
659
 
660
660
  end
@@ -686,9 +686,9 @@ shared_examples_for "a configured file resource" do
686
686
  it ":create updates the target" do
687
687
  resource.force_unlink(true)
688
688
  resource.run_action(:create)
689
- real_file?(path).should be_true
690
- binread(path).should == expected_content
691
- resource.should be_updated_by_last_action
689
+ expect(real_file?(path)).to be_truthy
690
+ expect(binread(path)).to eq(expected_content)
691
+ expect(resource).to be_updated_by_last_action
692
692
  end
693
693
  end
694
694
 
@@ -696,9 +696,9 @@ shared_examples_for "a configured file resource" do
696
696
  it ":create updates the target" do
697
697
  resource.force_unlink(true)
698
698
  resource.run_action(:create)
699
- real_file?(path).should be_true
700
- binread(path).should == expected_content
701
- resource.should be_updated_by_last_action
699
+ expect(real_file?(path)).to be_truthy
700
+ expect(binread(path)).to eq(expected_content)
701
+ expect(resource).to be_updated_by_last_action
702
702
  end
703
703
  end
704
704
 
@@ -706,9 +706,9 @@ shared_examples_for "a configured file resource" do
706
706
  it ":create updates the target" do
707
707
  resource.force_unlink(true)
708
708
  resource.run_action(:create)
709
- real_file?(path).should be_true
710
- binread(path).should == expected_content
711
- resource.should be_updated_by_last_action
709
+ expect(real_file?(path)).to be_truthy
710
+ expect(binread(path)).to eq(expected_content)
711
+ expect(resource).to be_updated_by_last_action
712
712
  end
713
713
  end
714
714
  end
@@ -800,7 +800,7 @@ shared_examples_for "a configured file resource" do
800
800
  end
801
801
 
802
802
  before(:each) do
803
- path.bytesize.should <= 104
803
+ expect(path.bytesize).to be <= 104
804
804
  UNIXServer.new(path)
805
805
  end
806
806
 
@@ -813,7 +813,7 @@ shared_examples_for "a configured file resource" do
813
813
 
814
814
  # Regression test for http://tickets.opscode.com/browse/CHEF-4082
815
815
  context "when notification is configured" do
816
- describe "when path is specified with normal seperator" do
816
+ describe "when path is specified with normal separator" do
817
817
  before do
818
818
  @notified_resource = Chef::Resource.new("punk", resource.run_context)
819
819
  resource.notifies(:run, @notified_resource, :immediately)
@@ -821,12 +821,12 @@ shared_examples_for "a configured file resource" do
821
821
  end
822
822
 
823
823
  it "should notify the other resources correctly" do
824
- resource.should be_updated_by_last_action
825
- resource.run_context.immediate_notifications(resource).length.should == 1
824
+ expect(resource).to be_updated_by_last_action
825
+ expect(resource.run_context.immediate_notifications(resource).length).to eq(1)
826
826
  end
827
827
  end
828
828
 
829
- describe "when path is specified with windows seperator", :windows_only do
829
+ describe "when path is specified with windows separator", :windows_only do
830
830
  let(:path) {
831
831
  File.join(test_file_dir, make_tmpname(file_base)).gsub(::File::SEPARATOR, ::File::ALT_SEPARATOR)
832
832
  }
@@ -838,8 +838,8 @@ shared_examples_for "a configured file resource" do
838
838
  end
839
839
 
840
840
  it "should notify the other resources correctly" do
841
- resource.should be_updated_by_last_action
842
- resource.run_context.immediate_notifications(resource).length.should == 1
841
+ expect(resource).to be_updated_by_last_action
842
+ expect(resource.run_context.immediate_notifications(resource).length).to eq(1)
843
843
  end
844
844
  end
845
845
  end
@@ -847,7 +847,7 @@ shared_examples_for "a configured file resource" do
847
847
  context "when the target file does not exist" do
848
848
  before do
849
849
  # Assert starting state is expected
850
- File.should_not exist(path)
850
+ expect(File).not_to exist(path)
851
851
  end
852
852
 
853
853
  describe "when running action :create" do
@@ -856,19 +856,19 @@ shared_examples_for "a configured file resource" do
856
856
  end
857
857
 
858
858
  it "creates the file when the :create action is run" do
859
- File.should exist(path)
859
+ expect(File).to exist(path)
860
860
  end
861
861
 
862
862
  it "creates the file with the correct content when the :create action is run" do
863
- binread(path).should == expected_content
863
+ expect(binread(path)).to eq(expected_content)
864
864
  end
865
865
 
866
866
  it "is marked as updated by last action" do
867
- resource.should be_updated_by_last_action
867
+ expect(resource).to be_updated_by_last_action
868
868
  end
869
869
 
870
870
  it "should restore the security contexts on selinux", :selinux_only do
871
- selinux_security_context_restored?(path).should be_true
871
+ expect(selinux_security_context_restored?(path)).to be_truthy
872
872
  end
873
873
  end
874
874
 
@@ -878,15 +878,15 @@ shared_examples_for "a configured file resource" do
878
878
  end
879
879
 
880
880
  it "creates the file with the correct content" do
881
- binread(path).should == expected_content
881
+ expect(binread(path)).to eq(expected_content)
882
882
  end
883
883
 
884
884
  it "is marked as updated by last action" do
885
- resource.should be_updated_by_last_action
885
+ expect(resource).to be_updated_by_last_action
886
886
  end
887
887
 
888
888
  it "should restore the security contexts on selinux", :selinux_only do
889
- selinux_security_context_restored?(path).should be_true
889
+ expect(selinux_security_context_restored?(path)).to be_truthy
890
890
  end
891
891
  end
892
892
 
@@ -896,11 +896,11 @@ shared_examples_for "a configured file resource" do
896
896
  end
897
897
 
898
898
  it "deletes the file when the :delete action is run" do
899
- File.should_not exist(path)
899
+ expect(File).not_to exist(path)
900
900
  end
901
901
 
902
902
  it "is not marked updated by last action" do
903
- resource.should_not be_updated_by_last_action
903
+ expect(resource).not_to be_updated_by_last_action
904
904
  end
905
905
  end
906
906
  end
@@ -1001,21 +1001,21 @@ shared_examples_for "a configured file resource" do
1001
1001
  describe ":create action should run without any updates" do
1002
1002
  before do
1003
1003
  # Assert starting state is as expected
1004
- File.should exist(path)
1005
- sha256_checksum(path).should == @expected_checksum
1004
+ expect(File).to exist(path)
1005
+ expect(sha256_checksum(path)).to eq(@expected_checksum)
1006
1006
  resource.run_action(:create)
1007
1007
  end
1008
1008
 
1009
1009
  it "does not overwrite the original when the :create action is run" do
1010
- sha256_checksum(path).should == @expected_checksum
1010
+ expect(sha256_checksum(path)).to eq(@expected_checksum)
1011
1011
  end
1012
1012
 
1013
1013
  it "does not update the mtime of the file when the :create action is run" do
1014
- File.stat(path).mtime.should == @expected_mtime
1014
+ expect(File.stat(path).mtime).to eq(@expected_mtime)
1015
1015
  end
1016
1016
 
1017
1017
  it "is not marked as updated by last action" do
1018
- resource.should_not be_updated_by_last_action
1018
+ expect(resource).not_to be_updated_by_last_action
1019
1019
  end
1020
1020
  end
1021
1021
  end