chefspec 4.0.2 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (264) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -1
  3. data/CHANGELOG.md +19 -0
  4. data/README.md +84 -87
  5. data/chefspec.gemspec +1 -1
  6. data/examples/apt_package/spec/install_spec.rb +1 -1
  7. data/examples/apt_package/spec/purge_spec.rb +1 -1
  8. data/examples/apt_package/spec/reconfig_spec.rb +1 -1
  9. data/examples/apt_package/spec/remove_spec.rb +1 -1
  10. data/examples/apt_package/spec/upgrade_spec.rb +1 -1
  11. data/examples/attributes/spec/default_spec.rb +1 -1
  12. data/examples/batch/spec/run_spec.rb +1 -1
  13. data/examples/cached/spec/default_spec.rb +1 -1
  14. data/examples/chef_gem/spec/install_spec.rb +1 -1
  15. data/examples/chef_gem/spec/purge_spec.rb +1 -1
  16. data/examples/chef_gem/spec/reconfig_spec.rb +1 -1
  17. data/examples/chef_gem/spec/remove_spec.rb +1 -1
  18. data/examples/chef_gem/spec/upgrade_spec.rb +1 -1
  19. data/examples/compile_time/spec/default_spec.rb +1 -1
  20. data/examples/cookbook_file/spec/create_if_missing_spec.rb +1 -1
  21. data/examples/cookbook_file/spec/create_spec.rb +1 -1
  22. data/examples/cookbook_file/spec/delete_spec.rb +1 -1
  23. data/examples/cookbook_file/spec/touch_spec.rb +1 -1
  24. data/examples/cron/spec/create_spec.rb +1 -1
  25. data/examples/cron/spec/delete_spec.rb +1 -1
  26. data/examples/custom_matcher/libraries/matcher.rb +1 -1
  27. data/examples/custom_matcher/spec/install_spec.rb +1 -1
  28. data/examples/custom_matcher/spec/remove_spec.rb +1 -1
  29. data/examples/deploy/spec/deploy_spec.rb +1 -1
  30. data/examples/deploy/spec/force_deploy_spec.rb +1 -1
  31. data/examples/deploy/spec/rollback_spec.rb +1 -1
  32. data/examples/directory/spec/create_spec.rb +1 -1
  33. data/examples/directory/spec/delete_spec.rb +1 -1
  34. data/examples/do_nothing/spec/default_spec.rb +1 -1
  35. data/examples/dpkg_package/spec/install_spec.rb +1 -1
  36. data/examples/dpkg_package/spec/purge_spec.rb +1 -1
  37. data/examples/dpkg_package/spec/remove_spec.rb +1 -1
  38. data/examples/easy_install_package/spec/install_spec.rb +1 -1
  39. data/examples/easy_install_package/spec/purge_spec.rb +1 -1
  40. data/examples/easy_install_package/spec/remove_spec.rb +1 -1
  41. data/examples/easy_install_package/spec/upgrade_spec.rb +1 -1
  42. data/examples/env/spec/create_spec.rb +1 -1
  43. data/examples/env/spec/delete_spec.rb +1 -1
  44. data/examples/env/spec/modify_spec.rb +1 -1
  45. data/examples/erl_call/spec/run_spec.rb +1 -1
  46. data/examples/execute/spec/run_spec.rb +1 -1
  47. data/examples/expect_exception/spec/compile_error_spec.rb +1 -1
  48. data/examples/expect_exception/spec/converge_error_spec.rb +1 -1
  49. data/examples/expect_exception/spec/no_error_spec.rb +1 -1
  50. data/examples/file/spec/create_if_missing_spec.rb +1 -1
  51. data/examples/file/spec/create_spec.rb +1 -1
  52. data/examples/file/spec/delete_spec.rb +1 -1
  53. data/examples/file/spec/touch_spec.rb +1 -1
  54. data/examples/freebsd_package/spec/install_spec.rb +1 -1
  55. data/examples/freebsd_package/spec/remove_spec.rb +1 -1
  56. data/examples/gem_package/spec/install_spec.rb +1 -1
  57. data/examples/gem_package/spec/purge_spec.rb +1 -1
  58. data/examples/gem_package/spec/reconfig_spec.rb +1 -1
  59. data/examples/gem_package/spec/remove_spec.rb +1 -1
  60. data/examples/gem_package/spec/upgrade_spec.rb +1 -1
  61. data/examples/git/spec/checkout_spec.rb +1 -1
  62. data/examples/git/spec/export_spec.rb +1 -1
  63. data/examples/git/spec/sync_spec.rb +1 -1
  64. data/examples/group/spec/create_spec.rb +1 -1
  65. data/examples/group/spec/manage_spec.rb +1 -1
  66. data/examples/group/spec/modify_spec.rb +1 -1
  67. data/examples/group/spec/remove_spec.rb +1 -1
  68. data/examples/guards/spec/default_spec.rb +1 -1
  69. data/examples/heavy_provider_light_resource/spec/provider_service_spec.rb +1 -1
  70. data/examples/http_request/spec/delete_spec.rb +1 -1
  71. data/examples/http_request/spec/get_spec.rb +1 -1
  72. data/examples/http_request/spec/head_spec.rb +1 -1
  73. data/examples/http_request/spec/options_spec.rb +1 -1
  74. data/examples/http_request/spec/post_spec.rb +1 -1
  75. data/examples/http_request/spec/put_spec.rb +1 -1
  76. data/examples/ifconfig/spec/add_spec.rb +1 -1
  77. data/examples/ifconfig/spec/delete_spec.rb +1 -1
  78. data/examples/ifconfig/spec/disable_spec.rb +1 -1
  79. data/examples/ifconfig/spec/enable_spec.rb +1 -1
  80. data/examples/include_recipe/spec/default_spec.rb +1 -1
  81. data/examples/inherits/spec/default_spec.rb +1 -1
  82. data/examples/ips_package/spec/install_spec.rb +1 -1
  83. data/examples/ips_package/spec/remove_spec.rb +1 -1
  84. data/examples/ips_package/spec/upgrade_spec.rb +1 -1
  85. data/examples/link/spec/create_spec.rb +1 -1
  86. data/examples/link/spec/delete_spec.rb +1 -1
  87. data/examples/link/spec/link_to_spec.rb +1 -1
  88. data/examples/log/spec/write_spec.rb +1 -1
  89. data/examples/macports_package/spec/install_spec.rb +1 -1
  90. data/examples/macports_package/spec/purge_spec.rb +1 -1
  91. data/examples/macports_package/spec/remove_spec.rb +1 -1
  92. data/examples/macports_package/spec/upgrade_spec.rb +1 -1
  93. data/examples/mdadm/spec/assemble_spec.rb +1 -1
  94. data/examples/mdadm/spec/create_spec.rb +1 -1
  95. data/examples/mdadm/spec/stop_spec.rb +1 -1
  96. data/examples/mount/spec/disable_spec.rb +1 -1
  97. data/examples/mount/spec/enable_spec.rb +1 -1
  98. data/examples/mount/spec/mount_spec.rb +1 -1
  99. data/examples/mount/spec/remount_spec.rb +1 -1
  100. data/examples/mount/spec/umount_spec.rb +1 -1
  101. data/examples/multiple_actions/spec/default_spec.rb +1 -1
  102. data/examples/multiple_actions/spec/sequential_spec.rb +4 -1
  103. data/examples/multiple_run_action/spec/default_spec.rb +1 -1
  104. data/examples/notifications/spec/chained_spec.rb +1 -1
  105. data/examples/notifications/spec/default_spec.rb +1 -1
  106. data/examples/notifications/spec/delayed_spec.rb +1 -1
  107. data/examples/notifications/spec/immediately_spec.rb +1 -1
  108. data/examples/ohai/spec/reload_spec.rb +1 -1
  109. data/examples/package/spec/install_spec.rb +1 -1
  110. data/examples/package/spec/purge_spec.rb +1 -1
  111. data/examples/package/spec/reconfig_spec.rb +1 -1
  112. data/examples/package/spec/remove_spec.rb +1 -1
  113. data/examples/package/spec/upgrade_spec.rb +1 -1
  114. data/examples/pacman_package/spec/install_spec.rb +1 -1
  115. data/examples/pacman_package/spec/purge_spec.rb +1 -1
  116. data/examples/pacman_package/spec/remove_spec.rb +1 -1
  117. data/examples/pacman_package/spec/upgrade_spec.rb +1 -1
  118. data/examples/portage_package/spec/install_spec.rb +1 -1
  119. data/examples/portage_package/spec/purge_spec.rb +1 -1
  120. data/examples/portage_package/spec/remove_spec.rb +1 -1
  121. data/examples/portage_package/spec/upgrade_spec.rb +1 -1
  122. data/examples/powershell_script/spec/run_spec.rb +1 -1
  123. data/examples/registry_key/spec/create_if_missing_spec.rb +1 -1
  124. data/examples/registry_key/spec/create_spec.rb +1 -1
  125. data/examples/registry_key/spec/delete_key_spec.rb +1 -1
  126. data/examples/registry_key/spec/delete_spec.rb +1 -1
  127. data/examples/remote_directory/spec/create_if_missing_spec.rb +1 -1
  128. data/examples/remote_directory/spec/create_spec.rb +1 -1
  129. data/examples/remote_directory/spec/delete_spec.rb +1 -1
  130. data/examples/remote_file/spec/create_if_missing_spec.rb +1 -1
  131. data/examples/remote_file/spec/create_spec.rb +1 -1
  132. data/examples/remote_file/spec/delete_spec.rb +1 -1
  133. data/examples/remote_file/spec/touch_spec.rb +1 -1
  134. data/examples/render_file/spec/default_spec.rb +1 -1
  135. data/examples/render_file/spec/template_helpers_spec.rb +1 -1
  136. data/examples/roles/spec/default_spec.rb +1 -1
  137. data/examples/route/spec/add_spec.rb +1 -1
  138. data/examples/route/spec/delete_spec.rb +1 -1
  139. data/examples/rpm_package/spec/install_spec.rb +1 -1
  140. data/examples/rpm_package/spec/remove_spec.rb +1 -1
  141. data/examples/rpm_package/spec/upgrade_spec.rb +1 -1
  142. data/examples/ruby_block/spec/run_spec.rb +1 -1
  143. data/examples/script/spec/run_bash_spec.rb +1 -1
  144. data/examples/script/spec/run_csh_spec.rb +1 -1
  145. data/examples/script/spec/run_perl_spec.rb +1 -1
  146. data/examples/script/spec/run_python_spec.rb +1 -1
  147. data/examples/script/spec/run_ruby_spec.rb +1 -1
  148. data/examples/script/spec/run_script_spec.rb +1 -1
  149. data/examples/server/spec/client_spec.rb +5 -4
  150. data/examples/server/spec/data_bag_spec.rb +10 -9
  151. data/examples/server/spec/environment_spec.rb +5 -4
  152. data/examples/server/spec/node_spec.rb +20 -14
  153. data/examples/server/spec/render_with_cached_spec.rb +1 -2
  154. data/examples/server/spec/role_spec.rb +5 -4
  155. data/examples/server/spec/search_spec.rb +7 -8
  156. data/examples/service/spec/disable_spec.rb +1 -1
  157. data/examples/service/spec/enable_spec.rb +1 -1
  158. data/examples/service/spec/reload_spec.rb +1 -1
  159. data/examples/service/spec/restart_spec.rb +1 -1
  160. data/examples/service/spec/start_spec.rb +1 -1
  161. data/examples/service/spec/stop_spec.rb +1 -1
  162. data/examples/smartos_package/spec/install_spec.rb +1 -1
  163. data/examples/smartos_package/spec/remove_spec.rb +1 -1
  164. data/examples/smartos_package/spec/upgrade_spec.rb +1 -1
  165. data/examples/solaris_package/spec/install_spec.rb +1 -1
  166. data/examples/solaris_package/spec/remove_spec.rb +1 -1
  167. data/examples/state_attrs/spec/default_spec.rb +2 -2
  168. data/examples/step_into/spec/default_spec.rb +5 -2
  169. data/examples/stub_command/spec/default_spec.rb +1 -1
  170. data/examples/stub_data_bag/spec/default_spec.rb +1 -1
  171. data/examples/stub_data_bag_item/spec/default_spec.rb +1 -1
  172. data/examples/stub_search/spec/default_spec.rb +1 -1
  173. data/examples/subscribes/spec/chained_spec.rb +1 -1
  174. data/examples/subscribes/spec/default_spec.rb +1 -1
  175. data/examples/subscribes/spec/delayed_spec.rb +1 -1
  176. data/examples/subscribes/spec/immediately_spec.rb +1 -1
  177. data/examples/subversion/spec/checkout_spec.rb +1 -1
  178. data/examples/subversion/spec/export_spec.rb +1 -1
  179. data/examples/subversion/spec/force_export_spec.rb +1 -1
  180. data/examples/subversion/spec/sync_spec.rb +1 -1
  181. data/examples/template/spec/create_if_missing_spec.rb +1 -1
  182. data/examples/template/spec/create_spec.rb +1 -1
  183. data/examples/template/spec/delete_spec.rb +1 -1
  184. data/examples/template/spec/touch_spec.rb +1 -1
  185. data/examples/use_inline_resources/spec/default_spec.rb +4 -1
  186. data/examples/user/spec/create_spec.rb +1 -1
  187. data/examples/user/spec/lock_spec.rb +1 -1
  188. data/examples/user/spec/manage_spec.rb +1 -1
  189. data/examples/user/spec/modify_spec.rb +1 -1
  190. data/examples/user/spec/remove_spec.rb +1 -1
  191. data/examples/user/spec/unlock_spec.rb +1 -1
  192. data/examples/yum_package/spec/install_spec.rb +1 -1
  193. data/examples/yum_package/spec/purge_spec.rb +1 -1
  194. data/examples/yum_package/spec/remove_spec.rb +1 -1
  195. data/examples/yum_package/spec/upgrade_spec.rb +1 -1
  196. data/features/batch.feature +0 -3
  197. data/features/powershell_script.feature +0 -3
  198. data/features/render_file.feature +1 -6
  199. data/features/server.feature +0 -3
  200. data/features/smartos_package.feature +0 -4
  201. data/features/solaris_package.feature +0 -4
  202. data/features/state_attrs.feature +0 -4
  203. data/features/support/env.rb +0 -7
  204. data/gemfiles/{chef-11.12.0.gemfile → chef-11.16.0.gemfile} +1 -1
  205. data/gemfiles/chef-12.0.0.alpha.gemfile +5 -0
  206. data/lib/chefspec.rb +46 -14
  207. data/lib/chefspec/api.rb +0 -2
  208. data/lib/chefspec/api/apt_package.rb +1 -1
  209. data/lib/chefspec/api/batch.rb +1 -1
  210. data/lib/chefspec/api/chef_gem.rb +1 -1
  211. data/lib/chefspec/api/cookbook_file.rb +1 -1
  212. data/lib/chefspec/api/cron.rb +1 -1
  213. data/lib/chefspec/api/deploy.rb +1 -1
  214. data/lib/chefspec/api/directory.rb +1 -1
  215. data/lib/chefspec/api/dpkg_package.rb +1 -1
  216. data/lib/chefspec/api/easy_install_package.rb +1 -1
  217. data/lib/chefspec/api/env.rb +1 -1
  218. data/lib/chefspec/api/erl_call.rb +1 -1
  219. data/lib/chefspec/api/execute.rb +1 -1
  220. data/lib/chefspec/api/file.rb +1 -1
  221. data/lib/chefspec/api/freebsd_package.rb +1 -1
  222. data/lib/chefspec/api/gem_package.rb +1 -1
  223. data/lib/chefspec/api/git.rb +1 -1
  224. data/lib/chefspec/api/group.rb +1 -1
  225. data/lib/chefspec/api/http_request.rb +1 -1
  226. data/lib/chefspec/api/ifconfig.rb +1 -1
  227. data/lib/chefspec/api/ips_package.rb +1 -1
  228. data/lib/chefspec/api/link.rb +1 -1
  229. data/lib/chefspec/api/log.rb +1 -1
  230. data/lib/chefspec/api/macports_package.rb +1 -1
  231. data/lib/chefspec/api/mdadm.rb +1 -1
  232. data/lib/chefspec/api/mount.rb +1 -1
  233. data/lib/chefspec/api/ohai.rb +2 -2
  234. data/lib/chefspec/api/package.rb +1 -1
  235. data/lib/chefspec/api/pacman_package.rb +1 -1
  236. data/lib/chefspec/api/portage_package.rb +1 -1
  237. data/lib/chefspec/api/powershell_script.rb +1 -1
  238. data/lib/chefspec/api/registry_key.rb +1 -1
  239. data/lib/chefspec/api/remote_directory.rb +4 -4
  240. data/lib/chefspec/api/remote_file.rb +1 -1
  241. data/lib/chefspec/api/route.rb +1 -1
  242. data/lib/chefspec/api/rpm_package.rb +1 -1
  243. data/lib/chefspec/api/ruby_block.rb +1 -1
  244. data/lib/chefspec/api/script.rb +6 -6
  245. data/lib/chefspec/api/service.rb +1 -1
  246. data/lib/chefspec/api/smartos_package.rb +1 -1
  247. data/lib/chefspec/api/solaris_package.rb +1 -1
  248. data/lib/chefspec/api/subversion.rb +1 -1
  249. data/lib/chefspec/api/template.rb +1 -1
  250. data/lib/chefspec/api/user.rb +1 -1
  251. data/lib/chefspec/api/yum_package.rb +1 -1
  252. data/lib/chefspec/coverage/filters.rb +3 -0
  253. data/lib/chefspec/deprecations.rb +19 -123
  254. data/lib/chefspec/macros.rb +2 -2
  255. data/lib/chefspec/matchers/render_file_matcher.rb +2 -2
  256. data/lib/chefspec/matchers/resource_matcher.rb +1 -1
  257. data/lib/chefspec/matchers/state_attrs_matcher.rb +1 -1
  258. data/lib/chefspec/server.rb +4 -361
  259. data/lib/chefspec/server_methods.rb +175 -0
  260. data/lib/chefspec/server_runner.rb +86 -0
  261. data/lib/chefspec/{runner.rb → solo_runner.rb} +92 -43
  262. data/lib/chefspec/version.rb +1 -1
  263. data/spec/unit/{runner_spec.rb → solo_runner_spec.rb} +31 -25
  264. metadata +13 -10
@@ -1,9 +1,9 @@
1
1
  require 'chefspec'
2
2
 
3
- ChefSpec::Runner.define_runner_method(:state_attrs_lwrp)
3
+ ChefSpec.define_matcher(:state_attrs_lwrp)
4
4
 
5
5
  describe 'state_attrs::default' do
6
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
6
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
7
7
  let(:lwrp) { chef_run.state_attrs_lwrp('name') }
8
8
 
9
9
  it 'has the correct state attributes' do
@@ -2,7 +2,7 @@ require 'chefspec'
2
2
 
3
3
  describe 'step_into::default' do
4
4
  context 'without :step_into' do
5
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
5
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
6
6
 
7
7
  it 'does not execute the LWRPs action' do
8
8
  expect(chef_run).to_not write_log('message')
@@ -10,7 +10,10 @@ describe 'step_into::default' do
10
10
  end
11
11
 
12
12
  context 'with :step_into' do
13
- let(:chef_run) { ChefSpec::Runner.new(step_into: ['step_into_lwrp']).converge(described_recipe) }
13
+ let(:chef_run) do
14
+ ChefSpec::SoloRunner.new(step_into: ['step_into_lwrp'])
15
+ .converge(described_recipe)
16
+ end
14
17
 
15
18
  it 'does execute the LWRPs action' do
16
19
  expect(chef_run).to write_log('message')
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'stub_command::default' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  context 'when the command is not stubbed' do
7
7
  it 'raises an exception' do
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'stub_data_bag::default' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  context 'when the data_bag is not stubbed' do
7
7
  it 'raises an exception' do
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'stub_data_bag_item::default' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  context 'when the data_bag_item is not stubbed' do
7
7
  it 'raises an exception' do
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'stub_search::default' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  context 'when the search is not stubbed' do
7
7
  it 'raises an exception' do
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'subscribes::chained' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
  let(:service) { chef_run.service('service') }
6
6
  let(:log) { chef_run.log('log') }
7
7
 
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'subscribes::default' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
  let(:service) { chef_run.service('receiving_resource') }
6
6
 
7
7
  it 'subscribes to the template creation' do
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'subscribes::delayed' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
  let(:service) { chef_run.service('receiving_resource') }
6
6
 
7
7
  it 'subscribes to the template creation' do
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'subscribes::immediately' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
  let(:service) { chef_run.service('receiving_resource') }
6
6
 
7
7
  it 'sends a notification to the service' do
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'subversion::checkout' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  it 'checkouts a subversion with an explicit action' do
7
7
  expect(chef_run).to checkout_subversion('/tmp/explicit_action')
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'subversion::export' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  it 'exports a subversion with an explicit action' do
7
7
  expect(chef_run).to export_subversion('/tmp/explicit_action')
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'subversion::force_export' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  it 'force_exports a subversion with an explicit action' do
7
7
  expect(chef_run).to force_export_subversion('/tmp/explicit_action')
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'subversion::sync' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  it 'syncs a subversion with the default action' do
7
7
  expect(chef_run).to sync_subversion('/tmp/default_action')
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'template::create_if_missing' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  it 'creates a template with an explicit action' do
7
7
  expect(chef_run).to create_template_if_missing('/tmp/explicit_action')
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'template::create' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  it 'creates a template with the default action' do
7
7
  expect(chef_run).to create_template('/tmp/default_action')
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'template::delete' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  it 'deletes a template with an explicit action' do
7
7
  expect(chef_run).to delete_template('/tmp/explicit_action')
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'template::touch' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  it 'touches a template with an explicit action' do
7
7
  expect(chef_run).to touch_template('/tmp/explicit_action')
@@ -1,7 +1,10 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'use_inline_resources::default' do
4
- let(:chef_run) { ChefSpec::Runner.new(step_into: ['use_inline_resources_lwrp']).converge(described_recipe) }
4
+ let(:chef_run) do
5
+ ChefSpec::SoloRunner.new(step_into: ['use_inline_resources_lwrp'])
6
+ .converge(described_recipe)
7
+ end
5
8
 
6
9
  it 'uses the LWRP' do
7
10
  expect(chef_run).to run_use_inline_resources_lwrp('resource')
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'user::create' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  it 'creates a user with the default action' do
7
7
  expect(chef_run).to create_user('default_action')
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'user::lock' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  it 'locks a user with an explicit action' do
7
7
  expect(chef_run).to lock_user('explicit_action')
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'user::manage' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  it 'manages a user with an explicit action' do
7
7
  expect(chef_run).to manage_user('explicit_action')
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'user::modify' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  it 'modifys a user with an explicit action' do
7
7
  expect(chef_run).to modify_user('explicit_action')
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'user::remove' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  it 'removes a user with an explicit action' do
7
7
  expect(chef_run).to remove_user('explicit_action')
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'user::unlock' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  it 'unlocks a user with an explicit action' do
7
7
  expect(chef_run).to unlock_user('explicit_action')
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'yum_package::install' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  it 'installs a yum_package with the default action' do
7
7
  expect(chef_run).to install_yum_package('default_action')
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'yum_package::purge' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  it 'purges a yum_package with an explicit action' do
7
7
  expect(chef_run).to purge_yum_package('explicit_action')
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'yum_package::remove' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  it 'removes a yum_package with an explicit action' do
7
7
  expect(chef_run).to remove_yum_package('explicit_action')
@@ -1,7 +1,7 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'yum_package::upgrade' do
4
- let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
4
+ let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
5
5
 
6
6
  it 'upgrades a yum_package with an explicit action' do
7
7
  expect(chef_run).to upgrade_yum_package('explicit_action')
@@ -1,6 +1,3 @@
1
- @not_chef_11_0_0
2
- @not_chef_11_2_0
3
- @not_chef_11_4_4
4
1
  Feature: The batch matcher
5
2
  Background:
6
3
  * I am using the "batch" cookbook
@@ -1,6 +1,3 @@
1
- @not_chef_11_0_0
2
- @not_chef_11_2_0
3
- @not_chef_11_4_4
4
1
  Feature: The powershell_script matcher
5
2
  Background:
6
3
  * I am using the "powershell_script" cookbook
@@ -5,12 +5,7 @@ Feature: The render_file matcher
5
5
  Scenario Outline: Running specs
6
6
  * I successfully run `rspec spec/<Matcher>_spec.rb`
7
7
  * the output should contain "0 failures"
8
- Examples:
9
- | Matcher |
10
- | default |
11
- @not_chef_11_0_0
12
- @not_chef_11_2_0
13
- @not_chef_11_4_4
14
8
  Examples:
15
9
  | Matcher |
10
+ | default |
16
11
  | template_helpers |
@@ -1,6 +1,3 @@
1
- # Need to spawn a sub-process; otherwise future tests will fail because the
2
- # server is running
3
- @spawn
4
1
  Feature: The ChefSpec server
5
2
  Background:
6
3
  * I am using the "server" cookbook
@@ -1,7 +1,3 @@
1
- @not_chef_11_0_0
2
- @not_chef_11_2_0
3
- @not_chef_11_4_4
4
- @not_chef_11_6_0
5
1
  Feature: The smartos_package matcher
6
2
  Background:
7
3
  * I am using the "smartos_package" cookbook
@@ -1,7 +1,3 @@
1
- @not_chef_11_0_0
2
- @not_chef_11_2_0
3
- @not_chef_11_4_4
4
- @not_chef_11_6_0
5
1
  Feature: The solaris_package matcher
6
2
  Background:
7
3
  * I am using the "solaris_package" cookbook
@@ -1,7 +1,3 @@
1
- @not_chef_11_0_0
2
- @not_chef_11_2_0
3
- @not_chef_11_4_4
4
- @not_chef_11_6_0
5
1
  Feature: Testing state attributes
6
2
  Background:
7
3
  * I am using the "state_attrs" cookbook
@@ -23,13 +23,6 @@ Before do
23
23
  @dirs = [Dir.mktmpdir]
24
24
  end
25
25
 
26
- Before('@spawn') do
27
- Aruba.process = Aruba::SpawnProcess
28
-
29
- # Raise the timeout
30
- @aruba_timeout_seconds = 15
31
- end
32
-
33
26
  After do
34
27
  # Cleanup the test files
35
28
  FileUtils.rm_rf(@dirs.first)
@@ -1,5 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'chef', '~> 11.12.0'
3
+ gem 'chef', '~> 11.16.0'
4
4
 
5
5
  gemspec :path => '..'
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'chef', '~> 12.0.0.alpha'
4
+
5
+ gemspec :path => '..'
data/lib/chefspec.rb CHANGED
@@ -1,5 +1,47 @@
1
1
  require 'rspec'
2
2
 
3
+ module ChefSpec
4
+ #
5
+ # Defines a new runner method on the Chef runner.
6
+ #
7
+ # @param [Symbol] resource_name
8
+ # the name of the resource to define a method
9
+ #
10
+ # @return [self]
11
+ #
12
+ def define_matcher(resource_name)
13
+ matchers[resource_name.to_sym] = Proc.new do |identity|
14
+ find_resource(resource_name, identity)
15
+ end
16
+
17
+ self
18
+ end
19
+ module_function :define_matcher
20
+
21
+ #
22
+ # The source root of the ChefSpec gem. This is useful when requiring files
23
+ # that are relative to the root of the project.
24
+ #
25
+ # @return [Pathname]
26
+ #
27
+ def root
28
+ @root ||= Pathname.new(File.expand_path('../../', __FILE__))
29
+ end
30
+ module_function :root
31
+
32
+ protected
33
+
34
+ #
35
+ # The list of custom defined matchers.
36
+ #
37
+ # @return [Hash<String, Proc>]
38
+ #
39
+ def matchers
40
+ @matchers ||= {}
41
+ end
42
+ module_function :matchers
43
+ end
44
+
3
45
  require_relative 'chefspec/extensions/chef/client'
4
46
  require_relative 'chefspec/extensions/chef/conditional'
5
47
  require_relative 'chefspec/extensions/chef/data_query'
@@ -22,6 +64,7 @@ require_relative 'chefspec/stubs/search_registry'
22
64
  require_relative 'chefspec/stubs/search_stub'
23
65
 
24
66
  require_relative 'chefspec/api'
67
+ require_relative 'chefspec/cacher'
25
68
  require_relative 'chefspec/coverage'
26
69
  require_relative 'chefspec/errors'
27
70
  require_relative 'chefspec/expect_exception'
@@ -30,20 +73,9 @@ require_relative 'chefspec/macros'
30
73
  require_relative 'chefspec/matchers'
31
74
  require_relative 'chefspec/renderer'
32
75
  require_relative 'chefspec/rspec'
33
- require_relative 'chefspec/runner'
76
+ require_relative 'chefspec/server_runner'
77
+ require_relative 'chefspec/solo_runner'
34
78
  require_relative 'chefspec/util'
35
79
  require_relative 'chefspec/version'
36
80
 
37
- module ChefSpec
38
- extend self
39
-
40
- #
41
- # The source root of the ChefSpec gem. This is useful when requiring files
42
- # that are relative to the root of the project.
43
- #
44
- # @return [Pathname]
45
- #
46
- def root
47
- @root ||= Pathname.new(File.expand_path('../../', __FILE__))
48
- end
49
- end
81
+ require_relative 'chefspec/deprecations'