chef 13.6.4-universal-mingw32 → 13.7.16-universal-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 (269) hide show
  1. checksums.yaml +5 -5
  2. data/VERSION +1 -1
  3. data/acceptance/Gemfile +2 -2
  4. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +1 -6
  5. data/distro/powershell/chef/chef.psm1 +1 -5
  6. data/lib/chef/api_client.rb +5 -5
  7. data/lib/chef/api_client_v1.rb +6 -6
  8. data/lib/chef/application.rb +3 -2
  9. data/lib/chef/application/knife.rb +4 -0
  10. data/lib/chef/chef_class.rb +2 -2
  11. data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  12. data/lib/chef/chef_fs/data_handler/data_handler_base.rb +2 -4
  13. data/lib/chef/client.rb +3 -3
  14. data/lib/chef/cookbook/chefignore.rb +4 -0
  15. data/lib/chef/cookbook/cookbook_collection.rb +2 -2
  16. data/lib/chef/cookbook/metadata.rb +2 -2
  17. data/lib/chef/data_bag.rb +1 -1
  18. data/lib/chef/deprecated.rb +10 -0
  19. data/lib/chef/event_dispatch/base.rb +2 -2
  20. data/lib/chef/http.rb +10 -10
  21. data/lib/chef/knife.rb +16 -15
  22. data/lib/chef/knife/configure.rb +12 -36
  23. data/lib/chef/knife/cookbook_upload.rb +4 -4
  24. data/lib/chef/knife/core/bootstrap_context.rb +1 -1
  25. data/lib/chef/knife/core/status_presenter.rb +6 -2
  26. data/lib/chef/knife/core/ui.rb +1 -1
  27. data/lib/chef/knife/data_bag_secret_options.rb +1 -1
  28. data/lib/chef/knife/data_bag_show.rb +1 -1
  29. data/lib/chef/knife/edit.rb +1 -1
  30. data/lib/chef/knife/ssh.rb +47 -35
  31. data/lib/chef/knife/user_create.rb +2 -0
  32. data/lib/chef/knife/user_delete.rb +2 -0
  33. data/lib/chef/knife/user_edit.rb +2 -0
  34. data/lib/chef/knife/user_reregister.rb +2 -0
  35. data/lib/chef/knife/user_show.rb +2 -0
  36. data/lib/chef/mixin/powershell_out.rb +1 -1
  37. data/lib/chef/node/attribute.rb +46 -70
  38. data/lib/chef/node/attribute_collections.rb +5 -5
  39. data/lib/chef/node/common_api.rb +1 -1
  40. data/lib/chef/node/immutable_collections.rb +180 -23
  41. data/lib/chef/node/mixin/state_tracking.rb +6 -6
  42. data/lib/chef/node_map.rb +63 -45
  43. data/lib/chef/property.rb +8 -8
  44. data/lib/chef/provider.rb +9 -3
  45. data/lib/chef/provider/apt_preference.rb +1 -1
  46. data/lib/chef/provider/apt_repository.rb +1 -1
  47. data/lib/chef/provider/apt_update.rb +1 -1
  48. data/lib/chef/provider/file.rb +1 -1
  49. data/lib/chef/provider/group/dscl.rb +6 -2
  50. data/lib/chef/provider/ifconfig.rb +96 -34
  51. data/lib/chef/provider/launchd.rb +0 -1
  52. data/lib/chef/provider/log.rb +3 -13
  53. data/lib/chef/provider/package/dnf.rb +1 -1
  54. data/lib/chef/provider/package/smartos.rb +2 -2
  55. data/lib/chef/provider/reboot.rb +12 -0
  56. data/lib/chef/provider/remote_directory.rb +1 -1
  57. data/lib/chef/provider/remote_file/http.rb +3 -2
  58. data/lib/chef/provider/service/solaris.rb +6 -2
  59. data/lib/chef/provider/systemd_unit.rb +34 -33
  60. data/lib/chef/provider/user/dscl.rb +1 -1
  61. data/lib/chef/provider/windows_path.rb +6 -7
  62. data/lib/chef/provider/windows_task.rb +89 -33
  63. data/lib/chef/provider/yum_repository.rb +24 -9
  64. data/lib/chef/resource/apt_package.rb +1 -0
  65. data/lib/chef/resource/apt_preference.rb +4 -0
  66. data/lib/chef/resource/apt_repository.rb +4 -0
  67. data/lib/chef/resource/apt_update.rb +3 -0
  68. data/lib/chef/resource/bash.rb +4 -0
  69. data/lib/chef/resource/batch.rb +5 -0
  70. data/lib/chef/resource/bff_package.rb +4 -0
  71. data/lib/chef/resource/breakpoint.rb +6 -0
  72. data/lib/chef/resource/cab_package.rb +6 -6
  73. data/lib/chef/resource/chef_gem.rb +13 -0
  74. data/lib/chef/resource/chocolatey_package.rb +4 -6
  75. data/lib/chef/resource/cookbook_file.rb +13 -15
  76. data/lib/chef/resource/cron.rb +2 -0
  77. data/lib/chef/resource/csh.rb +4 -0
  78. data/lib/chef/resource/directory.rb +8 -26
  79. data/lib/chef/resource/dnf_package.rb +5 -0
  80. data/lib/chef/resource/dpkg_package.rb +2 -0
  81. data/lib/chef/resource/dsc_resource.rb +5 -0
  82. data/lib/chef/resource/dsc_script.rb +6 -0
  83. data/lib/chef/resource/env.rb +3 -0
  84. data/lib/chef/resource/erl_call.rb +5 -0
  85. data/lib/chef/resource/execute.rb +5 -1
  86. data/lib/chef/resource/file.rb +2 -1
  87. data/lib/chef/resource/file/verification.rb +10 -0
  88. data/lib/chef/resource/freebsd_package.rb +10 -2
  89. data/lib/chef/resource/gem_package.rb +2 -0
  90. data/lib/chef/resource/git.rb +2 -0
  91. data/lib/chef/resource/group.rb +1 -0
  92. data/lib/chef/resource/homebrew_package.rb +3 -0
  93. data/lib/chef/resource/http_request.rb +2 -0
  94. data/lib/chef/resource/ifconfig.rb +23 -150
  95. data/lib/chef/resource/ips_package.rb +1 -0
  96. data/lib/chef/resource/ksh.rb +6 -0
  97. data/lib/chef/resource/launchd.rb +5 -4
  98. data/lib/chef/resource/link.rb +10 -0
  99. data/lib/chef/resource/log.rb +19 -46
  100. data/lib/chef/resource/macports_package.rb +1 -0
  101. data/lib/chef/resource/mdadm.rb +4 -0
  102. data/lib/chef/resource/mount.rb +1 -0
  103. data/lib/chef/resource/msu_package.rb +7 -8
  104. data/lib/chef/resource/ohai.rb +2 -0
  105. data/lib/chef/resource/openbsd_package.rb +3 -0
  106. data/lib/chef/resource/osx_profile.rb +10 -40
  107. data/lib/chef/resource/package.rb +6 -0
  108. data/lib/chef/resource/pacman_package.rb +1 -0
  109. data/lib/chef/resource/paludis_package.rb +3 -0
  110. data/lib/chef/resource/perl.rb +4 -0
  111. data/lib/chef/resource/portage_package.rb +1 -0
  112. data/lib/chef/resource/powershell_package.rb +5 -0
  113. data/lib/chef/resource/powershell_script.rb +8 -0
  114. data/lib/chef/resource/python.rb +4 -0
  115. data/lib/chef/resource/reboot.rb +14 -20
  116. data/lib/chef/resource/registry_key.rb +1 -0
  117. data/lib/chef/resource/remote_directory.rb +3 -0
  118. data/lib/chef/resource/remote_file.rb +2 -0
  119. data/lib/chef/resource/resource_notification.rb +17 -0
  120. data/lib/chef/resource/route.rb +1 -0
  121. data/lib/chef/resource/rpm_package.rb +1 -0
  122. data/lib/chef/resource/ruby.rb +4 -0
  123. data/lib/chef/resource/ruby_block.rb +3 -0
  124. data/lib/chef/resource/script.rb +4 -0
  125. data/lib/chef/resource/service.rb +1 -0
  126. data/lib/chef/resource/smartos_package.rb +1 -0
  127. data/lib/chef/resource/solaris_package.rb +1 -0
  128. data/lib/chef/resource/subversion.rb +1 -0
  129. data/lib/chef/resource/systemd_unit.rb +6 -0
  130. data/lib/chef/resource/template.rb +9 -0
  131. data/lib/chef/resource/user.rb +1 -0
  132. data/lib/chef/resource/windows_package.rb +2 -0
  133. data/lib/chef/resource/windows_path.rb +5 -10
  134. data/lib/chef/resource/windows_service.rb +3 -0
  135. data/lib/chef/resource/windows_task.rb +66 -87
  136. data/lib/chef/resource/yum_repository.rb +26 -22
  137. data/lib/chef/resource/zypper_package.rb +2 -0
  138. data/lib/chef/resource/zypper_repository.rb +6 -1
  139. data/lib/chef/run_context.rb +8 -2
  140. data/lib/chef/server_api.rb +1 -0
  141. data/lib/chef/util/selinux.rb +5 -4
  142. data/lib/chef/version.rb +1 -1
  143. data/lib/chef/version/platform.rb +18 -0
  144. data/lib/chef/version_constraint/platform.rb +2 -0
  145. data/spec/data/client.d_00/02-strings.rb +2 -0
  146. data/spec/functional/assets/chefinittest +6 -4
  147. data/spec/functional/knife/ssh_spec.rb +54 -7
  148. data/spec/functional/resource/bff_spec.rb +3 -3
  149. data/spec/functional/resource/ifconfig_spec.rb +1 -1
  150. data/spec/functional/resource/mount_spec.rb +7 -3
  151. data/spec/functional/resource/user/useradd_spec.rb +4 -4
  152. data/spec/functional/resource/windows_task_spec.rb +6 -6
  153. data/spec/functional/win32/security_spec.rb +7 -33
  154. data/spec/integration/knife/data_bag_show_spec.rb +1 -1
  155. data/spec/integration/recipes/noop_resource_spec.rb +1 -1
  156. data/spec/integration/recipes/recipe_dsl_spec.rb +30 -30
  157. data/spec/integration/recipes/resource_action_spec.rb +2 -2
  158. data/spec/integration/recipes/resource_converge_if_changed_spec.rb +71 -15
  159. data/spec/spec_helper.rb +19 -0
  160. data/spec/support/shared/functional/execute_resource.rb +1 -1
  161. data/spec/support/shared/unit/application_dot_d.rb +2 -0
  162. data/spec/support/shared/unit/execute_resource.rb +8 -1
  163. data/spec/support/shared/unit/provider/file.rb +9 -1
  164. data/spec/unit/chef_fs/data_handler/data_bag_item_data_handler.rb +10 -7
  165. data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +2 -2
  166. data/spec/unit/client_spec.rb +1 -1
  167. data/spec/unit/deprecated_spec.rb +4 -4
  168. data/spec/unit/http_spec.rb +9 -0
  169. data/spec/unit/knife/bootstrap_spec.rb +5 -0
  170. data/spec/unit/knife/configure_spec.rb +10 -60
  171. data/spec/unit/knife/data_bag_create_spec.rb +40 -2
  172. data/spec/unit/knife/data_bag_show_spec.rb +16 -2
  173. data/spec/unit/knife/ssh_spec.rb +85 -39
  174. data/spec/unit/knife_spec.rb +2 -0
  175. data/spec/unit/lwrp_spec.rb +5 -3
  176. data/spec/unit/mixin/powershell_type_coercions_spec.rb +7 -6
  177. data/spec/unit/node/attribute_spec.rb +55 -24
  178. data/spec/unit/node/immutable_collections_spec.rb +28 -14
  179. data/spec/unit/node/vivid_mash_spec.rb +27 -10
  180. data/spec/unit/node_map_spec.rb +34 -0
  181. data/spec/unit/property_spec.rb +13 -13
  182. data/spec/unit/provider/group/dscl_spec.rb +14 -5
  183. data/spec/unit/provider/ifconfig_spec.rb +10 -3
  184. data/spec/unit/provider/remote_file/http_spec.rb +23 -19
  185. data/spec/unit/provider/service/solaris_smf_service_spec.rb +6 -5
  186. data/spec/unit/provider/user/dscl_spec.rb +26 -0
  187. data/spec/unit/provider/windows_task_spec.rb +148 -4
  188. data/spec/unit/provider_spec.rb +1 -1
  189. data/spec/unit/resource/apt_package_spec.rb +1 -1
  190. data/spec/unit/resource/bash_spec.rb +8 -10
  191. data/spec/unit/resource/batch_spec.rb +1 -1
  192. data/spec/unit/resource/cab_package_spec.rb +19 -1
  193. data/spec/unit/resource/chef_gem_spec.rb +3 -3
  194. data/spec/unit/resource/chocolatey_package_spec.rb +10 -10
  195. data/spec/unit/resource/conditional_spec.rb +2 -2
  196. data/spec/unit/resource/cookbook_file_spec.rb +24 -30
  197. data/spec/unit/resource/cron_spec.rb +79 -82
  198. data/spec/unit/resource/csh_spec.rb +8 -10
  199. data/spec/unit/resource/deploy_spec.rb +1 -1
  200. data/spec/unit/resource/directory_spec.rb +28 -31
  201. data/spec/unit/resource/dnf_package_spec.rb +9 -9
  202. data/spec/unit/resource/env_spec.rb +7 -7
  203. data/spec/unit/resource/erl_call_spec.rb +9 -9
  204. data/spec/unit/resource/execute_spec.rb +6 -6
  205. data/spec/unit/resource/file/verification_spec.rb +18 -4
  206. data/spec/unit/resource/file_spec.rb +53 -56
  207. data/spec/unit/resource/freebsd_package_spec.rb +7 -7
  208. data/spec/unit/resource/gem_package_spec.rb +1 -1
  209. data/spec/unit/resource/git_spec.rb +7 -9
  210. data/spec/unit/resource/group_spec.rb +60 -70
  211. data/spec/unit/resource/http_request_spec.rb +16 -19
  212. data/spec/unit/resource/ifconfig_spec.rb +3 -3
  213. data/spec/unit/resource/ips_package_spec.rb +3 -5
  214. data/spec/unit/resource/ksh_spec.rb +8 -10
  215. data/spec/unit/resource/launchd_spec.rb +17 -10
  216. data/spec/unit/resource/link_spec.rb +53 -53
  217. data/spec/unit/resource/log_spec.rb +24 -28
  218. data/spec/unit/resource/mdadm_spec.rb +42 -44
  219. data/spec/unit/resource/mount_spec.rb +97 -99
  220. data/spec/unit/resource/msu_package_spec.rb +14 -8
  221. data/spec/unit/resource/ohai_spec.rb +15 -17
  222. data/spec/unit/resource/openbsd_package_spec.rb +3 -3
  223. data/spec/unit/resource/osx_profile_spec.rb +7 -7
  224. data/spec/unit/resource/package_spec.rb +36 -40
  225. data/spec/unit/resource/perl_spec.rb +8 -11
  226. data/spec/unit/resource/portage_package_spec.rb +8 -10
  227. data/spec/unit/resource/powershell_package_spec.rb +9 -9
  228. data/spec/unit/resource/python_spec.rb +8 -11
  229. data/spec/unit/resource/reboot_spec.rb +50 -0
  230. data/spec/unit/resource/registry_key_spec.rb +84 -98
  231. data/spec/unit/resource/remote_directory_spec.rb +40 -42
  232. data/spec/unit/resource/remote_file_spec.rb +78 -80
  233. data/spec/unit/resource/route_spec.rb +42 -44
  234. data/spec/unit/resource/rpm_package_spec.rb +5 -7
  235. data/spec/unit/resource/ruby_block_spec.rb +14 -16
  236. data/spec/unit/resource/ruby_spec.rb +8 -12
  237. data/spec/unit/resource/scm_spec.rb +66 -69
  238. data/spec/unit/resource/script_spec.rb +1 -1
  239. data/spec/unit/resource/service_spec.rb +80 -83
  240. data/spec/unit/resource/smartos_package_spec.rb +5 -0
  241. data/spec/unit/resource/solaris_package_spec.rb +3 -5
  242. data/spec/unit/resource/subversion_spec.rb +18 -16
  243. data/spec/unit/resource/systemd_unit_spec.rb +50 -54
  244. data/spec/unit/resource/template_spec.rb +56 -61
  245. data/spec/unit/resource/user_spec.rb +47 -53
  246. data/spec/unit/resource/windows_package_spec.rb +1 -1
  247. data/spec/unit/resource/windows_path_spec.rb +11 -8
  248. data/spec/unit/resource/windows_task_spec.rb +129 -33
  249. data/spec/unit/resource/yum_package_spec.rb +1 -1
  250. data/spec/unit/resource/yum_repository_spec.rb +61 -8
  251. data/spec/unit/resource/zypper_repository_spec.rb +17 -18
  252. data/spec/unit/util/selinux_spec.rb +3 -6
  253. data/tasks/dependencies.rb +0 -5
  254. data/tasks/rspec.rb +1 -1
  255. metadata +7 -19
  256. data/acceptance/.DS_Store +0 -0
  257. data/acceptance/.bundle/config +0 -2
  258. data/acceptance/top-cookbooks/.kitchen.docker.yml +0 -13
  259. data/acceptance/top-cookbooks/.kitchen.git.yml +0 -11
  260. data/distro/.DS_Store +0 -0
  261. data/lib/.DS_Store +0 -0
  262. data/lib/chef/.DS_Store +0 -0
  263. data/lib/chef/knife/.DS_Store +0 -0
  264. data/lib/chef/mixin/.DS_Store +0 -0
  265. data/spec/.DS_Store +0 -0
  266. data/spec/functional/.DS_Store +0 -0
  267. data/spec/support/.DS_Store +0 -0
  268. data/spec/unit/.DS_Store +0 -0
  269. data/tasks/.DS_Store +0 -0
@@ -99,7 +99,7 @@ describe Chef::Resource::Conditional do
99
99
  expect(@conditional.continue?).to be_falsey
100
100
  end
101
101
 
102
- it "should log a warning" do
102
+ it "logs a warning" do
103
103
  expect(Chef::Log).to receive(:warn).with("Command 'false' timed out")
104
104
  @conditional.continue?
105
105
  end
@@ -202,7 +202,7 @@ describe Chef::Resource::Conditional do
202
202
  expect(@conditional.continue?).to be_truthy
203
203
  end
204
204
 
205
- it "should log a warning" do
205
+ it "logs a warning" do
206
206
  expect(Chef::Log).to receive(:warn).with("Command 'false' timed out")
207
207
  @conditional.continue?
208
208
  end
@@ -20,51 +20,45 @@
20
20
  require "spec_helper"
21
21
 
22
22
  describe Chef::Resource::CookbookFile do
23
- before do
24
- @cookbook_file = Chef::Resource::CookbookFile.new("sourcecode_tarball.tgz")
25
- end
26
-
27
- it "uses the name parameter for the source parameter" do
28
- expect(@cookbook_file.name).to eq("sourcecode_tarball.tgz")
29
- end
23
+ let(:resource) { Chef::Resource::CookbookFile.new("/foo/bar/sourcecode_tarball.tgz") }
30
24
 
31
- it "has a source parameter" do
32
- @cookbook_file.name("config_file.conf")
33
- expect(@cookbook_file.name).to eq("config_file.conf")
25
+ it "uses the basepath of the resourc ename for the source property" do
26
+ expect(resource.source).to eq("sourcecode_tarball.tgz")
34
27
  end
35
28
 
36
- it "defaults to a nil cookbook parameter (current cookbook will be used)" do
37
- expect(@cookbook_file.cookbook).to be_nil
29
+ it "source property accepts Strings" do
30
+ resource.name("config_file.conf")
31
+ expect(resource.source).to eq("config_file.conf")
38
32
  end
39
33
 
40
- it "has a cookbook parameter" do
41
- @cookbook_file.cookbook("munin")
42
- expect(@cookbook_file.cookbook).to eq("munin")
34
+ it "cookbook property defaults to nil (current cookbook will be used)" do
35
+ expect(resource.cookbook).to be_nil
43
36
  end
44
37
 
45
- it "sets the provider to Chef::Provider::CookbookFile" do
46
- expect(@cookbook_file.provider).to eq(Chef::Provider::CookbookFile)
38
+ it "has a cookbook property that accepts Strings" do
39
+ resource.cookbook("munin")
40
+ expect(resource.cookbook).to eq("munin")
47
41
  end
48
42
 
49
43
  describe "when it has a backup number, group, mode, owner, source, checksum, and cookbook on nix or path, rights, deny_rights, checksum on windows" do
50
44
  before do
51
45
  if Chef::Platform.windows?
52
- @cookbook_file.path("C:/temp/origin/file.txt")
53
- @cookbook_file.rights(:read, "Everyone")
54
- @cookbook_file.deny_rights(:full_control, "Clumsy_Sam")
46
+ resource.path("C:/temp/origin/file.txt")
47
+ resource.rights(:read, "Everyone")
48
+ resource.deny_rights(:full_control, "Clumsy_Sam")
55
49
  else
56
- @cookbook_file.path("/tmp/origin/file.txt")
57
- @cookbook_file.group("wheel")
58
- @cookbook_file.mode("0664")
59
- @cookbook_file.owner("root")
60
- @cookbook_file.source("/tmp/foo.txt")
61
- @cookbook_file.cookbook("/tmp/cookbooks/cooked.rb")
50
+ resource.path("/tmp/origin/file.txt")
51
+ resource.group("wheel")
52
+ resource.mode("0664")
53
+ resource.owner("root")
54
+ resource.source("/tmp/foo.txt")
55
+ resource.cookbook("/tmp/cookbooks/cooked.rb")
62
56
  end
63
- @cookbook_file.checksum("1" * 64)
57
+ resource.checksum("1" * 64)
64
58
  end
65
59
 
66
60
  it "describes the state" do
67
- state = @cookbook_file.state_for_resource_reporter
61
+ state = resource.state_for_resource_reporter
68
62
  if Chef::Platform.windows?
69
63
  puts state
70
64
  expect(state[:rights]).to eq([{ :permissions => :read, :principals => "Everyone" }])
@@ -79,9 +73,9 @@ describe Chef::Resource::CookbookFile do
79
73
 
80
74
  it "returns the path as its identity" do
81
75
  if Chef::Platform.windows?
82
- expect(@cookbook_file.identity).to eq("C:/temp/origin/file.txt")
76
+ expect(resource.identity).to eq("C:/temp/origin/file.txt")
83
77
  else
84
- expect(@cookbook_file.identity).to eq("/tmp/origin/file.txt")
78
+ expect(resource.identity).to eq("/tmp/origin/file.txt")
85
79
  end
86
80
  end
87
81
  end
@@ -20,157 +20,154 @@
20
20
  require "spec_helper"
21
21
 
22
22
  describe Chef::Resource::Cron do
23
+ let(:resource) { Chef::Resource::Cron.new("cronify") }
23
24
 
24
- before(:each) do
25
- @resource = Chef::Resource::Cron.new("cronify")
25
+ it "creates a new Chef::Resource::Cron" do
26
+ expect(resource).to be_a_kind_of(Chef::Resource)
27
+ expect(resource).to be_a_kind_of(Chef::Resource::Cron)
26
28
  end
27
29
 
28
- it "should create a new Chef::Resource::Cron" do
29
- expect(@resource).to be_a_kind_of(Chef::Resource)
30
- expect(@resource).to be_a_kind_of(Chef::Resource::Cron)
30
+ it "has a name property" do
31
+ expect(resource.name).to eql("cronify")
31
32
  end
32
33
 
33
- it "should have a name" do
34
- expect(@resource.name).to eql("cronify")
34
+ it "has a default action of [:create]" do
35
+ expect(resource.action).to eql([:create])
35
36
  end
36
37
 
37
- it "should have a default action of 'create'" do
38
- expect(@resource.action).to eql([:create])
38
+ it "accepts create or delete for action" do
39
+ expect { resource.action :create }.not_to raise_error
40
+ expect { resource.action :delete }.not_to raise_error
41
+ expect { resource.action :lolcat }.to raise_error(ArgumentError)
39
42
  end
40
43
 
41
- it "should accept create or delete for action" do
42
- expect { @resource.action :create }.not_to raise_error
43
- expect { @resource.action :delete }.not_to raise_error
44
- expect { @resource.action :lolcat }.to raise_error(ArgumentError)
44
+ it "allows you to set a command" do
45
+ resource.command "/bin/true"
46
+ expect(resource.command).to eql("/bin/true")
45
47
  end
46
48
 
47
- it "should allow you to set a command" do
48
- @resource.command "/bin/true"
49
- expect(@resource.command).to eql("/bin/true")
49
+ it "allows you to set a user" do
50
+ resource.user "daemon"
51
+ expect(resource.user).to eql("daemon")
50
52
  end
51
53
 
52
- it "should allow you to set a user" do
53
- @resource.user "daemon"
54
- expect(@resource.user).to eql("daemon")
54
+ it "allows you to specify the minute" do
55
+ resource.minute "30"
56
+ expect(resource.minute).to eql("30")
55
57
  end
56
58
 
57
- it "should allow you to specify the minute" do
58
- @resource.minute "30"
59
- expect(@resource.minute).to eql("30")
59
+ it "allows you to specify the hour" do
60
+ resource.hour "6"
61
+ expect(resource.hour).to eql("6")
60
62
  end
61
63
 
62
- it "should allow you to specify the hour" do
63
- @resource.hour "6"
64
- expect(@resource.hour).to eql("6")
64
+ it "allows you to specify the day" do
65
+ resource.day "10"
66
+ expect(resource.day).to eql("10")
65
67
  end
66
68
 
67
- it "should allow you to specify the day" do
68
- @resource.day "10"
69
- expect(@resource.day).to eql("10")
69
+ it "allows you to specify the month" do
70
+ resource.month "10"
71
+ expect(resource.month).to eql("10")
70
72
  end
71
73
 
72
- it "should allow you to specify the month" do
73
- @resource.month "10"
74
- expect(@resource.month).to eql("10")
74
+ it "allows you to specify the weekday" do
75
+ resource.weekday "2"
76
+ expect(resource.weekday).to eql("2")
75
77
  end
76
78
 
77
- it "should allow you to specify the weekday" do
78
- @resource.weekday "2"
79
- expect(@resource.weekday).to eql("2")
79
+ it "allows you to specify the mailto variable" do
80
+ resource.mailto "test@example.com"
81
+ expect(resource.mailto).to eql("test@example.com")
80
82
  end
81
83
 
82
- it "should allow you to specify the mailto variable" do
83
- @resource.mailto "test@example.com"
84
- expect(@resource.mailto).to eql("test@example.com")
84
+ it "allows you to specify the path" do
85
+ resource.path "/usr/bin:/usr/sbin"
86
+ expect(resource.path).to eql("/usr/bin:/usr/sbin")
85
87
  end
86
88
 
87
- it "should allow you to specify the path" do
88
- @resource.path "/usr/bin:/usr/sbin"
89
- expect(@resource.path).to eql("/usr/bin:/usr/sbin")
89
+ it "allows you to specify the home directory" do
90
+ resource.home "/root"
91
+ expect(resource.home).to eql("/root")
90
92
  end
91
93
 
92
- it "should allow you to specify the home directory" do
93
- @resource.home "/root"
94
- expect(@resource.home).to eql("/root")
94
+ it "allows you to specify the shell to run the command with" do
95
+ resource.shell "/bin/zsh"
96
+ expect(resource.shell).to eql("/bin/zsh")
95
97
  end
96
98
 
97
- it "should allow you to specify the shell to run the command with" do
98
- @resource.shell "/bin/zsh"
99
- expect(@resource.shell).to eql("/bin/zsh")
100
- end
101
-
102
- it "should allow you to specify environment variables hash" do
99
+ it "allows you to specify environment variables hash" do
103
100
  env = { "TEST" => "LOL" }
104
- @resource.environment env
105
- expect(@resource.environment).to eql(env)
101
+ resource.environment env
102
+ expect(resource.environment).to eql(env)
106
103
  end
107
104
 
108
- it "should allow * for all time and date values" do
105
+ it "allows * for all time and date values" do
109
106
  %w{minute hour day month weekday}.each do |x|
110
- expect(@resource.send(x, "*")).to eql("*")
107
+ expect(resource.send(x, "*")).to eql("*")
111
108
  end
112
109
  end
113
110
 
114
- it "should allow ranges for all time and date values" do
111
+ it "allows ranges for all time and date values" do
115
112
  %w{minute hour day month weekday}.each do |x|
116
- expect(@resource.send(x, "1-2,5")).to eql("1-2,5")
113
+ expect(resource.send(x, "1-2,5")).to eql("1-2,5")
117
114
  end
118
115
  end
119
116
 
120
- it "should have a default value of * for all time and date values" do
117
+ it "has a default value of * for all time and date values" do
121
118
  %w{minute hour day month weekday}.each do |x|
122
- expect(@resource.send(x)).to eql("*")
119
+ expect(resource.send(x)).to eql("*")
123
120
  end
124
121
  end
125
122
 
126
- it "should have a default value of root for the user" do
127
- expect(@resource.user).to eql("root")
123
+ it "has a default value of root for the user" do
124
+ expect(resource.user).to eql("root")
128
125
  end
129
126
 
130
- it "should reject any minute over 59" do
131
- expect { @resource.minute "60" }.to raise_error(RangeError)
127
+ it "rejects any minute over 59" do
128
+ expect { resource.minute "60" }.to raise_error(RangeError)
132
129
  end
133
130
 
134
- it "should reject any hour over 23" do
135
- expect { @resource.hour "24" }.to raise_error(RangeError)
131
+ it "rejects any hour over 23" do
132
+ expect { resource.hour "24" }.to raise_error(RangeError)
136
133
  end
137
134
 
138
- it "should reject any day over 31" do
139
- expect { @resource.day "32" }.to raise_error(RangeError)
135
+ it "rejects any day over 31" do
136
+ expect { resource.day "32" }.to raise_error(RangeError)
140
137
  end
141
138
 
142
- it "should reject any month over 12" do
143
- expect { @resource.month "13" }.to raise_error(RangeError)
139
+ it "rejects any month over 12" do
140
+ expect { resource.month "13" }.to raise_error(RangeError)
144
141
  end
145
142
 
146
143
  describe "weekday" do
147
- it "should reject any weekday over 7" do
148
- expect { @resource.weekday "8" }.to raise_error(RangeError)
144
+ it "rejects any weekday over 7" do
145
+ expect { resource.weekday "8" }.to raise_error(RangeError)
149
146
  end
150
- it "should reject any symbols which don't represent day of week" do
151
- expect { @resource.weekday :foo }.to raise_error(RangeError)
147
+ it "rejects any symbols which don't represent day of week" do
148
+ expect { resource.weekday :foo }.to raise_error(RangeError)
152
149
  end
153
150
  end
154
151
 
155
- it "should convert integer schedule values to a string" do
152
+ it "converts integer schedule values to a string" do
156
153
  %w{minute hour day month weekday}.each do |x|
157
- expect(@resource.send(x, 5)).to eql("5")
154
+ expect(resource.send(x, 5)).to eql("5")
158
155
  end
159
156
  end
160
157
 
161
158
  describe "when it has a time (minute, hour, day, month, weeekend) and user" do
162
159
  before do
163
- @resource.command("tackle")
164
- @resource.minute("1")
165
- @resource.hour("2")
166
- @resource.day("3")
167
- @resource.month("4")
168
- @resource.weekday("5")
169
- @resource.user("root")
160
+ resource.command("tackle")
161
+ resource.minute("1")
162
+ resource.hour("2")
163
+ resource.day("3")
164
+ resource.month("4")
165
+ resource.weekday("5")
166
+ resource.user("root")
170
167
  end
171
168
 
172
169
  it "describes the state" do
173
- state = @resource.state_for_resource_reporter
170
+ state = resource.state_for_resource_reporter
174
171
  expect(state[:minute]).to eq("1")
175
172
  expect(state[:hour]).to eq("2")
176
173
  expect(state[:day]).to eq("3")
@@ -180,7 +177,7 @@ describe Chef::Resource::Cron do
180
177
  end
181
178
 
182
179
  it "returns the command as its identity" do
183
- expect(@resource.identity).to eq("tackle")
180
+ expect(resource.identity).to eq("tackle")
184
181
  end
185
182
  end
186
183
  end
@@ -20,21 +20,19 @@ require "spec_helper"
20
20
 
21
21
  describe Chef::Resource::Csh do
22
22
 
23
- before(:each) do
24
- @resource = Chef::Resource::Csh.new("fakey_fakerton")
25
- end
23
+ let(:resource) { Chef::Resource::Csh.new("fakey_fakerton") }
26
24
 
27
- it "should create a new Chef::Resource::Csh" do
28
- expect(@resource).to be_a_kind_of(Chef::Resource)
29
- expect(@resource).to be_a_kind_of(Chef::Resource::Csh)
25
+ it "creates a new Chef::Resource::Csh" do
26
+ expect(resource).to be_a_kind_of(Chef::Resource)
27
+ expect(resource).to be_a_kind_of(Chef::Resource::Csh)
30
28
  end
31
29
 
32
- it "should have a resource name of :csh" do
33
- expect(@resource.resource_name).to eql(:csh)
30
+ it "has a resource name of :csh" do
31
+ expect(resource.resource_name).to eql(:csh)
34
32
  end
35
33
 
36
- it "should have an interpreter of csh" do
37
- expect(@resource.interpreter).to eql("csh")
34
+ it "has an interpreter of csh" do
35
+ expect(resource.interpreter).to eql("csh")
38
36
  end
39
37
 
40
38
  end
@@ -248,7 +248,7 @@ describe Chef::Resource::Deploy do
248
248
  end
249
249
 
250
250
  describe "when it has no timeout attribute" do
251
- it "should have no default timeout" do
251
+ it "has no default timeout" do
252
252
  expect(@resource.timeout).to be_nil
253
253
  end
254
254
  end
@@ -20,63 +20,60 @@
20
20
  require "spec_helper"
21
21
 
22
22
  describe Chef::Resource::Directory do
23
+ let(:resource) { Chef::Resource::Directory.new("fakey_fakerton") }
23
24
 
24
- before(:each) do
25
- @resource = Chef::Resource::Directory.new("fakey_fakerton")
25
+ it "creates a new Chef::Resource::Directory" do
26
+ expect(resource).to be_a_kind_of(Chef::Resource)
27
+ expect(resource).to be_a_kind_of(Chef::Resource::Directory)
26
28
  end
27
29
 
28
- it "should create a new Chef::Resource::Directory" do
29
- expect(@resource).to be_a_kind_of(Chef::Resource)
30
- expect(@resource).to be_a_kind_of(Chef::Resource::Directory)
30
+ it "has a name" do
31
+ expect(resource.name).to eql("fakey_fakerton")
31
32
  end
32
33
 
33
- it "should have a name" do
34
- expect(@resource.name).to eql("fakey_fakerton")
34
+ it "has a default action of 'create'" do
35
+ expect(resource.action).to eql([:create])
35
36
  end
36
37
 
37
- it "should have a default action of 'create'" do
38
- expect(@resource.action).to eql([:create])
38
+ it "accepts create or delete for action" do
39
+ expect { resource.action :create }.not_to raise_error
40
+ expect { resource.action :delete }.not_to raise_error
41
+ expect { resource.action :blues }.to raise_error(ArgumentError)
39
42
  end
40
43
 
41
- it "should accept create or delete for action" do
42
- expect { @resource.action :create }.not_to raise_error
43
- expect { @resource.action :delete }.not_to raise_error
44
- expect { @resource.action :blues }.to raise_error(ArgumentError)
44
+ it "uses the object name as the path by default" do
45
+ expect(resource.path).to eql("fakey_fakerton")
45
46
  end
46
47
 
47
- it "should use the object name as the path by default" do
48
- expect(@resource.path).to eql("fakey_fakerton")
48
+ it "accepts a string as the path" do
49
+ expect { resource.path "/tmp" }.not_to raise_error
50
+ expect(resource.path).to eql("/tmp")
51
+ expect { resource.path Hash.new }.to raise_error(ArgumentError)
49
52
  end
50
53
 
51
- it "should accept a string as the path" do
52
- expect { @resource.path "/tmp" }.not_to raise_error
53
- expect(@resource.path).to eql("/tmp")
54
- expect { @resource.path Hash.new }.to raise_error(ArgumentError)
55
- end
56
-
57
- it "should allow you to have specify whether the action is recursive with true/false" do
58
- expect { @resource.recursive true }.not_to raise_error
59
- expect { @resource.recursive false }.not_to raise_error
60
- expect { @resource.recursive "monkey" }.to raise_error(ArgumentError)
54
+ it "allows you to have specify whether the action is recursive with true/false" do
55
+ expect { resource.recursive true }.not_to raise_error
56
+ expect { resource.recursive false }.not_to raise_error
57
+ expect { resource.recursive "monkey" }.to raise_error(ArgumentError)
61
58
  end
62
59
 
63
60
  describe "when it has group, mode, and owner" do
64
61
  before do
65
- @resource.path("/tmp/foo/bar/")
66
- @resource.group("wheel")
67
- @resource.mode("0664")
68
- @resource.owner("root")
62
+ resource.path("/tmp/foo/bar/")
63
+ resource.group("wheel")
64
+ resource.mode("0664")
65
+ resource.owner("root")
69
66
  end
70
67
 
71
68
  it "describes its state" do
72
- state = @resource.state_for_resource_reporter
69
+ state = resource.state_for_resource_reporter
73
70
  expect(state[:group]).to eq("wheel")
74
71
  expect(state[:mode]).to eq("0664")
75
72
  expect(state[:owner]).to eq("root")
76
73
  end
77
74
 
78
75
  it "returns the directory path as its identity" do
79
- expect(@resource.identity).to eq("/tmp/foo/bar/")
76
+ expect(resource.identity).to eq("/tmp/foo/bar/")
80
77
  end
81
78
  end
82
79
  end