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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -66,6 +66,20 @@ describe Chef::Resource::File do
66
66
  expect { @resource.action :blues }.to raise_error(ArgumentError)
67
67
  end
68
68
 
69
+ it "should accept a block, symbol, or string for verify" do
70
+ expect {@resource.verify {}}.not_to raise_error
71
+ expect {@resource.verify ""}.not_to raise_error
72
+ expect {@resource.verify :json}.not_to raise_error
73
+ expect {@resource.verify true}.to raise_error
74
+ expect {@resource.verify false}.to raise_error
75
+ end
76
+
77
+ it "should accept multiple verify statements" do
78
+ @resource.verify "foo"
79
+ @resource.verify "bar"
80
+ @resource.verify.length == 2
81
+ end
82
+
69
83
  it "should use the object name as the path by default" do
70
84
  expect(@resource.path).to eql("fakey_fakerton")
71
85
  end
@@ -0,0 +1,49 @@
1
+ #
2
+ # Authors:: AJ Christensen (<aj@opscode.com>)
3
+ # Richard Manyanza (<liseki@nyikacraftsmen.com>)
4
+ # Scott Bonds (<scott@ggr.com>)
5
+ # Copyright:: Copyright (c) 2008 Opscode, Inc.
6
+ # Copyright:: Copyright (c) 2014 Richard Manyanza, Scott Bonds
7
+ # License:: Apache License, Version 2.0
8
+ #
9
+ # Licensed under the Apache License, Version 2.0 (the "License");
10
+ # you may not use this file except in compliance with the License.
11
+ # You may obtain a copy of the License at
12
+ #
13
+ # http://www.apache.org/licenses/LICENSE-2.0
14
+ #
15
+ # Unless required by applicable law or agreed to in writing, software
16
+ # distributed under the License is distributed on an "AS IS" BASIS,
17
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+
22
+ require 'spec_helper'
23
+ require 'ostruct'
24
+
25
+ describe Chef::Resource::OpenbsdPackage do
26
+
27
+ before(:each) do
28
+ @node = Chef::Node.new
29
+ @events = Chef::EventDispatch::Dispatcher.new
30
+ @run_context = Chef::RunContext.new(@node, {}, @events)
31
+ @resource = Chef::Resource::OpenbsdPackage.new("foo", @run_context)
32
+ end
33
+
34
+ describe "Initialization" do
35
+ it "should return a Chef::Resource::OpenbsdPackage" do
36
+ expect(@resource).to be_a_kind_of(Chef::Resource::OpenbsdPackage)
37
+ end
38
+
39
+ it "should set the resource_name to :openbsd_package" do
40
+ expect(@resource.resource_name).to eql(:openbsd_package)
41
+ end
42
+
43
+ it "should not set the provider" do
44
+ expect(@resource.provider).to be_nil
45
+ end
46
+ end
47
+
48
+ end
49
+
@@ -113,40 +113,40 @@ describe Chef::Resource::RemoteFile do
113
113
  describe "ftp_active_mode" do
114
114
  it "should accept a boolean for the ftp_active_mode object" do
115
115
  @resource.ftp_active_mode true
116
- expect(@resource.ftp_active_mode).to be_true
116
+ expect(@resource.ftp_active_mode).to be_truthy
117
117
  end
118
118
 
119
119
  it "should default to false" do
120
- expect(@resource.ftp_active_mode).to be_false
120
+ expect(@resource.ftp_active_mode).to be_falsey
121
121
  end
122
122
  end
123
123
 
124
124
  describe "conditional get options" do
125
125
  it "defaults to using etags and last modified" do
126
- expect(@resource.use_etags).to be_true
127
- expect(@resource.use_last_modified).to be_true
126
+ expect(@resource.use_etags).to be_truthy
127
+ expect(@resource.use_last_modified).to be_truthy
128
128
  end
129
129
 
130
130
  it "enable or disables etag and last modified options as a group" do
131
131
  @resource.use_conditional_get(false)
132
- expect(@resource.use_etags).to be_false
133
- expect(@resource.use_last_modified).to be_false
132
+ expect(@resource.use_etags).to be_falsey
133
+ expect(@resource.use_last_modified).to be_falsey
134
134
 
135
135
  @resource.use_conditional_get(true)
136
- expect(@resource.use_etags).to be_true
137
- expect(@resource.use_last_modified).to be_true
136
+ expect(@resource.use_etags).to be_truthy
137
+ expect(@resource.use_last_modified).to be_truthy
138
138
  end
139
139
 
140
140
  it "disables etags indivdually" do
141
141
  @resource.use_etags(false)
142
- expect(@resource.use_etags).to be_false
143
- expect(@resource.use_last_modified).to be_true
142
+ expect(@resource.use_etags).to be_falsey
143
+ expect(@resource.use_last_modified).to be_truthy
144
144
  end
145
145
 
146
146
  it "disables last modified individually" do
147
147
  @resource.use_last_modified(false)
148
- expect(@resource.use_last_modified).to be_false
149
- expect(@resource.use_etags).to be_true
148
+ expect(@resource.use_last_modified).to be_falsey
149
+ expect(@resource.use_etags).to be_truthy
150
150
  end
151
151
 
152
152
  end
@@ -24,34 +24,34 @@ describe Chef::Resource::Notification do
24
24
  end
25
25
 
26
26
  it "has a resource to be notified" do
27
- @notification.resource.should == :service_apache
27
+ expect(@notification.resource).to eq(:service_apache)
28
28
  end
29
29
 
30
30
  it "has an action to take on the service" do
31
- @notification.action.should == :restart
31
+ expect(@notification.action).to eq(:restart)
32
32
  end
33
33
 
34
34
  it "has a notifying resource" do
35
- @notification.notifying_resource.should == :template_httpd_conf
35
+ expect(@notification.notifying_resource).to eq(:template_httpd_conf)
36
36
  end
37
37
 
38
38
  it "is a duplicate of another notification with the same target resource and action" do
39
39
  other = Chef::Resource::Notification.new(:service_apache, :restart, :sync_web_app_code)
40
- @notification.duplicates?(other).should be_true
40
+ expect(@notification.duplicates?(other)).to be_truthy
41
41
  end
42
42
 
43
43
  it "is not a duplicate of another notification if the actions differ" do
44
44
  other = Chef::Resource::Notification.new(:service_apache, :enable, :install_apache)
45
- @notification.duplicates?(other).should be_false
45
+ expect(@notification.duplicates?(other)).to be_falsey
46
46
  end
47
47
 
48
48
  it "is not a duplicate of another notification if the target resources differ" do
49
49
  other = Chef::Resource::Notification.new(:service_sshd, :restart, :template_httpd_conf)
50
- @notification.duplicates?(other).should be_false
50
+ expect(@notification.duplicates?(other)).to be_falsey
51
51
  end
52
52
 
53
53
  it "raises an ArgumentError if you try to check a non-ducktype object for duplication" do
54
- lambda {@notification.duplicates?(:not_a_notification)}.should raise_error(ArgumentError)
54
+ expect {@notification.duplicates?(:not_a_notification)}.to raise_error(ArgumentError)
55
55
  end
56
56
 
57
57
  it "takes no action to resolve a resource reference that doesn't need to be resolved" do
@@ -62,7 +62,7 @@ describe Chef::Resource::Notification do
62
62
  @resource_collection = Chef::ResourceCollection.new
63
63
  # would raise an error since the resource is not in the collection
64
64
  @notification.resolve_resource_reference(@resource_collection)
65
- @notification.resource.should == @keyboard_cat
65
+ expect(@notification.resource).to eq(@keyboard_cat)
66
66
  end
67
67
 
68
68
  it "resolves a lazy reference to a resource" do
@@ -73,7 +73,7 @@ describe Chef::Resource::Notification do
73
73
  @long_cat = Chef::Resource::Cat.new("long_cat")
74
74
  @notification.notifying_resource = @long_cat
75
75
  @notification.resolve_resource_reference(@resource_collection)
76
- @notification.resource.should == @keyboard_cat
76
+ expect(@notification.resource).to eq(@keyboard_cat)
77
77
  end
78
78
 
79
79
  it "resolves a lazy reference to its notifying resource" do
@@ -84,7 +84,7 @@ describe Chef::Resource::Notification do
84
84
  @resource_collection = Chef::ResourceCollection.new
85
85
  @resource_collection << @long_cat
86
86
  @notification.resolve_resource_reference(@resource_collection)
87
- @notification.notifying_resource.should == @long_cat
87
+ expect(@notification.notifying_resource).to eq(@long_cat)
88
88
  end
89
89
 
90
90
  it "resolves lazy references to both its resource and its notifying resource" do
@@ -96,8 +96,8 @@ describe Chef::Resource::Notification do
96
96
  @long_cat = Chef::Resource::Cat.new("long_cat")
97
97
  @resource_collection << @long_cat
98
98
  @notification.resolve_resource_reference(@resource_collection)
99
- @notification.resource.should == @keyboard_cat
100
- @notification.notifying_resource.should == @long_cat
99
+ expect(@notification.resource).to eq(@keyboard_cat)
100
+ expect(@notification.notifying_resource).to eq(@long_cat)
101
101
  end
102
102
 
103
103
  it "raises a RuntimeError if you try to reference multiple resources" do
@@ -109,7 +109,7 @@ describe Chef::Resource::Notification do
109
109
  @resource_collection << @cheez_cat
110
110
  @long_cat = Chef::Resource::Cat.new("long_cat")
111
111
  @notification.notifying_resource = @long_cat
112
- lambda {@notification.resolve_resource_reference(@resource_collection)}.should raise_error(RuntimeError)
112
+ expect {@notification.resolve_resource_reference(@resource_collection)}.to raise_error(RuntimeError)
113
113
  end
114
114
 
115
115
  it "raises a RuntimeError if you try to reference multiple notifying resources" do
@@ -121,7 +121,7 @@ describe Chef::Resource::Notification do
121
121
  @resource_collection << @cheez_cat
122
122
  @keyboard_cat = Chef::Resource::Cat.new("keyboard_cat")
123
123
  @notification.resource = @keyboard_cat
124
- lambda {@notification.resolve_resource_reference(@resource_collection)}.should raise_error(RuntimeError)
124
+ expect {@notification.resolve_resource_reference(@resource_collection)}.to raise_error(RuntimeError)
125
125
  end
126
126
 
127
127
  it "raises a RuntimeError if it can't find a resource in the resource collection when resolving a lazy reference" do
@@ -131,7 +131,7 @@ describe Chef::Resource::Notification do
131
131
  @resource_collection << @cheez_cat
132
132
  @long_cat = Chef::Resource::Cat.new("long_cat")
133
133
  @notification.notifying_resource = @long_cat
134
- lambda {@notification.resolve_resource_reference(@resource_collection)}.should raise_error(RuntimeError)
134
+ expect {@notification.resolve_resource_reference(@resource_collection)}.to raise_error(RuntimeError)
135
135
  end
136
136
 
137
137
  it "raises a RuntimeError if it can't find a notifying resource in the resource collection when resolving a lazy reference" do
@@ -141,7 +141,7 @@ describe Chef::Resource::Notification do
141
141
  @resource_collection << @cheez_cat
142
142
  @keyboard_cat = Chef::Resource::Cat.new("keyboard_cat")
143
143
  @notification.resource = @keyboard_cat
144
- lambda {@notification.resolve_resource_reference(@resource_collection)}.should raise_error(RuntimeError)
144
+ expect {@notification.resolve_resource_reference(@resource_collection)}.to raise_error(RuntimeError)
145
145
  end
146
146
 
147
147
  it "raises an ArgumentError if improper syntax is used in the lazy reference to its resource" do
@@ -151,7 +151,7 @@ describe Chef::Resource::Notification do
151
151
  @resource_collection << @keyboard_cat
152
152
  @long_cat = Chef::Resource::Cat.new("long_cat")
153
153
  @notification.notifying_resource = @long_cat
154
- lambda {@notification.resolve_resource_reference(@resource_collection)}.should raise_error(ArgumentError)
154
+ expect {@notification.resolve_resource_reference(@resource_collection)}.to raise_error(ArgumentError)
155
155
  end
156
156
 
157
157
  it "raises an ArgumentError if improper syntax is used in the lazy reference to its notifying resource" do
@@ -161,7 +161,7 @@ describe Chef::Resource::Notification do
161
161
  @resource_collection << @long_cat
162
162
  @keyboard_cat = Chef::Resource::Cat.new("keyboard_cat")
163
163
  @notification.resource = @keyboard_cat
164
- lambda {@notification.resolve_resource_reference(@resource_collection)}.should raise_error(ArgumentError)
164
+ expect {@notification.resolve_resource_reference(@resource_collection)}.to raise_error(ArgumentError)
165
165
  end
166
166
 
167
167
  # Create test to resolve lazy references to both notifying resource and dest. resource
@@ -32,3 +32,15 @@ describe Chef::Resource::RpmPackage, "initialize" do
32
32
  end
33
33
 
34
34
  end
35
+
36
+ describe Chef::Resource::RpmPackage, "allow_downgrade" do
37
+ before(:each) do
38
+ @resource = Chef::Resource::RpmPackage.new("foo")
39
+ end
40
+
41
+ it "should allow you to specify whether allow_downgrade is true or false" do
42
+ expect { @resource.allow_downgrade true }.not_to raise_error
43
+ expect { @resource.allow_downgrade false }.not_to raise_error
44
+ expect { @resource.allow_downgrade "monkey" }.to raise_error(ArgumentError)
45
+ end
46
+ end
@@ -110,22 +110,22 @@ describe Chef::Resource::Scm do
110
110
 
111
111
  it "takes a boolean for #enable_submodules" do
112
112
  @resource.enable_submodules true
113
- expect(@resource.enable_submodules).to be_true
113
+ expect(@resource.enable_submodules).to be_truthy
114
114
  expect {@resource.enable_submodules "lolz"}.to raise_error(ArgumentError)
115
115
  end
116
116
 
117
117
  it "defaults to not enabling submodules" do
118
- expect(@resource.enable_submodules).to be_false
118
+ expect(@resource.enable_submodules).to be_falsey
119
119
  end
120
120
 
121
121
  it "takes a boolean for #enable_checkout" do
122
122
  @resource.enable_checkout true
123
- expect(@resource.enable_checkout).to be_true
123
+ expect(@resource.enable_checkout).to be_truthy
124
124
  expect {@resource.enable_checkout "lolz"}.to raise_error(ArgumentError)
125
125
  end
126
126
 
127
127
  it "defaults to enabling checkout" do
128
- expect(@resource.enable_checkout).to be_true
128
+ expect(@resource.enable_checkout).to be_truthy
129
129
  end
130
130
 
131
131
  it "takes a string for the remote" do
@@ -29,18 +29,16 @@ describe Chef::Resource::Script do
29
29
  expect(script_resource.interpreter).to eql("naaaaNaNaNaaNaaNaaNaa")
30
30
  end
31
31
 
32
- describe "when it has interpreter and flags" do
32
+ context "when it has interpreter and flags" do
33
33
  before do
34
- script_resource.command("grep")
35
34
  script_resource.interpreter("gcc")
36
35
  script_resource.flags("-al")
37
36
  end
38
37
 
39
- it "returns the command as its identity" do
40
- expect(script_resource.identity).to eq("grep")
38
+ it "returns the name as its identity" do
39
+ expect(script_resource.identity).to eq(resource_instance_name)
41
40
  end
42
41
  end
43
42
 
44
43
  it_behaves_like "a script resource"
45
44
  end
46
-
@@ -62,6 +62,6 @@ describe Chef::Resource::Subversion do
62
62
  it "hides password from custom exception message" do
63
63
  @svn.svn_password "l33th4x0rpa$$w0rd"
64
64
  e = @svn.customize_exception(Chef::Exceptions::Exec.new "Exception with password #{@svn.svn_password}")
65
- expect(e.message.include?(@svn.svn_password)).to be_false
65
+ expect(e.message.include?(@svn.svn_password)).to be_falsey
66
66
  end
67
67
  end
@@ -0,0 +1 @@
1
+ # see spec/unit/recipe_spec.rb
@@ -60,7 +60,7 @@ describe Chef::ResourceCollection::ResourceList do
60
60
  end
61
61
 
62
62
  it "should be empty by default" do
63
- expect(resource_list.empty?).to be_true
63
+ expect(resource_list.empty?).to be_truthy
64
64
  end
65
65
 
66
66
  describe "when resources are inserted" do
@@ -100,7 +100,7 @@ describe Chef::ResourceCollection::ResourceList do
100
100
  end
101
101
 
102
102
  it "should be able to check if the list is empty" do
103
- expect(resource_list.empty?).to be_false
103
+ expect(resource_list.empty?).to be_falsey
104
104
  end
105
105
  end
106
106
  end
@@ -166,15 +166,15 @@ describe Chef::ResourceCollection::ResourceSet do
166
166
 
167
167
  describe "validate_lookup_spec!" do
168
168
  it "accepts a string of the form 'resource_type[resource_name]'" do
169
- expect(collection.validate_lookup_spec!("resource_type[resource_name]")).to be_true
169
+ expect(collection.validate_lookup_spec!("resource_type[resource_name]")).to be_truthy
170
170
  end
171
171
 
172
172
  it "accepts a single-element :resource_type => 'resource_name' Hash" do
173
- expect(collection.validate_lookup_spec!(:service => "apache2")).to be_true
173
+ expect(collection.validate_lookup_spec!(:service => "apache2")).to be_truthy
174
174
  end
175
175
 
176
176
  it "accepts a chef resource object" do
177
- expect(collection.validate_lookup_spec!(zen_master)).to be_true
177
+ expect(collection.validate_lookup_spec!(zen_master)).to be_truthy
178
178
  end
179
179
 
180
180
  it "rejects a malformed query string" do
@@ -21,7 +21,7 @@ describe Chef::ResourceCollection::StepableIterator do
21
21
  CRSI = Chef::ResourceCollection::StepableIterator
22
22
 
23
23
  it "has an empty array for its collection by default" do
24
- CRSI.new.collection.should == []
24
+ expect(CRSI.new.collection).to eq([])
25
25
  end
26
26
 
27
27
  describe "doing basic iteration" do
@@ -31,8 +31,8 @@ describe Chef::ResourceCollection::StepableIterator do
31
31
  end
32
32
 
33
33
  it "re-initializes the instance with a collection" do
34
- @iterator.collection.should equal(@simple_collection)
35
- @iterator.size.should == 4
34
+ expect(@iterator.collection).to equal(@simple_collection)
35
+ expect(@iterator.size).to eq(4)
36
36
  end
37
37
 
38
38
  it "iterates over the collection" do
@@ -40,7 +40,7 @@ describe Chef::ResourceCollection::StepableIterator do
40
40
  @iterator.each do |int|
41
41
  sum += int
42
42
  end
43
- sum.should == 10
43
+ expect(sum).to eq(10)
44
44
  end
45
45
 
46
46
  it "iterates over the collection with each_index" do
@@ -48,8 +48,8 @@ describe Chef::ResourceCollection::StepableIterator do
48
48
  @iterator.each_index do |idx|
49
49
  collected_by_index << @simple_collection[idx]
50
50
  end
51
- collected_by_index.should == @simple_collection
52
- collected_by_index.should_not equal(@simple_collection)
51
+ expect(collected_by_index).to eq(@simple_collection)
52
+ expect(collected_by_index).not_to equal(@simple_collection)
53
53
  end
54
54
 
55
55
  it "iterates over the collection with index and element" do
@@ -57,7 +57,7 @@ describe Chef::ResourceCollection::StepableIterator do
57
57
  @iterator.each_with_index do |element, index|
58
58
  collected[index] = element
59
59
  end
60
- collected.should == {0=>1, 1=>2, 2=>3, 3=>4}
60
+ expect(collected).to eq({0=>1, 1=>2, 2=>3, 3=>4})
61
61
  end
62
62
 
63
63
  end
@@ -76,49 +76,49 @@ describe Chef::ResourceCollection::StepableIterator do
76
76
  end
77
77
 
78
78
  it "allows the iteration to be paused" do
79
- @snitch_var.should == 23
79
+ expect(@snitch_var).to eq(23)
80
80
  end
81
81
 
82
82
  it "allows the iteration to be resumed" do
83
- @snitch_var.should == 23
83
+ expect(@snitch_var).to eq(23)
84
84
  @iterator.resume
85
- @snitch_var.should == 42
85
+ expect(@snitch_var).to eq(42)
86
86
  end
87
87
 
88
88
  it "allows iteration to be rewound" do
89
89
  @iterator.skip_back(2)
90
90
  @iterator.resume
91
- @snitch_var.should == 23
91
+ expect(@snitch_var).to eq(23)
92
92
  @iterator.resume
93
- @snitch_var.should == 42
93
+ expect(@snitch_var).to eq(42)
94
94
  end
95
95
 
96
96
  it "allows iteration to be fast forwarded" do
97
97
  @iterator.skip_forward
98
98
  @iterator.resume
99
- @snitch_var.should == 23
99
+ expect(@snitch_var).to eq(23)
100
100
  end
101
101
 
102
102
  it "allows iteration to be rewound" do
103
103
  @snitch_var = nil
104
104
  @iterator.rewind
105
- @iterator.position.should == 0
105
+ expect(@iterator.position).to eq(0)
106
106
  @iterator.resume
107
- @snitch_var.should == 23
107
+ expect(@snitch_var).to eq(23)
108
108
  end
109
109
 
110
110
  it "allows iteration to be stepped" do
111
111
  @snitch_var = nil
112
112
  @iterator.rewind
113
113
  @iterator.step
114
- @iterator.position.should == 1
115
- @snitch_var.should == 23
114
+ expect(@iterator.position).to eq(1)
115
+ expect(@snitch_var).to eq(23)
116
116
  end
117
117
 
118
118
  it "doesn't step if there are no more steps" do
119
- @iterator.step.should == 3
120
- lambda {@iterator.step}.should_not raise_error
121
- @iterator.step.should be_nil
119
+ expect(@iterator.step).to eq(3)
120
+ expect {@iterator.step}.not_to raise_error
121
+ expect(@iterator.step).to be_nil
122
122
  end
123
123
 
124
124
  it "allows the iteration to start by being stepped" do
@@ -126,17 +126,17 @@ describe Chef::ResourceCollection::StepableIterator do
126
126
  @iterator = CRSI.for_collection(@collection)
127
127
  @iterator.iterate_on(:element) { |proc| proc.call }
128
128
  @iterator.step
129
- @iterator.position.should == 1
130
- @snitch_var.should == 23
129
+ expect(@iterator.position).to eq(1)
130
+ expect(@snitch_var).to eq(23)
131
131
  end
132
132
 
133
133
  it "should work correctly when elements are added to the collection during iteration" do
134
134
  @collection.insert(2, lambda { @snitch_var = 815})
135
135
  @collection.insert(3, lambda { @iterator.pause })
136
136
  @iterator.resume
137
- @snitch_var.should == 815
137
+ expect(@snitch_var).to eq(815)
138
138
  @iterator.resume
139
- @snitch_var.should == 42
139
+ expect(@snitch_var).to eq(42)
140
140
  end
141
141
 
142
142
  end