chefspec 3.1.4 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (532) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +15 -0
  3. data/.travis.yml +39 -0
  4. data/CHANGELOG.md +444 -0
  5. data/CONTRIBUTING.md +52 -0
  6. data/Gemfile +2 -0
  7. data/ISSUES.md +41 -0
  8. data/LICENSE +22 -0
  9. data/README.md +893 -0
  10. data/Rakefile +29 -0
  11. data/chefspec.gemspec +42 -0
  12. data/examples/apt_package/recipes/install.rb +13 -0
  13. data/examples/apt_package/recipes/purge.rb +13 -0
  14. data/examples/apt_package/recipes/reconfig.rb +13 -0
  15. data/examples/apt_package/recipes/remove.rb +13 -0
  16. data/examples/apt_package/recipes/upgrade.rb +13 -0
  17. data/examples/apt_package/spec/install_spec.rb +23 -0
  18. data/examples/apt_package/spec/purge_spec.rb +19 -0
  19. data/examples/apt_package/spec/reconfig_spec.rb +19 -0
  20. data/examples/apt_package/spec/remove_spec.rb +19 -0
  21. data/examples/apt_package/spec/upgrade_spec.rb +19 -0
  22. data/examples/attributes/attributes/default.rb +1 -0
  23. data/examples/attributes/recipes/default.rb +4 -0
  24. data/examples/attributes/spec/default_spec.rb +20 -0
  25. data/examples/batch/recipes/run.rb +13 -0
  26. data/examples/batch/spec/run_spec.rb +23 -0
  27. data/examples/cached/recipes/default.rb +1 -0
  28. data/examples/cached/spec/default_spec.rb +13 -0
  29. data/examples/chef_gem/recipes/install.rb +13 -0
  30. data/examples/chef_gem/recipes/purge.rb +13 -0
  31. data/examples/chef_gem/recipes/reconfig.rb +13 -0
  32. data/examples/chef_gem/recipes/remove.rb +13 -0
  33. data/examples/chef_gem/recipes/upgrade.rb +13 -0
  34. data/examples/chef_gem/spec/install_spec.rb +23 -0
  35. data/examples/chef_gem/spec/purge_spec.rb +19 -0
  36. data/examples/chef_gem/spec/reconfig_spec.rb +19 -0
  37. data/examples/chef_gem/spec/remove_spec.rb +19 -0
  38. data/examples/chef_gem/spec/upgrade_spec.rb +19 -0
  39. data/examples/compile_time/recipes/default.rb +3 -0
  40. data/examples/compile_time/spec/default_spec.rb +27 -0
  41. data/examples/cookbook_file/recipes/create.rb +15 -0
  42. data/examples/cookbook_file/recipes/create_if_missing.rb +15 -0
  43. data/examples/cookbook_file/recipes/delete.rb +15 -0
  44. data/examples/cookbook_file/recipes/touch.rb +15 -0
  45. data/examples/cookbook_file/spec/create_if_missing_spec.rb +28 -0
  46. data/examples/cookbook_file/spec/create_spec.rb +32 -0
  47. data/examples/cookbook_file/spec/delete_spec.rb +19 -0
  48. data/examples/cookbook_file/spec/touch_spec.rb +19 -0
  49. data/examples/cron/recipes/create.rb +10 -0
  50. data/examples/cron/recipes/delete.rb +9 -0
  51. data/examples/cron/spec/create_spec.rb +19 -0
  52. data/examples/cron/spec/delete_spec.rb +15 -0
  53. data/examples/custom_matcher/libraries/matcher.rb +23 -0
  54. data/examples/custom_matcher/providers/thing.rb +2 -0
  55. data/examples/custom_matcher/recipes/install.rb +13 -0
  56. data/examples/custom_matcher/recipes/remove.rb +13 -0
  57. data/examples/custom_matcher/resources/thing.rb +5 -0
  58. data/examples/custom_matcher/spec/install_spec.rb +27 -0
  59. data/examples/custom_matcher/spec/remove_spec.rb +23 -0
  60. data/examples/deploy/recipes/deploy.rb +10 -0
  61. data/examples/deploy/recipes/force_deploy.rb +9 -0
  62. data/examples/deploy/recipes/rollback.rb +9 -0
  63. data/examples/deploy/spec/deploy_spec.rb +15 -0
  64. data/examples/deploy/spec/force_deploy_spec.rb +15 -0
  65. data/examples/deploy/spec/rollback_spec.rb +15 -0
  66. data/examples/directory/recipes/create.rb +14 -0
  67. data/examples/directory/recipes/delete.rb +14 -0
  68. data/examples/directory/spec/create_spec.rb +30 -0
  69. data/examples/directory/spec/delete_spec.rb +26 -0
  70. data/examples/dpkg_package/recipes/install.rb +13 -0
  71. data/examples/dpkg_package/recipes/purge.rb +13 -0
  72. data/examples/dpkg_package/recipes/remove.rb +13 -0
  73. data/examples/dpkg_package/spec/install_spec.rb +23 -0
  74. data/examples/dpkg_package/spec/purge_spec.rb +19 -0
  75. data/examples/dpkg_package/spec/remove_spec.rb +19 -0
  76. data/examples/easy_install_package/recipes/install.rb +13 -0
  77. data/examples/easy_install_package/recipes/purge.rb +13 -0
  78. data/examples/easy_install_package/recipes/remove.rb +13 -0
  79. data/examples/easy_install_package/recipes/upgrade.rb +13 -0
  80. data/examples/easy_install_package/spec/install_spec.rb +23 -0
  81. data/examples/easy_install_package/spec/purge_spec.rb +19 -0
  82. data/examples/easy_install_package/spec/remove_spec.rb +19 -0
  83. data/examples/easy_install_package/spec/upgrade_spec.rb +19 -0
  84. data/examples/env/recipes/create.rb +13 -0
  85. data/examples/env/recipes/delete.rb +13 -0
  86. data/examples/env/recipes/modify.rb +13 -0
  87. data/examples/env/spec/create_spec.rb +23 -0
  88. data/examples/env/spec/delete_spec.rb +19 -0
  89. data/examples/env/spec/modify_spec.rb +19 -0
  90. data/examples/erl_call/recipes/run.rb +13 -0
  91. data/examples/erl_call/spec/run_spec.rb +23 -0
  92. data/examples/execute/recipes/run.rb +13 -0
  93. data/examples/execute/spec/run_spec.rb +23 -0
  94. data/examples/expect_exception/recipes/compile_error.rb +1 -0
  95. data/examples/expect_exception/recipes/converge_error.rb +5 -0
  96. data/examples/expect_exception/recipes/no_error.rb +1 -0
  97. data/examples/expect_exception/spec/compile_error_spec.rb +10 -0
  98. data/examples/expect_exception/spec/converge_error_spec.rb +10 -0
  99. data/examples/expect_exception/spec/no_error_spec.rb +10 -0
  100. data/examples/file/recipes/create.rb +15 -0
  101. data/examples/file/recipes/create_if_missing.rb +15 -0
  102. data/examples/file/recipes/delete.rb +15 -0
  103. data/examples/file/recipes/touch.rb +15 -0
  104. data/examples/file/spec/create_if_missing_spec.rb +28 -0
  105. data/examples/file/spec/create_spec.rb +32 -0
  106. data/examples/file/spec/delete_spec.rb +19 -0
  107. data/examples/file/spec/touch_spec.rb +19 -0
  108. data/examples/freebsd_package/recipes/install.rb +13 -0
  109. data/examples/freebsd_package/recipes/remove.rb +13 -0
  110. data/examples/freebsd_package/spec/install_spec.rb +23 -0
  111. data/examples/freebsd_package/spec/remove_spec.rb +19 -0
  112. data/examples/gem_package/recipes/install.rb +13 -0
  113. data/examples/gem_package/recipes/purge.rb +13 -0
  114. data/examples/gem_package/recipes/reconfig.rb +13 -0
  115. data/examples/gem_package/recipes/remove.rb +13 -0
  116. data/examples/gem_package/recipes/upgrade.rb +13 -0
  117. data/examples/gem_package/spec/install_spec.rb +23 -0
  118. data/examples/gem_package/spec/purge_spec.rb +19 -0
  119. data/examples/gem_package/spec/reconfig_spec.rb +19 -0
  120. data/examples/gem_package/spec/remove_spec.rb +19 -0
  121. data/examples/gem_package/spec/upgrade_spec.rb +19 -0
  122. data/examples/git/recipes/checkout.rb +13 -0
  123. data/examples/git/recipes/export.rb +13 -0
  124. data/examples/git/recipes/sync.rb +13 -0
  125. data/examples/git/spec/checkout_spec.rb +19 -0
  126. data/examples/git/spec/export_spec.rb +19 -0
  127. data/examples/git/spec/sync_spec.rb +23 -0
  128. data/examples/group/recipes/create.rb +13 -0
  129. data/examples/group/recipes/manage.rb +13 -0
  130. data/examples/group/recipes/modify.rb +13 -0
  131. data/examples/group/recipes/remove.rb +13 -0
  132. data/examples/group/spec/create_spec.rb +23 -0
  133. data/examples/group/spec/manage_spec.rb +19 -0
  134. data/examples/group/spec/modify_spec.rb +19 -0
  135. data/examples/group/spec/remove_spec.rb +18 -0
  136. data/examples/guards/recipes/default.rb +13 -0
  137. data/examples/guards/spec/default_spec.rb +17 -0
  138. data/examples/heavy_provider_light_resource/libraries/resource_service.rb +15 -0
  139. data/examples/heavy_provider_light_resource/providers/service.rb +9 -0
  140. data/examples/heavy_provider_light_resource/recipes/default.rb +4 -0
  141. data/examples/heavy_provider_light_resource/spec/provider_service_spec.rb +7 -0
  142. data/examples/http_request/recipes/delete.rb +13 -0
  143. data/examples/http_request/recipes/get.rb +13 -0
  144. data/examples/http_request/recipes/head.rb +13 -0
  145. data/examples/http_request/recipes/options.rb +13 -0
  146. data/examples/http_request/recipes/post.rb +13 -0
  147. data/examples/http_request/recipes/put.rb +13 -0
  148. data/examples/http_request/spec/delete_spec.rb +19 -0
  149. data/examples/http_request/spec/get_spec.rb +23 -0
  150. data/examples/http_request/spec/head_spec.rb +19 -0
  151. data/examples/http_request/spec/options_spec.rb +19 -0
  152. data/examples/http_request/spec/post_spec.rb +19 -0
  153. data/examples/http_request/spec/put_spec.rb +19 -0
  154. data/examples/ifconfig/recipes/add.rb +9 -0
  155. data/examples/ifconfig/recipes/delete.rb +8 -0
  156. data/examples/ifconfig/recipes/disable.rb +8 -0
  157. data/examples/ifconfig/recipes/enable.rb +8 -0
  158. data/examples/ifconfig/spec/add_spec.rb +19 -0
  159. data/examples/ifconfig/spec/delete_spec.rb +15 -0
  160. data/examples/ifconfig/spec/disable_spec.rb +15 -0
  161. data/examples/ifconfig/spec/enable_spec.rb +15 -0
  162. data/examples/include_recipe/recipes/default.rb +1 -0
  163. data/examples/include_recipe/recipes/not.rb +0 -0
  164. data/examples/include_recipe/recipes/other.rb +0 -0
  165. data/examples/include_recipe/spec/default_spec.rb +13 -0
  166. data/examples/inherits/recipes/default.rb +5 -0
  167. data/examples/inherits/spec/default_spec.rb +21 -0
  168. data/examples/ips_package/recipes/install.rb +13 -0
  169. data/examples/ips_package/recipes/remove.rb +13 -0
  170. data/examples/ips_package/recipes/upgrade.rb +13 -0
  171. data/examples/ips_package/spec/install_spec.rb +23 -0
  172. data/examples/ips_package/spec/remove_spec.rb +19 -0
  173. data/examples/ips_package/spec/upgrade_spec.rb +19 -0
  174. data/examples/link/recipes/create.rb +13 -0
  175. data/examples/link/recipes/delete.rb +13 -0
  176. data/examples/link/recipes/link_to.rb +3 -0
  177. data/examples/link/spec/create_spec.rb +23 -0
  178. data/examples/link/spec/delete_spec.rb +19 -0
  179. data/examples/link/spec/link_to_spec.rb +11 -0
  180. data/examples/log/recipes/write.rb +14 -0
  181. data/examples/log/spec/write_spec.rb +24 -0
  182. data/examples/macports_package/recipes/install.rb +13 -0
  183. data/examples/macports_package/recipes/purge.rb +13 -0
  184. data/examples/macports_package/recipes/remove.rb +13 -0
  185. data/examples/macports_package/recipes/upgrade.rb +13 -0
  186. data/examples/macports_package/spec/install_spec.rb +23 -0
  187. data/examples/macports_package/spec/purge_spec.rb +19 -0
  188. data/examples/macports_package/spec/remove_spec.rb +19 -0
  189. data/examples/macports_package/spec/upgrade_spec.rb +19 -0
  190. data/examples/mdadm/recipes/assemble.rb +13 -0
  191. data/examples/mdadm/recipes/create.rb +13 -0
  192. data/examples/mdadm/recipes/stop.rb +13 -0
  193. data/examples/mdadm/spec/assemble_spec.rb +19 -0
  194. data/examples/mdadm/spec/create_spec.rb +23 -0
  195. data/examples/mdadm/spec/stop_spec.rb +19 -0
  196. data/examples/mount/recipes/disable.rb +8 -0
  197. data/examples/mount/recipes/enable.rb +8 -0
  198. data/examples/mount/recipes/mount.rb +9 -0
  199. data/examples/mount/recipes/remount.rb +8 -0
  200. data/examples/mount/recipes/umount.rb +8 -0
  201. data/examples/mount/spec/disable_spec.rb +15 -0
  202. data/examples/mount/spec/enable_spec.rb +15 -0
  203. data/examples/mount/spec/mount_spec.rb +19 -0
  204. data/examples/mount/spec/remount_spec.rb +15 -0
  205. data/examples/mount/spec/umount_spec.rb +15 -0
  206. data/examples/multiple_actions/recipes/default.rb +3 -0
  207. data/examples/multiple_actions/recipes/sequential.rb +7 -0
  208. data/examples/multiple_actions/spec/default_spec.rb +14 -0
  209. data/examples/multiple_actions/spec/sequential_spec.rb +13 -0
  210. data/examples/multiple_run_action/recipes/default.rb +5 -0
  211. data/examples/multiple_run_action/spec/default_spec.rb +18 -0
  212. data/examples/notifications/recipes/chained.rb +12 -0
  213. data/examples/notifications/recipes/default.rb +7 -0
  214. data/examples/notifications/recipes/delayed.rb +7 -0
  215. data/examples/notifications/recipes/immediately.rb +7 -0
  216. data/examples/notifications/spec/chained_spec.rb +21 -0
  217. data/examples/notifications/spec/default_spec.rb +16 -0
  218. data/examples/notifications/spec/delayed_spec.rb +16 -0
  219. data/examples/notifications/spec/immediately_spec.rb +16 -0
  220. data/examples/ohai/recipes/reload.rb +13 -0
  221. data/examples/ohai/spec/reload_spec.rb +23 -0
  222. data/examples/package/recipes/install.rb +13 -0
  223. data/examples/package/recipes/purge.rb +13 -0
  224. data/examples/package/recipes/reconfig.rb +13 -0
  225. data/examples/package/recipes/remove.rb +13 -0
  226. data/examples/package/recipes/upgrade.rb +13 -0
  227. data/examples/package/spec/install_spec.rb +23 -0
  228. data/examples/package/spec/purge_spec.rb +19 -0
  229. data/examples/package/spec/reconfig_spec.rb +19 -0
  230. data/examples/package/spec/remove_spec.rb +19 -0
  231. data/examples/package/spec/upgrade_spec.rb +19 -0
  232. data/examples/pacman_package/recipes/install.rb +13 -0
  233. data/examples/pacman_package/recipes/purge.rb +13 -0
  234. data/examples/pacman_package/recipes/remove.rb +13 -0
  235. data/examples/pacman_package/recipes/upgrade.rb +13 -0
  236. data/examples/pacman_package/spec/install_spec.rb +23 -0
  237. data/examples/pacman_package/spec/purge_spec.rb +19 -0
  238. data/examples/pacman_package/spec/remove_spec.rb +19 -0
  239. data/examples/pacman_package/spec/upgrade_spec.rb +19 -0
  240. data/examples/portage_package/recipes/install.rb +13 -0
  241. data/examples/portage_package/recipes/purge.rb +13 -0
  242. data/examples/portage_package/recipes/remove.rb +13 -0
  243. data/examples/portage_package/recipes/upgrade.rb +13 -0
  244. data/examples/portage_package/spec/install_spec.rb +23 -0
  245. data/examples/portage_package/spec/purge_spec.rb +19 -0
  246. data/examples/portage_package/spec/remove_spec.rb +19 -0
  247. data/examples/portage_package/spec/upgrade_spec.rb +19 -0
  248. data/examples/powershell_script/recipes/run.rb +13 -0
  249. data/examples/powershell_script/spec/run_spec.rb +23 -0
  250. data/examples/registry_key/recipes/create.rb +13 -0
  251. data/examples/registry_key/recipes/create_if_missing.rb +13 -0
  252. data/examples/registry_key/recipes/delete.rb +13 -0
  253. data/examples/registry_key/recipes/delete_key.rb +13 -0
  254. data/examples/registry_key/spec/create_if_missing_spec.rb +19 -0
  255. data/examples/registry_key/spec/create_spec.rb +23 -0
  256. data/examples/registry_key/spec/delete_key_spec.rb +19 -0
  257. data/examples/registry_key/spec/delete_spec.rb +19 -0
  258. data/examples/remote_directory/recipes/create.rb +13 -0
  259. data/examples/remote_directory/recipes/create_if_missing.rb +13 -0
  260. data/examples/remote_directory/recipes/delete.rb +13 -0
  261. data/examples/remote_directory/spec/create_if_missing_spec.rb +19 -0
  262. data/examples/remote_directory/spec/create_spec.rb +23 -0
  263. data/examples/remote_directory/spec/delete_spec.rb +19 -0
  264. data/examples/remote_file/recipes/create.rb +18 -0
  265. data/examples/remote_file/recipes/create_if_missing.rb +16 -0
  266. data/examples/remote_file/recipes/delete.rb +16 -0
  267. data/examples/remote_file/recipes/touch.rb +16 -0
  268. data/examples/remote_file/spec/create_if_missing_spec.rb +19 -0
  269. data/examples/remote_file/spec/create_spec.rb +23 -0
  270. data/examples/remote_file/spec/delete_spec.rb +19 -0
  271. data/examples/remote_file/spec/touch_spec.rb +19 -0
  272. data/examples/render_file/files/default/cookbook_file +1 -0
  273. data/examples/render_file/recipes/default.rb +15 -0
  274. data/examples/render_file/recipes/template_helpers.rb +9 -0
  275. data/examples/render_file/spec/default_spec.rb +73 -0
  276. data/examples/render_file/spec/template_helpers_spec.rb +10 -0
  277. data/examples/render_file/templates/default/_partial.erb +1 -0
  278. data/examples/render_file/templates/default/partial.erb +1 -0
  279. data/examples/render_file/templates/default/template.erb +1 -0
  280. data/examples/render_file/templates/default/template_with_helper.erb +1 -0
  281. data/examples/roles/recipes/another.rb +3 -0
  282. data/examples/roles/recipes/default.rb +1 -0
  283. data/examples/roles/roles/role.rb +9 -0
  284. data/examples/roles/spec/default_spec.rb +21 -0
  285. data/examples/route/recipes/add.rb +13 -0
  286. data/examples/route/recipes/delete.rb +13 -0
  287. data/examples/route/spec/add_spec.rb +23 -0
  288. data/examples/route/spec/delete_spec.rb +19 -0
  289. data/examples/rpm_package/recipes/install.rb +13 -0
  290. data/examples/rpm_package/recipes/remove.rb +13 -0
  291. data/examples/rpm_package/recipes/upgrade.rb +13 -0
  292. data/examples/rpm_package/spec/install_spec.rb +23 -0
  293. data/examples/rpm_package/spec/remove_spec.rb +19 -0
  294. data/examples/rpm_package/spec/upgrade_spec.rb +19 -0
  295. data/examples/ruby_block/recipes/run.rb +9 -0
  296. data/examples/ruby_block/spec/run_spec.rb +18 -0
  297. data/examples/script/recipes/run_bash.rb +13 -0
  298. data/examples/script/recipes/run_csh.rb +13 -0
  299. data/examples/script/recipes/run_perl.rb +13 -0
  300. data/examples/script/recipes/run_python.rb +13 -0
  301. data/examples/script/recipes/run_ruby.rb +13 -0
  302. data/examples/script/recipes/run_script.rb +13 -0
  303. data/examples/script/spec/run_bash_spec.rb +23 -0
  304. data/examples/script/spec/run_csh_spec.rb +23 -0
  305. data/examples/script/spec/run_perl_spec.rb +23 -0
  306. data/examples/script/spec/run_python_spec.rb +23 -0
  307. data/examples/script/spec/run_ruby_spec.rb +23 -0
  308. data/examples/script/spec/run_script_spec.rb +23 -0
  309. data/examples/server/recipes/client.rb +6 -0
  310. data/examples/server/recipes/data_bag.rb +7 -0
  311. data/examples/server/recipes/environment.rb +6 -0
  312. data/examples/server/recipes/node.rb +6 -0
  313. data/examples/server/recipes/role.rb +6 -0
  314. data/examples/server/recipes/search.rb +5 -0
  315. data/examples/server/spec/client_spec.rb +17 -0
  316. data/examples/server/spec/data_bag_spec.rb +26 -0
  317. data/examples/server/spec/environment_spec.rb +17 -0
  318. data/examples/server/spec/node_spec.rb +40 -0
  319. data/examples/server/spec/role_spec.rb +17 -0
  320. data/examples/server/spec/search_spec.rb +58 -0
  321. data/examples/service/recipes/disable.rb +13 -0
  322. data/examples/service/recipes/enable.rb +13 -0
  323. data/examples/service/recipes/reload.rb +13 -0
  324. data/examples/service/recipes/restart.rb +13 -0
  325. data/examples/service/recipes/start.rb +13 -0
  326. data/examples/service/recipes/stop.rb +13 -0
  327. data/examples/service/spec/disable_spec.rb +19 -0
  328. data/examples/service/spec/enable_spec.rb +19 -0
  329. data/examples/service/spec/reload_spec.rb +19 -0
  330. data/examples/service/spec/restart_spec.rb +19 -0
  331. data/examples/service/spec/start_spec.rb +19 -0
  332. data/examples/service/spec/stop_spec.rb +19 -0
  333. data/examples/smartos_package/recipes/install.rb +13 -0
  334. data/examples/smartos_package/recipes/remove.rb +13 -0
  335. data/examples/smartos_package/recipes/upgrade.rb +13 -0
  336. data/examples/smartos_package/spec/install_spec.rb +23 -0
  337. data/examples/smartos_package/spec/remove_spec.rb +19 -0
  338. data/examples/smartos_package/spec/upgrade_spec.rb +19 -0
  339. data/examples/solaris_package/recipes/install.rb +13 -0
  340. data/examples/solaris_package/recipes/remove.rb +13 -0
  341. data/examples/solaris_package/spec/install_spec.rb +23 -0
  342. data/examples/solaris_package/spec/remove_spec.rb +19 -0
  343. data/examples/state_attrs/providers/lwrp.rb +3 -0
  344. data/examples/state_attrs/recipes/default.rb +3 -0
  345. data/examples/state_attrs/resources/lwrp.rb +6 -0
  346. data/examples/state_attrs/spec/default_spec.rb +12 -0
  347. data/examples/step_into/providers/lwrp.rb +3 -0
  348. data/examples/step_into/recipes/default.rb +1 -0
  349. data/examples/step_into/resources/lwrp.rb +4 -0
  350. data/examples/step_into/spec/default_spec.rb +19 -0
  351. data/examples/stub_command/recipes/default.rb +5 -0
  352. data/examples/stub_command/recipes/other_recipe.rb +3 -0
  353. data/examples/stub_command/spec/default_spec.rb +28 -0
  354. data/examples/stub_data_bag/recipes/default.rb +5 -0
  355. data/examples/stub_data_bag/spec/default_spec.rb +27 -0
  356. data/examples/stub_data_bag_item/recipes/default.rb +5 -0
  357. data/examples/stub_data_bag_item/spec/default_spec.rb +27 -0
  358. data/examples/stub_node/recipes/default.rb +0 -0
  359. data/examples/stub_node/spec/default_spec.rb +17 -0
  360. data/examples/stub_search/recipes/default.rb +5 -0
  361. data/examples/stub_search/spec/default_spec.rb +27 -0
  362. data/examples/subscribes/recipes/chained.rb +10 -0
  363. data/examples/subscribes/recipes/default.rb +5 -0
  364. data/examples/subscribes/recipes/delayed.rb +5 -0
  365. data/examples/subscribes/recipes/immediately.rb +5 -0
  366. data/examples/subscribes/spec/chained_spec.rb +21 -0
  367. data/examples/subscribes/spec/default_spec.rb +17 -0
  368. data/examples/subscribes/spec/delayed_spec.rb +16 -0
  369. data/examples/subscribes/spec/immediately_spec.rb +16 -0
  370. data/examples/subversion/recipes/checkout.rb +13 -0
  371. data/examples/subversion/recipes/export.rb +13 -0
  372. data/examples/subversion/recipes/force_export.rb +13 -0
  373. data/examples/subversion/recipes/sync.rb +13 -0
  374. data/examples/subversion/spec/checkout_spec.rb +19 -0
  375. data/examples/subversion/spec/export_spec.rb +19 -0
  376. data/examples/subversion/spec/force_export_spec.rb +19 -0
  377. data/examples/subversion/spec/sync_spec.rb +23 -0
  378. data/examples/template/recipes/create.rb +15 -0
  379. data/examples/template/recipes/create_if_missing.rb +15 -0
  380. data/examples/template/recipes/delete.rb +15 -0
  381. data/examples/template/recipes/touch.rb +15 -0
  382. data/examples/template/spec/create_if_missing_spec.rb +28 -0
  383. data/examples/template/spec/create_spec.rb +32 -0
  384. data/examples/template/spec/delete_spec.rb +19 -0
  385. data/examples/template/spec/touch_spec.rb +19 -0
  386. data/examples/use_inline_resources/libraries/matchers.rb +5 -0
  387. data/examples/use_inline_resources/providers/lwrp.rb +7 -0
  388. data/examples/use_inline_resources/recipes/default.rb +1 -0
  389. data/examples/use_inline_resources/resources/lwrp.rb +4 -0
  390. data/examples/use_inline_resources/spec/default_spec.rb +15 -0
  391. data/examples/user/recipes/create.rb +13 -0
  392. data/examples/user/recipes/lock.rb +13 -0
  393. data/examples/user/recipes/manage.rb +13 -0
  394. data/examples/user/recipes/modify.rb +13 -0
  395. data/examples/user/recipes/remove.rb +13 -0
  396. data/examples/user/recipes/unlock.rb +13 -0
  397. data/examples/user/spec/create_spec.rb +23 -0
  398. data/examples/user/spec/lock_spec.rb +19 -0
  399. data/examples/user/spec/manage_spec.rb +19 -0
  400. data/examples/user/spec/modify_spec.rb +19 -0
  401. data/examples/user/spec/remove_spec.rb +19 -0
  402. data/examples/user/spec/unlock_spec.rb +19 -0
  403. data/examples/yum_package/recipes/install.rb +13 -0
  404. data/examples/yum_package/recipes/purge.rb +13 -0
  405. data/examples/yum_package/recipes/remove.rb +13 -0
  406. data/examples/yum_package/recipes/upgrade.rb +13 -0
  407. data/examples/yum_package/spec/install_spec.rb +23 -0
  408. data/examples/yum_package/spec/purge_spec.rb +19 -0
  409. data/examples/yum_package/spec/remove_spec.rb +19 -0
  410. data/examples/yum_package/spec/upgrade_spec.rb +19 -0
  411. data/features/apt_package.feature +14 -0
  412. data/features/attributes.feature +7 -0
  413. data/features/batch.feature +13 -0
  414. data/features/cached.feature +7 -0
  415. data/features/chef_gem.feature +14 -0
  416. data/features/compile_time.feature +7 -0
  417. data/features/cookbook_file.feature +13 -0
  418. data/features/cron.feature +11 -0
  419. data/features/custom_matcher.feature +11 -0
  420. data/features/deploy.feature +12 -0
  421. data/features/directory.feature +11 -0
  422. data/features/dpkg_package.feature +12 -0
  423. data/features/easy_install_package.feature +13 -0
  424. data/features/env.feature +12 -0
  425. data/features/erl_call.feature +10 -0
  426. data/features/execute.feature +10 -0
  427. data/features/expect_exception.feature +12 -0
  428. data/features/file.feature +13 -0
  429. data/features/freebsd_package.feature +11 -0
  430. data/features/gem_package.feature +14 -0
  431. data/features/git.feature +12 -0
  432. data/features/group.feature +13 -0
  433. data/features/guards.feature +10 -0
  434. data/features/heavy_provider_light_resource.feature +10 -0
  435. data/features/http_request.feature +15 -0
  436. data/features/ifconfig.feature +13 -0
  437. data/features/include_recipe.feature +10 -0
  438. data/features/inherits.feature +7 -0
  439. data/features/ips_package.feature +12 -0
  440. data/features/link.feature +12 -0
  441. data/features/log.feature +10 -0
  442. data/features/macports_package.feature +13 -0
  443. data/features/mdadm.feature +12 -0
  444. data/features/mount.feature +14 -0
  445. data/features/multiple_actions.feature +11 -0
  446. data/features/multiple_run_action.feature +7 -0
  447. data/features/notifications.feature +13 -0
  448. data/features/ohai.feature +10 -0
  449. data/features/package.feature +14 -0
  450. data/features/pacman_package.feature +13 -0
  451. data/features/portage_package.feature +13 -0
  452. data/features/powershell_script.feature +13 -0
  453. data/features/registry_key.feature +13 -0
  454. data/features/remote_directory.feature +12 -0
  455. data/features/remote_file.feature +13 -0
  456. data/features/render_file.feature +16 -0
  457. data/features/roles.feature +7 -0
  458. data/features/route.feature +11 -0
  459. data/features/rpm_package.feature +12 -0
  460. data/features/ruby_block.feature +10 -0
  461. data/features/script.feature +15 -0
  462. data/features/server.feature +21 -0
  463. data/features/service.feature +15 -0
  464. data/features/smartos_package.feature +16 -0
  465. data/features/solaris_package.feature +15 -0
  466. data/features/state_attrs.feature +11 -0
  467. data/features/step_definitions/background_steps.rb +4 -0
  468. data/features/step_into.feature +7 -0
  469. data/features/stub_command.feature +7 -0
  470. data/features/stub_data_bag.feature +7 -0
  471. data/features/stub_data_bag_item.feature +7 -0
  472. data/features/stub_node.feature +7 -0
  473. data/features/stub_search.feature +7 -0
  474. data/features/subscribes.feature +13 -0
  475. data/features/subversion.feature +13 -0
  476. data/features/support/env.rb +36 -0
  477. data/features/support/executor.rb +18 -0
  478. data/features/template.feature +13 -0
  479. data/features/use_inline_resources.feature +7 -0
  480. data/features/user.feature +15 -0
  481. data/features/yum_package.feature +13 -0
  482. data/gemfiles/chef-11.0.0.gemfile +5 -0
  483. data/gemfiles/chef-11.2.0.gemfile +5 -0
  484. data/gemfiles/chef-11.4.4.gemfile +5 -0
  485. data/gemfiles/chef-11.6.0.gemfile +5 -0
  486. data/gemfiles/chef-11.8.0.gemfile +5 -0
  487. data/gemfiles/chef-master.gemfile +5 -0
  488. data/lib/chefspec/api.rb +13 -11
  489. data/lib/chefspec/api/notifications.rb +3 -3
  490. data/lib/chefspec/api/subscriptions.rb +35 -0
  491. data/lib/chefspec/coverage.rb +40 -34
  492. data/lib/chefspec/expect_exception.rb +14 -13
  493. data/lib/chefspec/formatter.rb +8 -8
  494. data/lib/chefspec/matchers.rb +1 -0
  495. data/lib/chefspec/matchers/include_recipe_matcher.rb +19 -18
  496. data/lib/chefspec/matchers/notifications_matcher.rb +25 -24
  497. data/lib/chefspec/matchers/render_file_matcher.rb +32 -31
  498. data/lib/chefspec/matchers/resource_matcher.rb +64 -63
  499. data/lib/chefspec/matchers/state_attrs_matcher.rb +18 -17
  500. data/lib/chefspec/matchers/subscribes_matcher.rb +59 -0
  501. data/lib/chefspec/renderer.rb +82 -81
  502. data/lib/chefspec/runner.rb +66 -51
  503. data/lib/chefspec/server.rb +84 -39
  504. data/lib/chefspec/stubs/stub.rb +10 -9
  505. data/lib/chefspec/version.rb +1 -1
  506. data/spec/spec_helper.rb +8 -0
  507. data/spec/support/hash.rb +35 -0
  508. data/spec/unit/api_spec.rb +18 -0
  509. data/spec/unit/cacher_spec.rb +54 -0
  510. data/spec/unit/expect_exception_spec.rb +32 -0
  511. data/spec/unit/extensions/lwrp_base_spec.rb +89 -0
  512. data/spec/unit/macros_spec.rb +119 -0
  513. data/spec/unit/matchers/include_recipe_matcher_spec.rb +38 -0
  514. data/spec/unit/matchers/link_to_matcher_spec.rb +39 -0
  515. data/spec/unit/matchers/notifications_matcher_spec.rb +5 -0
  516. data/spec/unit/matchers/render_file_matcher_spec.rb +41 -0
  517. data/spec/unit/matchers/resource_matcher_spec.rb +5 -0
  518. data/spec/unit/matchers/state_attrs_matcher_spec.rb +64 -0
  519. data/spec/unit/matchers/subscribes_matcher_spec.rb +5 -0
  520. data/spec/unit/renderer_spec.rb +51 -0
  521. data/spec/unit/runner_spec.rb +125 -0
  522. data/spec/unit/stubs/command_registry_spec.rb +27 -0
  523. data/spec/unit/stubs/command_stub_spec.rb +61 -0
  524. data/spec/unit/stubs/data_bag_item_registry_spec.rb +39 -0
  525. data/spec/unit/stubs/data_bag_item_stub_spec.rb +36 -0
  526. data/spec/unit/stubs/data_bag_registry_spec.rb +39 -0
  527. data/spec/unit/stubs/data_bag_stub_spec.rb +35 -0
  528. data/spec/unit/stubs/registry_spec.rb +29 -0
  529. data/spec/unit/stubs/search_registry_spec.rb +39 -0
  530. data/spec/unit/stubs/search_stub_spec.rb +36 -0
  531. data/spec/unit/stubs/stub_spec.rb +64 -0
  532. metadata +618 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4fdab9ea6808e6834ea2b8ca84e5986f1884c232
4
- data.tar.gz: 5892bad574e6176b98a579b785897ab6f19e9f6c
3
+ metadata.gz: 64c17526a22a0b2f1c03ef6395767c019a276387
4
+ data.tar.gz: 9ddf99c2b46eef203e696d11e93e987c319c4656
5
5
  SHA512:
6
- metadata.gz: 1ac07c3eec2c331b441b06cf5c9389d6e8488739708c9bf92ed2b84cd046004ba9e6f7b49da25b158cdbc9f3418b89100e914b18e8bba8d84c1322fb5516d750
7
- data.tar.gz: 707917cef6b44d97a296cb0c3d8d11641af10e05cb251ad91ed4c094935c863d4e13a756cb10ae10092a251a3462f9f3d064625aba2da8a31e3ca21f19c95cf0
6
+ metadata.gz: 20473fac4ba7dfb480ad4b1a2333c183fcd6c5b866929c68064551427495bf3cae055612b6e51fa339ecdacf686a67d5250c6738f12f83c3ae24822924e297ec
7
+ data.tar.gz: bd9b5023822c558c6290686d17ee6362ae83e3b372f8310067dd1e1151d48a189c6e7dba15ac8e5ef6ea51fb33ed1ea145c0ef02962805fdc1d9569bff2ac0ee
@@ -0,0 +1,15 @@
1
+ .idea
2
+ .yardoc
3
+ *.gem
4
+ *.html
5
+ *.rbc
6
+ *.swp
7
+ coverage
8
+ doc
9
+ tmp
10
+ Gemfile.lock
11
+ gemfiles/*.lock
12
+ .bundle
13
+ bin
14
+ vendor
15
+ .rspec
@@ -0,0 +1,39 @@
1
+ rvm:
2
+ - 1.9.3
3
+ - 2.0.0
4
+ - 2.1.0
5
+ branches:
6
+ only:
7
+ - master
8
+ notifications:
9
+ irc:
10
+ channels:
11
+ - "chat.freenode.net#chefspec"
12
+ use_notice: true
13
+ skip_join: true
14
+ template:
15
+ - "%{message} (%{author}): %{build_url}"
16
+ gemfile:
17
+ - gemfiles/chef-11.0.0.gemfile
18
+ - gemfiles/chef-11.2.0.gemfile
19
+ - gemfiles/chef-11.4.4.gemfile
20
+ - gemfiles/chef-11.6.0.gemfile
21
+ - gemfiles/chef-11.8.0.gemfile
22
+ - gemfiles/chef-master.gemfile
23
+ matrix:
24
+ fast_finish: true
25
+ allow_failures:
26
+ - gemfile: gemfiles/chef-master.gemfile
27
+ exclude:
28
+ - rvm: 2.0.0
29
+ gemfile: gemfiles/chef-11.0.0.gemfile
30
+ - rvm: 2.0.0
31
+ gemfile: gemfiles/chef-11.2.0.gemfile
32
+ - rvm: 2.0.0
33
+ gemfile: gemfiles/chef-11.4.4.gemfile
34
+ - rvm: 2.1.0
35
+ gemfile: gemfiles/chef-11.0.0.gemfile
36
+ - rvm: 2.1.0
37
+ gemfile: gemfiles/chef-11.2.0.gemfile
38
+ - rvm: 2.1.0
39
+ gemfile: gemfiles/chef-11.4.4.gemfile
@@ -0,0 +1,444 @@
1
+ CHANGELOG for ChefSpec
2
+ ======================
3
+
4
+ ## 3.2.0 (January 31, 2014)
5
+ Bugfixes:
6
+ - Fix coverage calculation when there are no resources in the collection
7
+ - Fix misplaced quote in matcher output
8
+ - Include all files in generated gem
9
+ - Ensure compatability with Chef HEAD
10
+
11
+ Improvements:
12
+ - Test Ruby 2.1 on Travis
13
+ - Miscellaneous README typos
14
+ - Add `subscribe_to` matchers
15
+ - Add documentation for the `with` matcher
16
+ - Add support for passing a `node` object directly to the server `create_node` method
17
+
18
+ ## 3.1.4 (January 3, 2014)
19
+ Bugfixes:
20
+ - Correctly expand the node's run_list in server mode
21
+ - Actually package i18n translations with the cookbook
22
+
23
+ Improvements:
24
+ - Document setting a node's role
25
+ - Add examples and features for `stub_node`
26
+
27
+ ## 3.1.3 (January 2, 2014)
28
+ Bugfixes:
29
+ - Fix broken deprecations module
30
+ - Update a broken test ([@bknowles][])
31
+
32
+ Improvements:
33
+ - Better gem description on GitHub and Rubygems
34
+ - Helper support for template rendering (Chef 11.4+) ([@geraud][])
35
+
36
+ ## 3.1.2 (December 30, 2013)
37
+ Bugfixes:
38
+ - Require i18n 0.6.9 or higher (but less than 1.0.0) ([#289](https://github.com/sethvargo/chefspec/issues/245))
39
+
40
+ ## 3.1.1 (December 29, 2013)
41
+ Bugfixes:
42
+ - Handle duplicate resources in the coverage reporter
43
+
44
+ ## 3.1.0 (December 29, 2013)
45
+ Bugfixes:
46
+ - Only remove existing LWRP resources and providers when a new one is encountered ([@student][])
47
+ - Attempt to coerce dashes to underscores in LWRPs
48
+ - Various documentation fixes and typos
49
+
50
+ Improvements:
51
+ - Don't include `deprecations` module by default
52
+ - Add examples for stubbing commands across recipes
53
+ - Yield a block after cookbooks are compiled but before they are converged ([@rteabeault][])
54
+ - Add IRC Channel #chefspec
55
+ - Raise a nice error when `cookbook_path` cannot be determined ([@ryotarai][])
56
+
57
+ Features:
58
+ - Add support for Librarian ([@mlafeldt][])
59
+ - Add Cacher module for caching runner results ([@sethvargo][] & [@DracoAter][])
60
+ - Add Chef Zero (server) mode ([@sethvargo][])
61
+ - Add basic resource reporting (Chef recipe code coverage) ([@sethvargo][])
62
+ - Use i18n (internationalization) ([@sethvargo][])
63
+
64
+ ## 3.0.2 (November 6, 2013)
65
+ Bugfixes:
66
+ - Update links to point at new repository location
67
+ - Deleted relish docs to remove confusion
68
+ - Bump fauxhai dependency to 2.0 (removing the HTTParty transitive dependency)
69
+ - Convert resource names with dashes to underscores when stepping into them
70
+
71
+ Improvements:
72
+ - Added a "what people are saying" section to the README - if you have something cool to say about ChefSpec, let me know!
73
+ - Add a link to [`knife-spec`](https://github.com/sethvargo/knife-spec)
74
+ - Test against Chef 11.8
75
+ - New matcher: `have_state_attrs` for testing custom LWRP state attributes
76
+ - Run tests in a sandboxed parent instead of tmp (makes Travis happier)
77
+
78
+
79
+ ## 3.0.1 (October 22, 2013)
80
+ Bugfixes:
81
+ - Fix an issue where LWRPs were not properly stepped into when `use_inline_resources` was specified ([#244](https://github.com/sethvargo/chefspec/issues/244))
82
+ - Coerce `render_file` `@expected_content` to a string before asserting if content is included ([#243](https://github.com/sethvargo/chefspec/issues/243))
83
+
84
+ Improvements:
85
+ - Miscellaneous documentation fixes and additions ([#245](https://github.com/sethvargo/chefspec/issues/245), [#241](https://github.com/sethvargo/chefspec/issues/241), [#238](https://github.com/sethvargo/chefspec/issues/238))
86
+
87
+
88
+ ## 3.0.0 (October 20, 2013)
89
+ Breaking:
90
+ - Dropped support for Chef 9 & 10
91
+ - Renamed `ChefSpec::ChefRunner` to `ChefSpec::Runner` to better reflect what happens in Chef Core. Using `ChefRunner` will throw deprecation errors for now and will be removed in a future release.
92
+ - Removed MiniTest Chef Handler examples/matchers
93
+ - No longer load default cookbook paths:
94
+ - vendor/cookbooks
95
+ - test/cookbooks
96
+ - test/integration (test kitchen)
97
+ - spec/cookbooks
98
+ - Resource matchers all follow the pattern "(action)_(resource_name)". ChefSpec will warn you of these deprecations in 3.0. They will be removed in 4.0. However, some resources cannot be automatically converted - **these resources will raise a deprecation exception of `ChefSpec::NoConversionError`**. The following matchers have changed:
99
+ - `execute_command` => `run_execute`
100
+ - `set_service_to_start_on_boot` => `enable_service`
101
+ - `create_file_with_content` => `render_file`
102
+ - `execute_(script)` => `run_(script)`
103
+ - `execute_ruby_block` => `run_ruby_block`
104
+ - `install_package_at_version` => `install_package().with(version: '')`
105
+ - `*_python_pip` => (removed - see "Packaging Custom LWRPs in the README")
106
+ - Remove dependency on Erubis
107
+ - Remove dependency on MiniTest Chef Handler
108
+ - Remove development dependency on Cucumber
109
+ - Remove development dependency on i18n
110
+ - Remove development dependency on simplecov
111
+ - Separate package matchers. In prior versions of ChefSpec, the `package` matcher would match on any kind of package and any kind of package action. However, some subclasses of the package resource do not support all actions. Each package provider now has it's own matcher with only the actions it supports. Prior specs that used the generic `package` matcher will no longer match on subclasses - you must use the specific subclass matcher.
112
+ - Separate file/cookbook_file/template matchers. In prior versions of ChefSpec, the `file` matcher would match on `file`, `cookbook_file`, and `template`. This is not ideal because it doesn't verify the correct message was sent. Now, `file`, `cookbook_file`, and `template` matchers will _only_ match resources of that type. For generic file checking, please use the new `render_file` matcher.
113
+ - Guards are now evaluated by default. If a shell guard is executed, it must first be stubbed with the `stub_command` macro.
114
+ - `Runner#resources` converted from an Array to a Hash. This is to ensure that all resource actions are added (when multiple calls to run_action exist (#201)). This also drastically improves resource lookup times.
115
+ - `Resource#actions` is no longer maniuplated. Instead, a new method `Resource#performed_actions` now keeps track of the actions taken on a resource (as well as the phase in which they were taken), preserving the original state of the resource.
116
+
117
+ Features:
118
+ - Added a new `render_file` action to replace `create_file_with_content`. This matcher will render the contents of any file to a string and then optionally compare the result if given a `with` chainable.
119
+ - All resources now accept a `with` chainable for matching specific resource attributes.
120
+ - Windows attributes are now testable on non-Windows systems (like `inherits`)
121
+ - Added `batch` resource matchers
122
+ - Added `cookbook_file` resource matchers
123
+ - Added `deploy` resource matchers
124
+ - Added `erl_call` resource matchers
125
+ - Added `git` resource matchers
126
+ - Added `http_request` resource matchers
127
+ - Added `ifconfig` resource matchers
128
+ - Normalized `link` resource matchers
129
+ - Added `log` resource matchers
130
+ - Added `mdadm` resource matchers
131
+ - Added `mount` resource matchers
132
+ - Added `:immediate` and `:delayed` notification matchers
133
+ - Added `ohai` resource matchers
134
+ - Added `powershell_script` matchers (Chef 11.6+)
135
+ - Added `registry_key` matchers
136
+ - Added `remote_directory` matchers
137
+ - Added `route` matchers
138
+ - Added `subversion` matchers
139
+ - Added `stub_command` macro (formerly on `ChefSpec::ChefRunner`) for stubbbing the results of shell commands. Because shell commands are evaluated by default, ChefSpec will raise an exception when encountering a shell command that has not been stubbed.
140
+ - Added `stub_search` macro for easily stubbing `search` calls. Like shell commands, ChefSpec will raise an exception when encountering a `search` call that has not been stubbed.
141
+ - Added `stub_data_bag` macro for easily stubbing `data_bag` calls. Like shell commands, ChefSpec will raise an exception when encountering a `data_bag` call that has not been stubbed.
142
+ - Added `stub_data_bag_item` macro for easily stubbing` data_bag_item` calls. Like shell commands, ChefSpec will raise an exception when encountering a `data_bag_item` call that has not been stubbed.
143
+ - Added `stub_node` helper for quickly generating a node object from Fauxhai data
144
+ - Added `ChefSpec::Runner#apply` command to mimic the behavior of `chef-apply` (use with caution)
145
+ - Share the `ChefSpec::Runner` object with the Node object
146
+ - Add `chefspec/berkshelf` for easily integrating specs with Berkshelf (2 & 3)
147
+ - Add `.at_compile_time` and `.at_converge_time` matchers for asserting which phase of the Chef run a resource should be run
148
+
149
+ Improvements:
150
+ - Move to inline documentation (Yard)
151
+ - Implement InProcess Aruba testing for ultra-fast tests
152
+ - Create "examples" directory for testing and demonstration
153
+ - Unified all failure_messages_for_should
154
+ - Use `shared_examples` for easily testing defined custom matchers
155
+ - Infer the `cookbook_path` from the calling spec
156
+ - Directly set node attributes with Fauxhai (formerly this was an O(n) operation)
157
+ - Refactored ExpectExpectation to work without stubbing
158
+ - Use Chef's `resource_collection` to identify resources instead of our own custom proxy
159
+
160
+
161
+ ## 2.0.1 (August 28, 2013)
162
+
163
+ Bugfixes:
164
+
165
+ - Add missing second optional parameter to `Hash#respond_to?` monkey patch
166
+
167
+ Features
168
+
169
+ - Improve error message when using a regular express
170
+ - Improve documentation for Python packages
171
+
172
+ ## 2.0.0 (August 22, 2013)
173
+
174
+ Breaking:
175
+
176
+ - Remove support for REE ([@andrewgross][] for the CI)
177
+
178
+ Bugfixes:
179
+
180
+ - Better failure message for `create_remote_file` ([@tmatilai][])
181
+ - Add `cookbook_file` as an accepted type to the `create_file` matchers ([@dafyddcrosby][])
182
+ - Ensure formatter is only registered once ([@student][])
183
+ - Signifant README updates ([@phoolish][])
184
+ - Fix `described_recipe` helper (S.R.Garcia)
185
+ - Refactor Chef 10/11 template rendering ([@sethvargo][])
186
+ - Fix CI ([@sethvargo][])
187
+ - Match File actions as an array ([@sethvargo][])
188
+
189
+ Features:
190
+
191
+ - Extend `ruby_block` matcher to accept regular expressions ([@ssimeonov][])
192
+ - Add `create_remote_file_if_missing` matcher ([@jimhopp][])
193
+ - Extend `execute` matcher to accept regular expressions ([@eliaslevy][])
194
+ - Add ability to expect exceptions during a run ([@student][])
195
+ - Add regular expression support for resource names ([@mapleoin][])
196
+ - Add support for `python_pip` LWRP ([@mapleoin][])
197
+
198
+ ## 1.3.1 (June 10, 2013)
199
+
200
+ Bugfixes:
201
+
202
+ - Allow the user to override `cookbook_path` again
203
+
204
+ ## 1.3.0 (June 6, 2013)
205
+
206
+ Features:
207
+
208
+ - Added the ability to evaluate `only_if` and `not_if` conditional guards and
209
+ support for stubbing shell guards (#142, #144).
210
+ - New `described_recipe` and `described_cookbook` helpers to keep your specs
211
+ DRY (#140). Thanks Andrey Chernih.
212
+
213
+ Bugfixes:
214
+
215
+ - Ensure that Ohai plugin reloader works with ChefSpec (#141). Thanks Andrey
216
+ Chernih.
217
+
218
+ ## 1.2.0 (May 16, 2013)
219
+
220
+ Features:
221
+
222
+ - Add support for partial files (@RanjibDey)
223
+ - Automatically check certain directories for cookbooks (@sethvargo)
224
+
225
+ ## 1.1.0 (May 10, 2013)
226
+
227
+ Features:
228
+
229
+ - Upgrade to newest version of fauxhai (@tmatilai)
230
+ - Make `find_resource` a public method (@adamhjk)
231
+ - Add path support (from fauxhai) (@RanjibDey)
232
+ - Custom Chef formatter for ChefSpec (removes pesky output) (@sethvargo)
233
+
234
+ Bugfixes:
235
+
236
+ - Remove pesky output from Chef 11
237
+
238
+ ## 1.0.0 (April 22, 2013)
239
+
240
+ Features:
241
+
242
+ - Add support for matching file content using Regular Expressions (@ketan)
243
+ - Add support for `ruby_block` matcher (Andrey Vorobiev)
244
+ - Use Fauxhai for node attributes (see 4529c10)
245
+ - Moved `test` and `development` into gemspec for transparency
246
+ - Improve message logging and testing (@tmatilai)
247
+ - Chef 11 compatibility (still Chef 10 compatible)
248
+ - Accept and document new RSpec "expect" syntax
249
+ - Attribute matchers for various providers (@bjoernalbers)
250
+ - Add execute_{bash,csh,perl,python,ruby}_script matchers ([@mlafeldt][])
251
+ - Add group and user resource matchers (@gildegoma)
252
+ - Add support for `yum_package` (Justin Witrick)
253
+ - Add ISSUES.md
254
+ - Add CONTRIBUTING.md
255
+ - Relax gemspec constraints (@juliandunn)
256
+ - Improve documentation and examples
257
+
258
+ Bugfixes:
259
+
260
+ - Fix Rubygems/Bundler 2.0 compatibility issues
261
+ - Upgrade to newest RSpec
262
+ - Fix Chef 11 incompatibility
263
+ - Various documentation fixes
264
+
265
+ ## 0.9.0 (November 10, 2012)
266
+
267
+ Features:
268
+
269
+ - Support added for the `user` resource (#6). Thanks Ranjib Dey.
270
+ - Support for making assertions about notifications added (#49). Thanks to
271
+ Ranjib Dey.
272
+ - New `include_recipe` matcher added (#50). Thanks Ranjib Dey.
273
+ - Support added for the Windows `env` resource (#51). Thanks Ranjib Dey.
274
+ - Convenience methods for common resources added to `ChefRunner` (#51).
275
+ Thanks Ranjib Dey.
276
+ - Further resource convenience methods added (#60). Thanks to Ketan
277
+ Padegaonkar.
278
+ - Support for the `:disable` action added to the service resource (#67).
279
+ Thanks to Chris Lundquist.
280
+ - Add a matcher to assert that a service is not running on boot (#58). Thanks
281
+ to Ketan Padegaonkar.
282
+ - Support added for the `chef_gem` resource (#74). Thanks to Jim Hopp.
283
+
284
+ Bugfixes:
285
+
286
+ - Avoid failure if template path is not writable (#48). Thanks to Augusto
287
+ Becciu and Jim Hopp.
288
+ - Style fix for the README (#55). Thanks Greg Karékinian.
289
+ - Ensure notification assertions work where the resource name contains
290
+ brackets (#57). Thanks Sean Nolen.
291
+ - Unit tests updated to explicitly specify attribute precedence as required
292
+ from Chef 11 (#70). Thanks Mathias Lafeldt.
293
+ - Documentation added to the README for the `create_remote_file` matcher
294
+ (#71). Thanks Mathias Lafeldt.
295
+ - Clarify that `create_file_with_content` matches on partial content (#72).
296
+ Thanks Mathias Lafeldt.
297
+
298
+ ## 0.8.0 (September 14, 2012)
299
+
300
+ Features:
301
+
302
+ - LWRP support added (#40). You can now make assertions about the resources
303
+ created by a provider by telling chefspec to [step into a provider
304
+ implementation](https://github.com/sethvargo/chefspec/tree/v0.8.0#writing-examples-for-lwrps).
305
+ Thanks to Augusto Becciu for implementing this feature.
306
+ - Updated for compatibility with Chef 10.14. Thanks Augusto Becciu.
307
+
308
+ Bugfixes:
309
+
310
+ - Template paths are no longer hard-coded to live under `default` (#32).
311
+ Thanks Augusto Becciu.
312
+
313
+ ## 0.7.0 (August 27, 2012)
314
+
315
+ Features:
316
+
317
+ - Cron resource support added (#33). Thanks Alexander Tamoykin.
318
+ - RSpec dependency
319
+ [bumped to 2.11](https://github.com/rspec/rspec-core/blob/b8197262d143294bf849ab58d1586d24537965ab/Changelog.md)
320
+ which has
321
+ [named subject](http://blog.davidchelimsky.net/2012/05/13/spec-smell-explicit-use-of-subject/)
322
+ support (#37). Thanks Doug Ireton.
323
+
324
+ Bugfixes:
325
+
326
+ - Correctly infer the default `cookbook_path` on Windows (#38). Thanks Torben
327
+ Knerr.
328
+
329
+ ## 0.6.1 (June 21, 2012)
330
+
331
+ Features:
332
+
333
+ - With the
334
+ [release of Chef 10.12.0](http://www.opscode.com/blog/2012/06/19/chef-10-12-0-released/)
335
+ the Chef versioning scheme has changed to make use of the major version
336
+ field. The constraint on chef is now optimistic. Thanks to Robert J. Berger
337
+ of Runa.com for flagging this issue (#28).
338
+
339
+ ## 0.6.0 (May 31, 2012)
340
+
341
+ Features:
342
+
343
+ - Service matchers extended to add support for the `:nothing` and `:enabled`
344
+ actions. Thanks to Steve Lum (#20).
345
+ - Added mock value for `node['languages']` to prevent failure when loading
346
+ cookbooks that expect this attribute to have been populated by OHAI. Thanks
347
+ to Jim Hopp (#23).
348
+ - Matchers added for the `link` resource. Thanks to James Burgess (#25).
349
+ - Matchers added for the `remote_file` resource. Thanks to Matt Pruitt (#26).
350
+
351
+ ## 0.5.0 (February 20, 2012)
352
+
353
+ Features:
354
+
355
+ - Thanks to Chris Griego and Morgan Nelson for these improvements:
356
+ - Support both arrays and raw symbols for actions in the file content matcher (#14).
357
+ - Add support for cookbook_file resources (#14).
358
+ - Support added for `gem_package` resources. Thanks to Jim Hopp from Lookout (#16).
359
+
360
+ Bugfixes:
361
+
362
+ - Set the client_key to nil so that Chef::Search::Query.new doesn't raise (#14). Thanks Chris Griego and Morgan Nelson.
363
+
364
+ ## 0.4.0 (November 14, 2011)
365
+
366
+ Features:
367
+
368
+ - Ruby 1.9.3 is now supported.
369
+ - The `create_file_with_content` matcher now matches on partial content (#13). This is an API behaviour change but
370
+ sufficiently minor and unlikely to break existing specs that I'm not bumping the major version. Thanks Chris Griego
371
+ and Morgan Nelson from getaroom.
372
+
373
+ Bugfixes:
374
+
375
+ - Fixed a bug in the `install_package_at_version` matcher where it would error if the package action was not
376
+ explicitly specified (#13). Thanks Chris Griego and Morgan Nelson from getaroom.
377
+
378
+ ## 0.3.0 (October 2, 2011)
379
+
380
+ Features:
381
+
382
+ - [Added new matcher](https://www.relishapp.com/sethvargo/chefspec/docs/write-examples-for-templates) `create_file_with_content` for verifying Chef `template` resource generated content.
383
+ - [Knife plugin](https://www.relishapp.com/sethvargo/chefspec/docs/generate-placeholder-examples) added to generate placeholder examples.
384
+
385
+ ## 0.2.1 (September 21, 2011)
386
+ Bugfixes:
387
+
388
+ - Fixed typo in 0.2.0 botched release. Pro-tip: run your tests.
389
+
390
+ ## 0.2.0 (September 21, 2011)
391
+
392
+ Features:
393
+
394
+ - Significantly improved performance by not invoking OHAI.
395
+ - ChefRunner constructor now accepts a block to set node attributes.
396
+ - ChefRunner constructor now takes an options hash.
397
+ - Converge now returns a reference to the ChefRunner to support calling converge in a let block.
398
+
399
+ Bugfixes:
400
+
401
+ - Removed LWRP redefinition warnings.
402
+ - Reset run_list between calls to converge.
403
+ - Readable to_s output for failed specs.
404
+
405
+ ## 0.1.0 (August 9, 2011)
406
+
407
+ Features:
408
+
409
+ - Support for Chef 0.1.x (#2)
410
+ - Support MRI 1.9.2 (#3)
411
+
412
+ Bugfixes:
413
+
414
+ - Added specs.
415
+
416
+ ## 0.0.2 (July 31, 2011)
417
+
418
+ Bugfixes:
419
+
420
+ - Corrected gem dependencies.
421
+
422
+ ## 0.0.1 (July 31, 2011)
423
+
424
+ Initial version.
425
+
426
+ - - -
427
+ [@acrmp]: <https://github.com/acrmp> "Andrew Crump GitHub"
428
+ [@andrewgross]: <https://github.com/andrewgross> "Andrew Gross's GitHub"
429
+ [@bknowles]: <https://github.com/bknowles> "Brad Knowles's GitHub"
430
+ [@dafyddcrosby]: <https://github.com/dafyddcrosby> "Dafydd Crosby's GitHub"
431
+ [@DracoAter]: <https://github.com/DracoAter> "Juri Timošin's GitHub"
432
+ [@eliaslevy]: <https://github.com/eliaslevy> "eliaslevy's GitHub"
433
+ [@jimhopp]: <https://github.com/jimhopp> "Jim Hopp's GitHub"
434
+ [@geraud]: <https://github.com/geraud> "Geraud Boyer's GitHub"
435
+ [@mapleoin]: <https://github.com/mapleoin> "Ionuț Arțăriși's GitHub"
436
+ [@mlafeldt]: <https://github.com/mlafeldt> "Mathias Lafeldt's GitHub"
437
+ [@phoolish]: <https://github.com/phoolish> "phoolish's GitHub"
438
+ [@ranjib]: <https://github.com/ranjib> "Ranjib Dey's GitHub"
439
+ [@ryotarai]: <https://github.com/ryotarai> "Ryota Arai's GitHub"
440
+ [@rteabeault]: <https://github.com/rteabeault> "rteabeault's GitHub"
441
+ [@sethvargo]: <https://github.com/sethvargo> "Seth Vargo GitHub"
442
+ [@ssimeonov]: <https://github.com/ssimeonov> "Simeon Simeonov's GitHub"
443
+ [@student]: <https://github.com/student> "Nathan Zook's GitHub"
444
+ [@tmatilai]: <https://github.com/tmatilai> "Teemu Matilainen's GitHub"