chef 12.18.31 → 13.0.118

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 (611) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +15 -11
  3. data/README.md +13 -13
  4. data/Rakefile +1 -19
  5. data/VERSION +1 -1
  6. data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +1 -1
  7. data/acceptance/Gemfile +8 -5
  8. data/acceptance/Gemfile.lock +90 -81
  9. data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +1 -1
  10. data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +1 -1
  11. data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +4 -0
  12. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +9 -8
  13. data/chef-universal-mingw32.gemspec +2 -3
  14. data/chef.gemspec +8 -7
  15. data/lib/chef/api_client.rb +8 -15
  16. data/lib/chef/api_client_v1.rb +9 -11
  17. data/lib/chef/application/apply.rb +8 -10
  18. data/lib/chef/application/client.rb +1 -1
  19. data/lib/chef/application/exit_code.rb +11 -82
  20. data/lib/chef/application/knife.rb +2 -2
  21. data/lib/chef/application/solo.rb +0 -1
  22. data/lib/chef/application/windows_service.rb +36 -37
  23. data/lib/chef/application/windows_service_manager.rb +1 -1
  24. data/lib/chef/application.rb +15 -25
  25. data/lib/chef/audit/audit_event_proxy.rb +2 -2
  26. data/lib/chef/audit/control_group_data.rb +1 -1
  27. data/lib/chef/blacklist.rb +81 -0
  28. data/lib/chef/chef_class.rb +1 -0
  29. data/lib/chef/chef_fs/chef_fs_data_store.rb +6 -8
  30. data/lib/chef/chef_fs/command_line.rb +15 -16
  31. data/lib/chef/chef_fs/data_handler/client_data_handler.rb +1 -1
  32. data/lib/chef/chef_fs/data_handler/container_data_handler.rb +1 -1
  33. data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +1 -1
  34. data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  35. data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +1 -1
  36. data/lib/chef/chef_fs/data_handler/group_data_handler.rb +1 -1
  37. data/lib/chef/chef_fs/data_handler/node_data_handler.rb +1 -1
  38. data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -1
  39. data/lib/chef/chef_fs/data_handler/role_data_handler.rb +1 -1
  40. data/lib/chef/chef_fs/data_handler/user_data_handler.rb +1 -1
  41. data/lib/chef/chef_fs/file_pattern.rb +2 -2
  42. data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +2 -2
  43. data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb +6 -2
  44. data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +18 -32
  45. data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +8 -10
  46. data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +5 -1
  47. data/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb +8 -10
  48. data/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb +10 -12
  49. data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +28 -30
  50. data/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb +1 -1
  51. data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +27 -29
  52. data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +29 -26
  53. data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +5 -1
  54. data/lib/chef/chef_fs/file_system/memory/memory_file.rb +1 -1
  55. data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +10 -12
  56. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +13 -16
  57. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +9 -13
  58. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +2 -0
  59. data/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb +1 -1
  60. data/lib/chef/chef_fs/file_system/repository/nodes_dir.rb +3 -0
  61. data/lib/chef/chef_fs/file_system.rb +1 -1
  62. data/lib/chef/chef_fs/parallelizer.rb +9 -11
  63. data/lib/chef/client.rb +47 -11
  64. data/lib/chef/config_fetcher.rb +4 -4
  65. data/lib/chef/constants.rb +1 -1
  66. data/lib/chef/cookbook/cookbook_version_loader.rb +26 -115
  67. data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
  68. data/lib/chef/cookbook/gem_installer.rb +10 -6
  69. data/lib/chef/cookbook/manifest_v0.rb +68 -0
  70. data/lib/chef/cookbook/manifest_v2.rb +41 -0
  71. data/lib/chef/cookbook/metadata.rb +25 -134
  72. data/lib/chef/cookbook/remote_file_vendor.rb +3 -3
  73. data/lib/chef/cookbook/synchronizer.rb +24 -21
  74. data/lib/chef/cookbook/syntax_check.rb +1 -1
  75. data/lib/chef/cookbook_manifest.rb +91 -65
  76. data/lib/chef/cookbook_site_streaming_uploader.rb +7 -9
  77. data/lib/chef/cookbook_uploader.rb +1 -1
  78. data/lib/chef/cookbook_version.rb +69 -157
  79. data/lib/chef/data_bag.rb +1 -7
  80. data/lib/chef/data_bag_item.rb +5 -10
  81. data/lib/chef/data_collector/messages.rb +2 -0
  82. data/lib/chef/data_collector/resource_report.rb +32 -4
  83. data/lib/chef/data_collector.rb +3 -4
  84. data/lib/chef/decorator/unchain.rb +0 -16
  85. data/lib/chef/decorator.rb +1 -1
  86. data/lib/chef/deprecated.rb +53 -19
  87. data/lib/chef/dsl/audit.rb +2 -2
  88. data/lib/chef/dsl/declare_resource.rb +11 -17
  89. data/lib/chef/dsl/platform_introspection.rb +29 -31
  90. data/lib/chef/dsl/reboot_pending.rb +1 -1
  91. data/lib/chef/dsl/recipe.rb +1 -4
  92. data/lib/chef/dsl/resources.rb +4 -13
  93. data/lib/chef/encrypted_data_bag_item.rb +2 -2
  94. data/lib/chef/environment.rb +9 -16
  95. data/lib/chef/event_dispatch/base.rb +16 -0
  96. data/lib/chef/event_loggers/windows_eventlog.rb +1 -1
  97. data/lib/chef/exceptions.rb +6 -10
  98. data/lib/chef/file_access_control/unix.rb +14 -14
  99. data/lib/chef/file_access_control/windows.rb +1 -1
  100. data/lib/chef/formatters/error_description.rb +18 -1
  101. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +4 -5
  102. data/lib/chef/formatters/error_mapper.rb +6 -6
  103. data/lib/chef/guard_interpreter/default_guard_interpreter.rb +4 -2
  104. data/lib/chef/http/api_versions.rb +54 -0
  105. data/lib/chef/http/authenticator.rb +15 -6
  106. data/lib/chef/http/json_output.rb +4 -1
  107. data/lib/chef/http/socketless_chef_zero_client.rb +1 -0
  108. data/lib/chef/http/validate_content_length.rb +2 -2
  109. data/lib/chef/http.rb +39 -0
  110. data/lib/chef/json_compat.rb +7 -103
  111. data/lib/chef/key.rb +5 -10
  112. data/lib/chef/knife/bootstrap/templates/chef-full.erb +6 -6
  113. data/lib/chef/knife/bootstrap.rb +6 -0
  114. data/lib/chef/knife/configure.rb +1 -3
  115. data/lib/chef/knife/configure_client.rb +1 -3
  116. data/lib/chef/knife/cookbook_create.rb +1 -434
  117. data/lib/chef/knife/cookbook_download.rb +3 -4
  118. data/lib/chef/knife/cookbook_show.rb +7 -3
  119. data/lib/chef/knife/cookbook_site_install.rb +2 -2
  120. data/lib/chef/knife/core/bootstrap_context.rb +8 -7
  121. data/lib/chef/knife/core/cookbook_scm_repo.rb +2 -2
  122. data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
  123. data/lib/chef/knife/core/status_presenter.rb +1 -1
  124. data/lib/chef/knife/core/subcommand_loader.rb +2 -32
  125. data/lib/chef/knife/core/ui.rb +20 -27
  126. data/lib/chef/knife/data_bag_create.rb +6 -4
  127. data/lib/chef/knife/data_bag_secret_options.rb +1 -1
  128. data/lib/chef/knife/deps.rb +32 -34
  129. data/lib/chef/knife/edit.rb +1 -1
  130. data/lib/chef/knife/help.rb +1 -1
  131. data/lib/chef/knife/list.rb +1 -1
  132. data/lib/chef/knife/search.rb +9 -20
  133. data/lib/chef/knife/ssh.rb +62 -36
  134. data/lib/chef/knife/ssl_check.rb +1 -1
  135. data/lib/chef/knife/user_delete.rb +1 -1
  136. data/lib/chef/knife/xargs.rb +1 -1
  137. data/lib/chef/knife.rb +6 -7
  138. data/lib/chef/mash.rb +1 -1
  139. data/lib/chef/mixin/create_path.rb +3 -5
  140. data/lib/chef/mixin/from_file.rb +2 -2
  141. data/lib/chef/mixin/get_source_from_package.rb +2 -2
  142. data/lib/chef/mixin/notifying_block.rb +7 -9
  143. data/lib/chef/mixin/params_validate.rb +9 -8
  144. data/lib/chef/mixin/path_sanity.rb +17 -19
  145. data/lib/chef/mixin/securable.rb +1 -1
  146. data/lib/chef/mixin/shell_out.rb +33 -29
  147. data/lib/chef/mixin/unformatter.rb +2 -2
  148. data/lib/chef/mixin/uris.rb +4 -6
  149. data/lib/chef/mixin/versioned_api.rb +84 -0
  150. data/lib/chef/mixin/which.rb +25 -8
  151. data/lib/chef/mixin/windows_architecture_helper.rb +2 -2
  152. data/lib/chef/mixin/xml_escape.rb +3 -5
  153. data/lib/chef/mixins.rb +0 -1
  154. data/lib/chef/monkey_patches/webrick-utils.rb +1 -1
  155. data/lib/chef/node/attribute.rb +9 -32
  156. data/lib/chef/node/attribute_collections.rb +1 -19
  157. data/lib/chef/node/common_api.rb +5 -7
  158. data/lib/chef/node/immutable_collections.rb +42 -38
  159. data/lib/chef/node/mixin/immutablize_array.rb +1 -1
  160. data/lib/chef/node/mixin/immutablize_hash.rb +1 -1
  161. data/lib/chef/node.rb +21 -20
  162. data/lib/chef/node_map.rb +2 -5
  163. data/lib/chef/org.rb +10 -17
  164. data/lib/chef/platform/provider_mapping.rb +2 -169
  165. data/lib/chef/platform/query_helpers.rb +1 -1
  166. data/lib/chef/platform/rebooter.rb +1 -2
  167. data/lib/chef/policy_builder/expand_node_object.rb +3 -29
  168. data/lib/chef/policy_builder/policyfile.rb +8 -6
  169. data/lib/chef/property.rb +66 -80
  170. data/lib/chef/provider/apt_repository.rb +6 -10
  171. data/lib/chef/provider/apt_update.rb +1 -7
  172. data/lib/chef/provider/batch.rb +1 -1
  173. data/lib/chef/provider/breakpoint.rb +2 -2
  174. data/lib/chef/provider/cookbook_file.rb +3 -9
  175. data/lib/chef/provider/cron.rb +42 -60
  176. data/lib/chef/provider/deploy/revision.rb +3 -5
  177. data/lib/chef/provider/deploy.rb +82 -88
  178. data/lib/chef/provider/directory.rb +33 -37
  179. data/lib/chef/provider/dsc_resource.rb +23 -11
  180. data/lib/chef/provider/dsc_script.rb +1 -5
  181. data/lib/chef/provider/env/windows.rb +5 -1
  182. data/lib/chef/provider/env.rb +32 -30
  183. data/lib/chef/provider/erl_call.rb +15 -47
  184. data/lib/chef/provider/execute.rb +7 -8
  185. data/lib/chef/provider/file.rb +49 -61
  186. data/lib/chef/provider/git.rb +56 -60
  187. data/lib/chef/provider/group.rb +1 -7
  188. data/lib/chef/provider/http_request.rb +37 -41
  189. data/lib/chef/provider/ifconfig/redhat.rb +1 -1
  190. data/lib/chef/provider/ifconfig.rb +0 -6
  191. data/lib/chef/provider/launchd.rb +6 -2
  192. data/lib/chef/provider/link.rb +51 -55
  193. data/lib/chef/provider/log.rb +3 -7
  194. data/lib/chef/provider/lwrp_base.rb +0 -9
  195. data/lib/chef/provider/mdadm.rb +25 -33
  196. data/lib/chef/provider/mount/aix.rb +2 -2
  197. data/lib/chef/provider/mount/mount.rb +2 -2
  198. data/lib/chef/provider/mount.rb +1 -5
  199. data/lib/chef/provider/noop.rb +1 -1
  200. data/lib/chef/provider/ohai.rb +1 -7
  201. data/lib/chef/provider/osx_profile.rb +24 -29
  202. data/lib/chef/provider/package/aix.rb +55 -53
  203. data/lib/chef/provider/package/apt.rb +15 -13
  204. data/lib/chef/provider/package/cab.rb +48 -20
  205. data/lib/chef/provider/package/chocolatey.rb +9 -10
  206. data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
  207. data/lib/chef/provider/package/dnf/python_helper.rb +63 -26
  208. data/lib/chef/provider/package/dnf/version.rb +1 -1
  209. data/lib/chef/provider/package/dnf.rb +21 -19
  210. data/lib/chef/provider/package/dpkg.rb +8 -9
  211. data/lib/chef/provider/package/freebsd/base.rb +10 -10
  212. data/lib/chef/provider/package/freebsd/pkg.rb +15 -15
  213. data/lib/chef/provider/package/freebsd/pkgng.rb +13 -15
  214. data/lib/chef/provider/package/freebsd/port.rb +7 -7
  215. data/lib/chef/provider/package/homebrew.rb +11 -10
  216. data/lib/chef/provider/package/ips.rb +18 -24
  217. data/lib/chef/provider/package/macports.rb +23 -23
  218. data/lib/chef/provider/package/msu.rb +11 -12
  219. data/lib/chef/provider/package/openbsd.rb +25 -22
  220. data/lib/chef/provider/package/pacman.rb +16 -17
  221. data/lib/chef/provider/package/paludis.rb +26 -27
  222. data/lib/chef/provider/package/portage.rb +22 -23
  223. data/lib/chef/provider/package/powershell.rb +17 -17
  224. data/lib/chef/provider/package/rpm.rb +25 -26
  225. data/lib/chef/provider/package/rubygems.rb +64 -62
  226. data/lib/chef/provider/package/smartos.rb +16 -16
  227. data/lib/chef/provider/package/solaris.rb +44 -45
  228. data/lib/chef/provider/package/windows/exe.rb +6 -6
  229. data/lib/chef/provider/package/windows/msi.rb +7 -7
  230. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +9 -3
  231. data/lib/chef/provider/package/windows.rb +3 -3
  232. data/lib/chef/provider/package/yum/rpm_utils.rb +34 -34
  233. data/lib/chef/provider/package/yum/yum_cache.rb +12 -12
  234. data/lib/chef/provider/package/yum.rb +319 -269
  235. data/lib/chef/provider/package/zypper.rb +10 -20
  236. data/lib/chef/provider/package.rb +71 -63
  237. data/lib/chef/provider/powershell_script.rb +15 -7
  238. data/lib/chef/provider/reboot.rb +10 -14
  239. data/lib/chef/provider/registry_key.rb +39 -43
  240. data/lib/chef/provider/remote_directory.rb +3 -15
  241. data/lib/chef/provider/remote_file.rb +3 -9
  242. data/lib/chef/provider/route.rb +1 -7
  243. data/lib/chef/provider/ruby_block.rb +4 -8
  244. data/lib/chef/provider/script.rb +42 -6
  245. data/lib/chef/provider/service/aix.rb +1 -5
  246. data/lib/chef/provider/service/debian.rb +15 -21
  247. data/lib/chef/provider/service/freebsd.rb +0 -1
  248. data/lib/chef/provider/service/gentoo.rb +0 -1
  249. data/lib/chef/provider/service/init.rb +0 -1
  250. data/lib/chef/provider/service/insserv.rb +2 -2
  251. data/lib/chef/provider/service/openbsd.rb +0 -1
  252. data/lib/chef/provider/service/redhat.rb +2 -2
  253. data/lib/chef/provider/service/simple.rb +0 -5
  254. data/lib/chef/provider/service/solaris.rb +5 -4
  255. data/lib/chef/provider/service/systemd.rb +1 -1
  256. data/lib/chef/provider/service/upstart.rb +10 -12
  257. data/lib/chef/provider/service/windows.rb +1 -5
  258. data/lib/chef/provider/service.rb +51 -58
  259. data/lib/chef/provider/subversion.rb +40 -46
  260. data/lib/chef/provider/systemd_unit.rb +2 -0
  261. data/lib/chef/provider/template/content.rb +24 -1
  262. data/lib/chef/provider/template.rb +3 -9
  263. data/lib/chef/provider/user/dscl.rb +3 -3
  264. data/lib/chef/provider/user/linux.rb +6 -5
  265. data/lib/chef/provider/user/pw.rb +4 -10
  266. data/lib/chef/provider/user/solaris.rb +2 -2
  267. data/lib/chef/provider/user/useradd.rb +5 -5
  268. data/lib/chef/provider/user.rb +43 -59
  269. data/lib/chef/provider/whyrun_safe_ruby_block.rb +4 -4
  270. data/lib/chef/provider/windows_task.rb +418 -0
  271. data/lib/chef/provider/yum_repository.rb +3 -6
  272. data/lib/chef/provider.rb +63 -115
  273. data/lib/chef/provider_resolver.rb +8 -34
  274. data/lib/chef/providers.rb +1 -1
  275. data/lib/chef/recipe.rb +9 -1
  276. data/lib/chef/resource/action_class.rb +13 -17
  277. data/lib/chef/resource/apt_repository.rb +0 -1
  278. data/lib/chef/resource/apt_update.rb +3 -1
  279. data/lib/chef/resource/chef_gem.rb +4 -11
  280. data/lib/chef/resource/chocolatey_package.rb +4 -1
  281. data/lib/chef/resource/dnf_package.rb +6 -3
  282. data/lib/chef/resource/dsc_resource.rb +9 -1
  283. data/lib/chef/resource/execute.rb +66 -19
  284. data/lib/chef/resource/file/verification/systemd_unit.rb +67 -0
  285. data/lib/chef/resource/file/verification.rb +2 -7
  286. data/lib/chef/resource/freebsd_package.rb +1 -1
  287. data/lib/chef/resource/gem_package.rb +16 -2
  288. data/lib/chef/resource/launchd.rb +3 -3
  289. data/lib/chef/resource/lwrp_base.rb +0 -2
  290. data/lib/chef/resource/mount.rb +5 -12
  291. data/lib/chef/resource/package.rb +2 -2
  292. data/lib/chef/resource/powershell_script.rb +1 -1
  293. data/lib/chef/resource/registry_key.rb +1 -1
  294. data/lib/chef/resource/script.rb +8 -34
  295. data/lib/chef/resource/service.rb +15 -13
  296. data/lib/chef/resource/systemd_unit.rb +5 -0
  297. data/lib/chef/resource/user/aix_user.rb +1 -1
  298. data/lib/chef/resource/user/dscl_user.rb +1 -1
  299. data/lib/chef/resource/user/linux_user.rb +1 -10
  300. data/lib/chef/resource/user/pw_user.rb +1 -1
  301. data/lib/chef/resource/user/solaris_user.rb +1 -1
  302. data/lib/chef/resource/user/windows_user.rb +1 -1
  303. data/lib/chef/resource/user.rb +1 -19
  304. data/lib/chef/resource/windows_package.rb +4 -1
  305. data/lib/chef/resource/windows_task.rb +237 -0
  306. data/lib/chef/resource/yum_package.rb +13 -4
  307. data/lib/chef/resource/yum_repository.rb +0 -1
  308. data/lib/chef/resource/zypper_package.rb +2 -0
  309. data/lib/chef/resource.rb +90 -202
  310. data/lib/chef/resource_builder.rb +1 -65
  311. data/lib/chef/resource_collection/resource_collection_serialization.rb +11 -4
  312. data/lib/chef/resource_collection/resource_list.rb +6 -0
  313. data/lib/chef/resource_collection/resource_set.rb +44 -17
  314. data/lib/chef/resource_collection.rb +10 -0
  315. data/lib/chef/resource_reporter.rb +1 -1
  316. data/lib/chef/resource_resolver.rb +1 -25
  317. data/lib/chef/resources.rb +1 -1
  318. data/lib/chef/role.rb +0 -6
  319. data/lib/chef/run_context/cookbook_compiler.rb +49 -5
  320. data/lib/chef/run_context.rb +4 -25
  321. data/lib/chef/run_list/run_list_item.rb +1 -1
  322. data/lib/chef/run_list/versioned_recipe_list.rb +14 -12
  323. data/lib/chef/search/query.rb +26 -31
  324. data/lib/chef/server_api.rb +2 -0
  325. data/lib/chef/{resource/easy_install_package.rb → server_api_versions.rb} +18 -10
  326. data/lib/chef/shell/ext.rb +3 -3
  327. data/lib/chef/shell/shell_session.rb +14 -4
  328. data/lib/chef/shell.rb +32 -7
  329. data/lib/chef/user.rb +9 -16
  330. data/lib/chef/user_v1.rb +9 -16
  331. data/lib/chef/util/diff.rb +1 -1
  332. data/lib/chef/util/dsc/lcm_output_parser.rb +1 -1
  333. data/lib/chef/util/selinux.rb +1 -1
  334. data/lib/chef/util/windows/net_group.rb +18 -30
  335. data/lib/chef/util/windows/net_use.rb +7 -11
  336. data/lib/chef/util/windows/net_user.rb +12 -18
  337. data/lib/chef/util/windows/volume.rb +9 -15
  338. data/lib/chef/version.rb +1 -1
  339. data/lib/chef/version_class.rb +1 -1
  340. data/lib/chef/win32/api/file.rb +25 -31
  341. data/lib/chef/win32/api/installer.rb +2 -2
  342. data/lib/chef/win32/api.rb +4 -6
  343. data/lib/chef/win32/file.rb +4 -6
  344. data/lib/chef/win32/registry.rb +9 -9
  345. data/lib/chef/win32/security/acl.rb +2 -2
  346. data/lib/chef/win32/security/sid.rb +5 -0
  347. data/lib/chef/win32/security.rb +2 -2
  348. data/lib/chef/win32/unicode.rb +2 -2
  349. data/lib/chef/win32/version.rb +1 -1
  350. data/lib/chef.rb +1 -2
  351. data/spec/data/cookbooks/openldap/templates/default/openldap_nested_variable_stuff.erb +1 -0
  352. data/spec/data/lwrp/providers/buck_passer.rb +1 -1
  353. data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
  354. data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
  355. data/spec/data/lwrp/providers/inline_compiler.rb +0 -2
  356. data/spec/data/lwrp/resources/buck_passer.rb +5 -0
  357. data/spec/data/lwrp/resources/buck_passer_2.rb +3 -0
  358. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +3 -0
  359. data/spec/data/lwrp/resources/inline_compiler.rb +3 -0
  360. data/spec/data/lwrp/resources/monkey_name_printer.rb +5 -0
  361. data/spec/data/lwrp/resources/paint_drying_watcher.rb +3 -0
  362. data/spec/data/lwrp/resources/thumb_twiddler.rb +3 -0
  363. data/spec/data/prefer_metadata_json/metadata.json +51 -0
  364. data/spec/data/prefer_metadata_json/metadata.rb +6 -0
  365. data/spec/data/prefer_metadata_json/recipes/default.rb +0 -0
  366. data/spec/data/root_alias_cookbooks/dup_attr/attributes/default.rb +1 -0
  367. data/spec/data/root_alias_cookbooks/dup_attr/attributes.rb +1 -0
  368. data/spec/data/root_alias_cookbooks/dup_attr/metadata.rb +2 -0
  369. data/spec/data/root_alias_cookbooks/dup_attr/recipe.rb +3 -0
  370. data/spec/data/root_alias_cookbooks/dup_recipe/attributes.rb +1 -0
  371. data/spec/data/root_alias_cookbooks/dup_recipe/metadata.rb +2 -0
  372. data/spec/data/root_alias_cookbooks/dup_recipe/recipe.rb +3 -0
  373. data/spec/data/root_alias_cookbooks/dup_recipe/recipes/default.rb +3 -0
  374. data/spec/data/root_alias_cookbooks/simple/attributes.rb +1 -0
  375. data/spec/data/root_alias_cookbooks/simple/metadata.rb +2 -0
  376. data/spec/data/root_alias_cookbooks/simple/recipe.rb +3 -0
  377. data/spec/data/shef-config.rb +11 -10
  378. data/spec/functional/knife/ssh_spec.rb +34 -6
  379. data/spec/functional/rebooter_spec.rb +1 -0
  380. data/spec/functional/resource/bash_spec.rb +11 -45
  381. data/spec/functional/resource/batch_spec.rb +5 -1
  382. data/spec/functional/resource/cron_spec.rb +2 -2
  383. data/spec/functional/resource/dsc_script_spec.rb +2 -4
  384. data/spec/functional/resource/execute_spec.rb +17 -0
  385. data/spec/functional/resource/link_spec.rb +3 -3
  386. data/spec/functional/resource/template_spec.rb +33 -0
  387. data/spec/functional/resource/user/dscl_spec.rb +2 -4
  388. data/spec/functional/root_alias_spec.rb +78 -0
  389. data/spec/functional/shell_spec.rb +38 -40
  390. data/spec/integration/client/client_spec.rb +109 -16
  391. data/spec/integration/client/exit_code_spec.rb +1 -105
  392. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -97
  393. data/spec/integration/knife/cookbook_download_spec.rb +0 -24
  394. data/spec/integration/knife/cookbook_show_spec.rb +12 -23
  395. data/spec/integration/knife/deps_spec.rb +5 -9
  396. data/spec/integration/knife/search_node_spec.rb +39 -0
  397. data/spec/integration/knife/serve_spec.rb +58 -22
  398. data/spec/integration/knife/upload_spec.rb +3 -11
  399. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +7 -11
  400. data/spec/integration/recipes/notifies_spec.rb +60 -0
  401. data/spec/integration/recipes/recipe_dsl_spec.rb +76 -226
  402. data/spec/integration/recipes/resource_action_spec.rb +37 -30
  403. data/spec/spec_helper.rb +7 -0
  404. data/spec/support/chef_helpers.rb +5 -7
  405. data/spec/support/platform_helpers.rb +10 -3
  406. data/spec/support/platforms/prof/gc.rb +4 -6
  407. data/spec/support/shared/context/client.rb +9 -2
  408. data/spec/support/shared/functional/execute_resource.rb +150 -0
  409. data/spec/support/shared/functional/windows_script.rb +74 -4
  410. data/spec/support/shared/integration/knife_support.rb +1 -1
  411. data/spec/support/shared/unit/execute_resource.rb +37 -9
  412. data/spec/support/shared/unit/provider/file.rb +10 -0
  413. data/spec/support/shared/unit/script_resource.rb +1 -9
  414. data/spec/unit/application/exit_code_spec.rb +4 -89
  415. data/spec/unit/application_spec.rb +39 -29
  416. data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +1 -1
  417. data/spec/unit/client_spec.rb +72 -31
  418. data/spec/unit/config_fetcher_spec.rb +2 -2
  419. data/spec/unit/cookbook/cookbook_version_loader_spec.rb +31 -19
  420. data/spec/unit/cookbook/file_vendor_spec.rb +20 -9
  421. data/spec/unit/cookbook/gem_installer_spec.rb +85 -0
  422. data/spec/unit/cookbook/manifest_v0_spec.rb +133 -0
  423. data/spec/unit/cookbook/manifest_v2_spec.rb +70 -0
  424. data/spec/unit/cookbook/metadata_spec.rb +29 -108
  425. data/spec/unit/cookbook/synchronizer_spec.rb +5 -6
  426. data/spec/unit/cookbook/syntax_check_spec.rb +9 -2
  427. data/spec/unit/cookbook_loader_spec.rb +17 -19
  428. data/spec/unit/cookbook_manifest_spec.rb +12 -44
  429. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -4
  430. data/spec/unit/cookbook_spec.rb +10 -14
  431. data/spec/unit/cookbook_uploader_spec.rb +1 -1
  432. data/spec/unit/cookbook_version_file_specificity_spec.rb +55 -28
  433. data/spec/unit/cookbook_version_spec.rb +19 -128
  434. data/spec/unit/data_bag_item_spec.rb +4 -0
  435. data/spec/unit/data_collector/messages_spec.rb +137 -0
  436. data/spec/unit/data_collector/resource_report_spec.rb +145 -0
  437. data/spec/unit/deprecation_spec.rb +0 -14
  438. data/spec/unit/encrypted_data_bag_item_spec.rb +6 -6
  439. data/spec/unit/formatters/error_description_spec.rb +52 -7
  440. data/spec/unit/http/api_versions_spec.rb +79 -0
  441. data/spec/unit/http/authenticator_spec.rb +20 -0
  442. data/spec/unit/http/socketless_chef_zero_client_spec.rb +2 -1
  443. data/spec/unit/json_compat_spec.rb +0 -32
  444. data/spec/unit/knife/bootstrap_spec.rb +34 -0
  445. data/spec/unit/knife/configure_client_spec.rb +0 -2
  446. data/spec/unit/knife/cookbook_create_spec.rb +1 -220
  447. data/spec/unit/knife/cookbook_download_spec.rb +46 -28
  448. data/spec/unit/knife/cookbook_show_spec.rb +42 -9
  449. data/spec/unit/knife/core/bootstrap_context_spec.rb +17 -0
  450. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +1 -1
  451. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -6
  452. data/spec/unit/knife/core/ui_spec.rb +21 -11
  453. data/spec/unit/knife/data_bag_create_spec.rb +65 -45
  454. data/spec/unit/knife/ssh_spec.rb +34 -36
  455. data/spec/unit/knife_spec.rb +2 -2
  456. data/spec/unit/lwrp_spec.rb +38 -127
  457. data/spec/unit/mixin/path_sanity_spec.rb +7 -7
  458. data/spec/unit/mixin/shell_out_spec.rb +18 -84
  459. data/spec/unit/mixin/versioned_api_spec.rb +128 -0
  460. data/spec/unit/mixin/which.rb +160 -0
  461. data/spec/unit/node/attribute_spec.rb +65 -33
  462. data/spec/unit/node/immutable_collections_spec.rb +104 -1
  463. data/spec/unit/node_map_spec.rb +1 -23
  464. data/spec/unit/node_spec.rb +81 -98
  465. data/spec/unit/policy_builder/expand_node_object_spec.rb +2 -27
  466. data/spec/unit/policy_builder/policyfile_spec.rb +12 -12
  467. data/spec/unit/property/validation_spec.rb +51 -69
  468. data/spec/unit/property_spec.rb +105 -125
  469. data/spec/unit/provider/apt_repository_spec.rb +33 -27
  470. data/spec/unit/provider/cron_spec.rb +15 -39
  471. data/spec/unit/provider/deploy_spec.rb +1 -1
  472. data/spec/unit/provider/directory_spec.rb +10 -0
  473. data/spec/unit/provider/dsc_resource_spec.rb +175 -0
  474. data/spec/unit/provider/erl_call_spec.rb +5 -13
  475. data/spec/unit/provider/execute_spec.rb +3 -14
  476. data/spec/unit/provider/launchd_spec.rb +2 -2
  477. data/spec/unit/provider/package/aix_spec.rb +22 -22
  478. data/spec/unit/provider/package/apt_spec.rb +37 -27
  479. data/spec/unit/provider/package/cab_spec.rb +59 -5
  480. data/{lib-backcompat/chef/chef_fs/file_system/repository/file_system_root_dir.rb → spec/unit/provider/package/dnf/python_helper_spec.rb} +10 -15
  481. data/spec/unit/provider/package/dpkg_spec.rb +16 -16
  482. data/spec/unit/provider/package/freebsd/pkg_spec.rb +15 -15
  483. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +9 -9
  484. data/spec/unit/provider/package/freebsd/port_spec.rb +9 -9
  485. data/spec/unit/provider/package/homebrew_spec.rb +9 -9
  486. data/spec/unit/provider/package/ips_spec.rb +37 -31
  487. data/spec/unit/provider/package/macports_spec.rb +10 -10
  488. data/spec/unit/provider/package/openbsd_spec.rb +10 -10
  489. data/spec/unit/provider/package/pacman_spec.rb +6 -6
  490. data/spec/unit/provider/package/paludis_spec.rb +7 -7
  491. data/spec/unit/provider/package/portage_spec.rb +6 -7
  492. data/spec/unit/provider/package/rpm_spec.rb +23 -23
  493. data/spec/unit/provider/package/rubygems_spec.rb +135 -46
  494. data/spec/unit/provider/package/solaris_spec.rb +15 -15
  495. data/spec/unit/provider/package/windows/msi_spec.rb +1 -1
  496. data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +25 -0
  497. data/spec/unit/provider/package/windows_spec.rb +2 -1
  498. data/spec/unit/provider/package/yum_spec.rb +58 -50
  499. data/spec/unit/provider/package/zypper_spec.rb +54 -97
  500. data/spec/unit/provider/package_spec.rb +8 -0
  501. data/spec/unit/provider/powershell_script_spec.rb +14 -4
  502. data/spec/unit/provider/remote_file/sftp_spec.rb +3 -3
  503. data/spec/unit/provider/route_spec.rb +7 -1
  504. data/spec/unit/provider/script_spec.rb +49 -6
  505. data/spec/unit/provider/service/debian_service_spec.rb +14 -20
  506. data/spec/unit/provider/service/solaris_smf_service_spec.rb +37 -1
  507. data/spec/unit/provider/service/upstart_service_spec.rb +12 -25
  508. data/spec/unit/provider/subversion_spec.rb +2 -2
  509. data/spec/unit/provider/user/linux_spec.rb +5 -43
  510. data/spec/unit/provider/user/pw_spec.rb +7 -27
  511. data/spec/unit/provider/windows_task_spec.rb +392 -0
  512. data/spec/unit/provider_resolver_spec.rb +0 -1
  513. data/spec/unit/provider_spec.rb +10 -3
  514. data/spec/unit/recipe_spec.rb +3 -172
  515. data/spec/unit/resource/chef_gem_spec.rb +16 -62
  516. data/spec/unit/resource/conditional_spec.rb +4 -4
  517. data/spec/unit/resource/cookbook_file_spec.rb +2 -2
  518. data/spec/unit/resource/cron_spec.rb +1 -1
  519. data/spec/unit/resource/deploy_spec.rb +4 -4
  520. data/spec/unit/resource/directory_spec.rb +2 -2
  521. data/spec/unit/resource/dsc_resource_spec.rb +6 -0
  522. data/spec/unit/resource/env_spec.rb +1 -1
  523. data/spec/unit/resource/execute_spec.rb +215 -1
  524. data/spec/unit/resource/file/verification/systemd_unit_spec.rb +103 -0
  525. data/spec/unit/resource/file/verification_spec.rb +8 -14
  526. data/spec/unit/resource/file_spec.rb +3 -3
  527. data/spec/unit/resource/freebsd_package_spec.rb +2 -2
  528. data/spec/unit/resource/group_spec.rb +2 -2
  529. data/spec/unit/resource/ifconfig_spec.rb +1 -1
  530. data/spec/unit/resource/link_spec.rb +2 -2
  531. data/spec/unit/resource/mdadm_spec.rb +1 -1
  532. data/spec/unit/resource/mount_spec.rb +3 -3
  533. data/spec/unit/resource/ohai_spec.rb +1 -1
  534. data/spec/unit/resource/package_spec.rb +14 -4
  535. data/spec/unit/resource/registry_key_spec.rb +2 -2
  536. data/spec/unit/resource/remote_directory_spec.rb +2 -2
  537. data/spec/unit/resource/remote_file_spec.rb +2 -2
  538. data/spec/unit/resource/route_spec.rb +1 -1
  539. data/spec/unit/resource/scm_spec.rb +2 -2
  540. data/spec/unit/resource/script_spec.rb +1 -1
  541. data/spec/unit/resource/service_spec.rb +25 -5
  542. data/spec/unit/resource/systemd_unit_spec.rb +1 -1
  543. data/spec/unit/resource/template_spec.rb +2 -2
  544. data/spec/unit/resource/user_spec.rb +6 -6
  545. data/spec/unit/resource/windows_task_spec.rb +213 -0
  546. data/spec/unit/resource/yum_package_spec.rb +42 -1
  547. data/spec/unit/resource_collection/resource_set_spec.rb +46 -1
  548. data/spec/unit/resource_collection_spec.rb +4 -3
  549. data/spec/unit/resource_reporter_spec.rb +6 -6
  550. data/spec/unit/resource_spec.rb +55 -71
  551. data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -3
  552. data/spec/unit/run_list/versioned_recipe_list_spec.rb +7 -4
  553. data/spec/unit/runner_spec.rb +10 -28
  554. data/spec/unit/search/query_spec.rb +32 -34
  555. data/spec/unit/server_api_versions_spec.rb +44 -0
  556. data/spec/unit/shell/shell_session_spec.rb +33 -2
  557. data/spec/unit/util/selinux_spec.rb +3 -14
  558. data/spec/unit/win32/error_spec.rb +67 -0
  559. data/spec/unit/win32/security_spec.rb +66 -0
  560. data/tasks/bundle.rb +36 -52
  561. data/tasks/changelog.rb +1 -1
  562. data/tasks/dependencies.rb +54 -52
  563. data/tasks/version.rb +41 -0
  564. metadata +91 -76
  565. data/lib/chef/deprecation/mixin/template.rb +0 -48
  566. data/lib/chef/deprecation/provider/cookbook_file.rb +0 -54
  567. data/lib/chef/deprecation/provider/file.rb +0 -198
  568. data/lib/chef/deprecation/provider/remote_directory.rb +0 -52
  569. data/lib/chef/deprecation/provider/remote_file.rb +0 -85
  570. data/lib/chef/deprecation/provider/template.rb +0 -63
  571. data/lib/chef/dsl/method_missing.rb +0 -75
  572. data/lib/chef/knife/cookbook_site_vendor.rb +0 -46
  573. data/lib/chef/knife/core/custom_manifest_loader.rb +0 -69
  574. data/lib/chef/mixin/command/unix.rb +0 -220
  575. data/lib/chef/mixin/command/windows.rb +0 -71
  576. data/lib/chef/mixin/command.rb +0 -194
  577. data/lib/chef/monkey_patches/net-ssh-multi.rb +0 -141
  578. data/lib/chef/provider/package/easy_install.rb +0 -135
  579. data/lib/chef/rest.rb +0 -210
  580. data/lib/chef/shell_out.rb +0 -13
  581. data/lib/chef/tasks/chef_repo.rake +0 -200
  582. data/lib-backcompat/chef/chef_fs/file_system/acl_entry.rb +0 -5
  583. data/lib-backcompat/chef/chef_fs/file_system/already_exists_error.rb +0 -20
  584. data/lib-backcompat/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +0 -5
  585. data/lib-backcompat/chef/chef_fs/file_system/chef_server_root_dir.rb +0 -5
  586. data/lib-backcompat/chef/chef_fs/file_system/cookbook_frozen_error.rb +0 -20
  587. data/lib-backcompat/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +0 -20
  588. data/lib-backcompat/chef/chef_fs/file_system/file_system_error.rb +0 -20
  589. data/lib-backcompat/chef/chef_fs/file_system/must_delete_recursively_error.rb +0 -20
  590. data/lib-backcompat/chef/chef_fs/file_system/not_found_error.rb +0 -20
  591. data/lib-backcompat/chef/chef_fs/file_system/operation_failed_error.rb +0 -20
  592. data/lib-backcompat/chef/chef_fs/file_system/operation_not_allowed_error.rb +0 -20
  593. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_acls_dir.rb +0 -5
  594. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_client_keys_dir.rb +0 -5
  595. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_entry.rb +0 -6
  596. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_policies_dir.rb +0 -5
  597. data/spec/functional/rest_spec.rb +0 -95
  598. data/spec/unit/knife/core/custom_manifest_loader_spec.rb +0 -41
  599. data/spec/unit/lib_backcompat_spec.rb +0 -34
  600. data/spec/unit/mixin/command_spec.rb +0 -107
  601. data/spec/unit/platform_spec.rb +0 -242
  602. data/spec/unit/provider/package/easy_install_spec.rb +0 -114
  603. data/spec/unit/resource/easy_install_package_spec.rb +0 -39
  604. data/spec/unit/rest/auth_credentials_spec.rb +0 -292
  605. data/spec/unit/rest_spec.rb +0 -753
  606. data/spec/unit/shell_out_spec.rb +0 -18
  607. data/tasks/bin/bundle-platform +0 -20
  608. data/tasks/bin/bundle-platform.bat +0 -2
  609. data/tasks/bin/bundler_patch.rb +0 -27
  610. data/tasks/bin/gem-version-diff +0 -37
  611. data/tasks/bundle_util.rb +0 -110
@@ -59,21 +59,30 @@ describe "Recipe DSL methods" do
59
59
  expect(BaseThingy.created_resource).to eq BaseThingy
60
60
  end
61
61
 
62
- it "errors out when you call base_thingy do ... end in a recipe" do
62
+ it "errors when you call base_thingy do ... end in a recipe" do
63
63
  expect_converge do
64
64
  base_thingy { ; }
65
- end.to raise_error(ArgumentError, "You must supply a name when declaring a base_thingy resource")
65
+ end.to raise_error(Chef::Exceptions::ValidationFailed)
66
66
  end
67
67
 
68
- it "emits a warning when you call base_thingy 'foo', 'bar' do ... end in a recipe" do
69
- Chef::Config[:treat_deprecation_warnings_as_errors] = false
70
- recipe = converge do
71
- base_thingy "foo", "bar" do
68
+ context "nameless resources" do
69
+ before(:context) do
70
+ class NamelessThingy < BaseThingy
71
+ resource_name :nameless_thingy
72
+ provides :nameless_thingy
73
+
74
+ property :name, String, default: ""
72
75
  end
73
76
  end
74
- expect(recipe.logged_warnings).to match(/Cannot create resource base_thingy with more than one argument. All arguments except the name \("foo"\) will be ignored. This will cause an error in Chef 13. Arguments: \["foo", "bar"\]/)
75
- expect(BaseThingy.created_name).to eq "foo"
76
- expect(BaseThingy.created_resource).to eq BaseThingy
77
+
78
+ it "does not error when not given a name" do
79
+ recipe = converge do
80
+ nameless_thingy {}
81
+ end
82
+ expect(recipe.logged_warnings).to eq ""
83
+ expect(BaseThingy.created_name).to eq ""
84
+ expect(BaseThingy.created_resource).to eq NamelessThingy
85
+ end
77
86
  end
78
87
 
79
88
  context "Deprecated automatic resource DSL" do
@@ -81,52 +90,6 @@ describe "Recipe DSL methods" do
81
90
  Chef::Config[:treat_deprecation_warnings_as_errors] = false
82
91
  end
83
92
 
84
- context "with a resource 'backcompat_thingy' declared in Chef::Resource and Chef::Provider" do
85
- before(:context) do
86
-
87
- class Chef::Resource::BackcompatThingy < Chef::Resource
88
- default_action :create
89
- end
90
- class Chef::Provider::BackcompatThingy < Chef::Provider
91
- def load_current_resource
92
- end
93
-
94
- def action_create
95
- BaseThingy.created_resource = new_resource.class
96
- BaseThingy.created_provider = self.class
97
- end
98
- end
99
-
100
- end
101
-
102
- it "backcompat_thingy creates a Chef::Resource::BackcompatThingy" do
103
- recipe = converge do
104
- backcompat_thingy("blah") {}
105
- end
106
- expect(BaseThingy.created_resource).to eq Chef::Resource::BackcompatThingy
107
- expect(BaseThingy.created_provider).to eq Chef::Provider::BackcompatThingy
108
- end
109
-
110
- context "and another resource 'backcompat_thingy' in BackcompatThingy with 'provides'" do
111
- before(:context) do
112
-
113
- class RecipeDSLSpecNamespace::BackcompatThingy < BaseThingy
114
- provides :backcompat_thingy
115
- resource_name :backcompat_thingy
116
- end
117
-
118
- end
119
-
120
- it "backcompat_thingy creates a BackcompatThingy" do
121
- recipe = converge do
122
- backcompat_thingy("blah") {}
123
- end
124
- expect(recipe.logged_warnings).to match(/Class Chef::Provider::BackcompatThingy does not declare 'provides :backcompat_thingy'./)
125
- expect(BaseThingy.created_resource).not_to be_nil
126
- end
127
- end
128
- end
129
-
130
93
  context "with a resource named RecipeDSLSpecNamespace::Bar::BarThingy" do
131
94
  before(:context) do
132
95
 
@@ -861,9 +824,9 @@ describe "Recipe DSL methods" do
861
824
  before { resource_class_a } # pull on it so it gets defined before the recipe runs
862
825
 
863
826
  it "two_classes_one_dsl resolves to A (alphabetically earliest)" do
864
- two_classes_one_dsl = self.two_classes_one_dsl
827
+ temp_two_classes_one_dsl = two_classes_one_dsl
865
828
  recipe = converge do
866
- instance_eval("#{two_classes_one_dsl} 'blah'")
829
+ instance_eval("#{temp_two_classes_one_dsl} 'blah'")
867
830
  end
868
831
  expect(recipe.logged_warnings).to eq ""
869
832
  expect(BaseThingy.created_resource).to eq resource_class_a
@@ -891,9 +854,9 @@ describe "Recipe DSL methods" do
891
854
  before { resource_class_z } # pull on it so it gets defined before the recipe runs
892
855
 
893
856
  it "two_classes_one_dsl resolves to B (alphabetically earliest)" do
894
- two_classes_one_dsl = self.two_classes_one_dsl
857
+ temp_two_classes_one_dsl = two_classes_one_dsl
895
858
  recipe = converge do
896
- instance_eval("#{two_classes_one_dsl} 'blah'")
859
+ instance_eval("#{temp_two_classes_one_dsl} 'blah'")
897
860
  end
898
861
  expect(recipe.logged_warnings).to eq ""
899
862
  expect(BaseThingy.created_resource).to eq resource_class
@@ -909,9 +872,9 @@ describe "Recipe DSL methods" do
909
872
  end
910
873
 
911
874
  it "two_classes_one_dsl resolves to Z (respects the priority array)" do
912
- two_classes_one_dsl = self.two_classes_one_dsl
875
+ temp_two_classes_one_dsl = two_classes_one_dsl
913
876
  recipe = converge do
914
- instance_eval("#{two_classes_one_dsl} 'blah'")
877
+ instance_eval("#{temp_two_classes_one_dsl} 'blah'")
915
878
  end
916
879
  expect(recipe.logged_warnings).to eq ""
917
880
  expect(BaseThingy.created_resource).to eq resource_class_z
@@ -927,9 +890,9 @@ describe "Recipe DSL methods" do
927
890
  end
928
891
 
929
892
  it "two_classes_one_dsl resolves to B (picks the next thing in the priority array)" do
930
- two_classes_one_dsl = self.two_classes_one_dsl
893
+ temp_two_classes_one_dsl = two_classes_one_dsl
931
894
  recipe = converge do
932
- instance_eval("#{two_classes_one_dsl} 'blah'")
895
+ instance_eval("#{temp_two_classes_one_dsl} 'blah'")
933
896
  end
934
897
  expect(recipe.logged_warnings).to eq ""
935
898
  expect(BaseThingy.created_resource).to eq resource_class
@@ -948,9 +911,9 @@ describe "Recipe DSL methods" do
948
911
  end
949
912
 
950
913
  it "two_classes_one_dsl resolves to Z (respects the most recent priority array)" do
951
- two_classes_one_dsl = self.two_classes_one_dsl
914
+ temp_two_classes_one_dsl = two_classes_one_dsl
952
915
  recipe = converge do
953
- instance_eval("#{two_classes_one_dsl} 'blah'")
916
+ instance_eval("#{temp_two_classes_one_dsl} 'blah'")
954
917
  end
955
918
  expect(recipe.logged_warnings).to eq ""
956
919
  expect(BaseThingy.created_resource).to eq resource_class_z
@@ -966,9 +929,9 @@ describe "Recipe DSL methods" do
966
929
  end
967
930
 
968
931
  it "two_classes_one_dsl resolves to B (picks the first match from the other priority array)" do
969
- two_classes_one_dsl = self.two_classes_one_dsl
932
+ temp_two_classes_one_dsl = two_classes_one_dsl
970
933
  recipe = converge do
971
- instance_eval("#{two_classes_one_dsl} 'blah'")
934
+ instance_eval("#{temp_two_classes_one_dsl} 'blah'")
972
935
  end
973
936
  expect(recipe.logged_warnings).to eq ""
974
937
  expect(BaseThingy.created_resource).to eq resource_class
@@ -991,9 +954,9 @@ describe "Recipe DSL methods" do
991
954
  end
992
955
 
993
956
  it "two_classes_one_dsl resolves to B (picks the first match outside the priority array)" do
994
- two_classes_one_dsl = self.two_classes_one_dsl
957
+ temp_two_classes_one_dsl = two_classes_one_dsl
995
958
  recipe = converge do
996
- instance_eval("#{two_classes_one_dsl} 'blah'")
959
+ instance_eval("#{temp_two_classes_one_dsl} 'blah'")
997
960
  end
998
961
  expect(recipe.logged_warnings).to eq ""
999
962
  expect(BaseThingy.created_resource).to eq resource_class
@@ -1044,9 +1007,9 @@ describe "Recipe DSL methods" do
1044
1007
  before { provider_class_a.provides two_classes_one_dsl }
1045
1008
 
1046
1009
  it "two_classes_one_dsl resolves to A (alphabetically earliest)" do
1047
- two_classes_one_dsl = self.two_classes_one_dsl
1010
+ temp_two_classes_one_dsl = two_classes_one_dsl
1048
1011
  recipe = converge do
1049
- instance_eval("#{two_classes_one_dsl} 'blah'")
1012
+ instance_eval("#{temp_two_classes_one_dsl} 'blah'")
1050
1013
  end
1051
1014
  expect(recipe.logged_warnings).to eq ""
1052
1015
  expect(BaseThingy.created_provider).to eq provider_class_a
@@ -1056,9 +1019,9 @@ describe "Recipe DSL methods" do
1056
1019
  before { provider_class_a.provides(two_classes_one_dsl) { false } }
1057
1020
 
1058
1021
  it "two_classes_one_dsl resolves to B (since A declined)" do
1059
- two_classes_one_dsl = self.two_classes_one_dsl
1022
+ temp_two_classes_one_dsl = two_classes_one_dsl
1060
1023
  recipe = converge do
1061
- instance_eval("#{two_classes_one_dsl} 'blah'")
1024
+ instance_eval("#{temp_two_classes_one_dsl} 'blah'")
1062
1025
  end
1063
1026
  expect(recipe.logged_warnings).to eq ""
1064
1027
  expect(BaseThingy.created_provider).to eq provider_class
@@ -1085,9 +1048,9 @@ describe "Recipe DSL methods" do
1085
1048
  before { provider_class_z.provides two_classes_one_dsl }
1086
1049
 
1087
1050
  it "two_classes_one_dsl resolves to B (alphabetically earliest)" do
1088
- two_classes_one_dsl = self.two_classes_one_dsl
1051
+ temp_two_classes_one_dsl = two_classes_one_dsl
1089
1052
  recipe = converge do
1090
- instance_eval("#{two_classes_one_dsl} 'blah'")
1053
+ instance_eval("#{temp_two_classes_one_dsl} 'blah'")
1091
1054
  end
1092
1055
  expect(recipe.logged_warnings).to eq ""
1093
1056
  expect(BaseThingy.created_provider).to eq provider_class
@@ -1097,9 +1060,9 @@ describe "Recipe DSL methods" do
1097
1060
  before { Chef.set_provider_priority_array two_classes_one_dsl, [ provider_class_z, provider_class ] }
1098
1061
 
1099
1062
  it "two_classes_one_dsl resolves to Z (respects the priority map)" do
1100
- two_classes_one_dsl = self.two_classes_one_dsl
1063
+ temp_two_classes_one_dsl = two_classes_one_dsl
1101
1064
  recipe = converge do
1102
- instance_eval("#{two_classes_one_dsl} 'blah'")
1065
+ instance_eval("#{temp_two_classes_one_dsl} 'blah'")
1103
1066
  end
1104
1067
  expect(recipe.logged_warnings).to eq ""
1105
1068
  expect(BaseThingy.created_provider).to eq provider_class_z
@@ -1114,9 +1077,9 @@ describe "Recipe DSL methods" do
1114
1077
  before { Chef.set_provider_priority_array two_classes_one_dsl, [ provider_class_z, provider_class ] }
1115
1078
 
1116
1079
  it "two_classes_one_dsl resolves to B (the next one in the priority map)" do
1117
- two_classes_one_dsl = self.two_classes_one_dsl
1080
+ temp_two_classes_one_dsl = two_classes_one_dsl
1118
1081
  recipe = converge do
1119
- instance_eval("#{two_classes_one_dsl} 'blah'")
1082
+ instance_eval("#{temp_two_classes_one_dsl} 'blah'")
1120
1083
  end
1121
1084
  expect(recipe.logged_warnings).to eq ""
1122
1085
  expect(BaseThingy.created_provider).to eq provider_class
@@ -1128,9 +1091,9 @@ describe "Recipe DSL methods" do
1128
1091
  before { Chef.set_provider_priority_array two_classes_one_dsl, [ provider_class ] }
1129
1092
 
1130
1093
  it "two_classes_one_dsl resolves to B (the one in the next priority map)" do
1131
- two_classes_one_dsl = self.two_classes_one_dsl
1094
+ temp_two_classes_one_dsl = two_classes_one_dsl
1132
1095
  recipe = converge do
1133
- instance_eval("#{two_classes_one_dsl} 'blah'")
1096
+ instance_eval("#{temp_two_classes_one_dsl} 'blah'")
1134
1097
  end
1135
1098
  expect(recipe.logged_warnings).to eq ""
1136
1099
  expect(BaseThingy.created_provider).to eq provider_class
@@ -1158,22 +1121,22 @@ describe "Recipe DSL methods" do
1158
1121
  before { resource_class_blarghle } # pull on it so it gets defined before the recipe runs
1159
1122
 
1160
1123
  it "on os = blarghle, two_classes_one_dsl resolves to Blarghle" do
1161
- two_classes_one_dsl = self.two_classes_one_dsl
1124
+ temp_two_classes_one_dsl = two_classes_one_dsl
1162
1125
  recipe = converge do
1163
1126
  # this is an ugly way to test, make Cheffish expose node attrs
1164
1127
  run_context.node.automatic[:os] = "blarghle"
1165
- instance_eval("#{two_classes_one_dsl} 'blah' do; end")
1128
+ instance_eval("#{temp_two_classes_one_dsl} 'blah' do; end")
1166
1129
  end
1167
1130
  expect(recipe.logged_warnings).to eq ""
1168
1131
  expect(BaseThingy.created_resource).to eq resource_class_blarghle
1169
1132
  end
1170
1133
 
1171
1134
  it "on os = linux, two_classes_one_dsl resolves to B" do
1172
- two_classes_one_dsl = self.two_classes_one_dsl
1135
+ temp_two_classes_one_dsl = two_classes_one_dsl
1173
1136
  recipe = converge do
1174
1137
  # this is an ugly way to test, make Cheffish expose node attrs
1175
1138
  run_context.node.automatic[:os] = "linux"
1176
- instance_eval("#{two_classes_one_dsl} 'blah' do; end")
1139
+ instance_eval("#{temp_two_classes_one_dsl} 'blah' do; end")
1177
1140
  end
1178
1141
  expect(recipe.logged_warnings).to eq ""
1179
1142
  expect(BaseThingy.created_resource).to eq resource_class
@@ -1202,15 +1165,15 @@ describe "Recipe DSL methods" do
1202
1165
 
1203
1166
  context "with provides? returning true to my_resource" do
1204
1167
  before do
1205
- my_resource = self.my_resource
1168
+ temp_my_resource = my_resource
1206
1169
  resource_class.define_singleton_method(:provides?) do |node, resource_name|
1207
1170
  @called_provides = true
1208
- resource_name == my_resource
1171
+ resource_name == temp_my_resource
1209
1172
  end
1210
1173
  end
1211
1174
 
1212
1175
  it "my_resource returns the resource and calls provides?, but does not emit a warning" do
1213
- dsl_name = self.my_resource
1176
+ dsl_name = my_resource
1214
1177
  recipe = converge do
1215
1178
  instance_eval("#{dsl_name} 'foo'")
1216
1179
  end
@@ -1220,35 +1183,6 @@ describe "Recipe DSL methods" do
1220
1183
  end
1221
1184
  end
1222
1185
 
1223
- context "with provides? returning true to blarghle_blarghle_little_star and not resource_name" do
1224
- before do
1225
- blarghle_blarghle_little_star = self.blarghle_blarghle_little_star
1226
- resource_class.define_singleton_method(:provides?) do |node, resource_name|
1227
- @called_provides = true
1228
- resource_name == blarghle_blarghle_little_star
1229
- end
1230
- end
1231
-
1232
- it "my_resource does not return the resource" do
1233
- dsl_name = self.my_resource
1234
- expect_converge do
1235
- instance_eval("#{dsl_name} 'foo'")
1236
- end.to raise_error(Chef::Exceptions::NoSuchResourceType)
1237
- expect(resource_class.called_provides).to be_truthy
1238
- end
1239
-
1240
- it "blarghle_blarghle_little_star 'foo' returns the resource and emits a warning" do
1241
- Chef::Config[:treat_deprecation_warnings_as_errors] = false
1242
- dsl_name = self.blarghle_blarghle_little_star
1243
- recipe = converge do
1244
- instance_eval("#{dsl_name} 'foo'")
1245
- end
1246
- expect(recipe.logged_warnings).to include "WARN: #{resource_class}.provides? returned true when asked if it provides DSL #{dsl_name}, but provides :#{dsl_name} was never called!"
1247
- expect(BaseThingy.created_resource).to eq resource_class
1248
- expect(resource_class.called_provides).to be_truthy
1249
- end
1250
- end
1251
-
1252
1186
  context "and a provider" do
1253
1187
  let(:provider_class) do
1254
1188
  Class.new(BaseThingy::Provider) do
@@ -1281,9 +1215,9 @@ describe "Recipe DSL methods" do
1281
1215
  end
1282
1216
 
1283
1217
  it "my_resource runs the provider and does not emit a warning" do
1284
- my_resource = self.my_resource
1218
+ temp_my_resource = my_resource
1285
1219
  recipe = converge do
1286
- instance_eval("#{my_resource} 'foo'")
1220
+ instance_eval("#{temp_my_resource} 'foo'")
1287
1221
  end
1288
1222
  expect(recipe.logged_warnings).to eq ""
1289
1223
  expect(BaseThingy.created_provider).to eq provider_class
@@ -1311,9 +1245,9 @@ describe "Recipe DSL methods" do
1311
1245
  end
1312
1246
 
1313
1247
  it "my_resource runs the first provider" do
1314
- my_resource = self.my_resource
1248
+ temp_my_resource = my_resource
1315
1249
  recipe = converge do
1316
- instance_eval("#{my_resource} 'foo'")
1250
+ instance_eval("#{temp_my_resource} 'foo'")
1317
1251
  end
1318
1252
  expect(recipe.logged_warnings).to eq ""
1319
1253
  expect(BaseThingy.created_provider).to eq provider_class
@@ -1328,9 +1262,9 @@ describe "Recipe DSL methods" do
1328
1262
 
1329
1263
  # TODO no warning? ick
1330
1264
  it "my_resource runs the provider anyway" do
1331
- my_resource = self.my_resource
1265
+ temp_my_resource = my_resource
1332
1266
  recipe = converge do
1333
- instance_eval("#{my_resource} 'foo'")
1267
+ instance_eval("#{temp_my_resource} 'foo'")
1334
1268
  end
1335
1269
  expect(recipe.logged_warnings).to eq ""
1336
1270
  expect(BaseThingy.created_provider).to eq provider_class
@@ -1338,7 +1272,7 @@ describe "Recipe DSL methods" do
1338
1272
 
1339
1273
  context "and another provider supporting :my_resource with supports? true" do
1340
1274
  let(:provider_class2) do
1341
- my_resource = self.my_resource
1275
+ temp_my_resource = my_resource
1342
1276
  Class.new(BaseThingy::Provider) do
1343
1277
  def self.name
1344
1278
  "MyProvider2"
@@ -1351,7 +1285,7 @@ describe "Recipe DSL methods" do
1351
1285
  def self.called_provides
1352
1286
  @called_provides
1353
1287
  end
1354
- provides my_resource
1288
+ provides temp_my_resource
1355
1289
  def self.supports?(resource, action)
1356
1290
  true
1357
1291
  end
@@ -1360,9 +1294,9 @@ describe "Recipe DSL methods" do
1360
1294
  before { provider_class2 } # make sure the provider class shows up
1361
1295
 
1362
1296
  it "my_resource runs the other provider" do
1363
- my_resource = self.my_resource
1297
+ temp_my_resource = my_resource
1364
1298
  recipe = converge do
1365
- instance_eval("#{my_resource} 'foo'")
1299
+ instance_eval("#{temp_my_resource} 'foo'")
1366
1300
  end
1367
1301
  expect(recipe.logged_warnings).to eq ""
1368
1302
  expect(BaseThingy.created_provider).to eq provider_class2
@@ -1370,82 +1304,24 @@ describe "Recipe DSL methods" do
1370
1304
  end
1371
1305
  end
1372
1306
  end
1307
+ end
1308
+ end
1309
+ end
1373
1310
 
1374
- context "with provides? returning true" do
1375
- before do
1376
- my_resource = self.my_resource
1377
- provider_class.define_singleton_method(:provides?) do |node, resource|
1378
- @called_provides = true
1379
- resource.declared_type == my_resource
1380
- end
1381
- end
1382
-
1383
- context "that provides :my_resource" do
1384
- before do
1385
- provider_class.provides my_resource
1386
- end
1387
-
1388
- it "my_resource calls the provider (and calls provides?), but does not emit a warning" do
1389
- my_resource = self.my_resource
1390
- recipe = converge do
1391
- instance_eval("#{my_resource} 'foo'")
1392
- end
1393
- expect(recipe.logged_warnings).to eq ""
1394
- expect(BaseThingy.created_provider).to eq provider_class
1395
- expect(provider_class.called_provides).to be_truthy
1396
- end
1397
- end
1398
-
1399
- context "that does not call provides :my_resource" do
1400
- it "my_resource calls the provider (and calls provides?), and emits a warning" do
1401
- Chef::Config[:treat_deprecation_warnings_as_errors] = false
1402
- my_resource = self.my_resource
1403
- recipe = converge do
1404
- instance_eval("#{my_resource} 'foo'")
1405
- end
1406
- expect(recipe.logged_warnings).to include("WARN: #{provider_class}.provides? returned true when asked if it provides DSL #{my_resource}, but provides :#{my_resource} was never called!")
1407
- expect(BaseThingy.created_provider).to eq provider_class
1408
- expect(provider_class.called_provides).to be_truthy
1409
- end
1410
- end
1411
- end
1412
-
1413
- context "with provides? returning false to my_resource" do
1414
- before do
1415
- my_resource = self.my_resource
1416
- provider_class.define_singleton_method(:provides?) do |node, resource|
1417
- @called_provides = true
1418
- false
1419
- end
1420
- end
1421
-
1422
- context "that provides :my_resource" do
1423
- before do
1424
- provider_class.provides my_resource
1425
- end
1426
-
1427
- it "my_resource fails to find a provider (and calls provides)" do
1428
- Chef::Config[:treat_deprecation_warnings_as_errors] = false
1429
- my_resource = self.my_resource
1430
- expect_converge do
1431
- instance_eval("#{my_resource} 'foo'")
1432
- end.to raise_error(Chef::Exceptions::ProviderNotFound)
1433
- expect(provider_class.called_provides).to be_truthy
1434
- end
1435
- end
1311
+ context "with UTF-8 provides" do
1312
+ before(:context) do
1313
+ class UTF8Thingy < BaseThingy
1314
+ resource_name :Straße
1315
+ provides :Straße
1316
+ end
1317
+ end
1436
1318
 
1437
- context "that does not provide :my_resource" do
1438
- it "my_resource fails to find a provider (and calls provides)" do
1439
- Chef::Config[:treat_deprecation_warnings_as_errors] = false
1440
- my_resource = self.my_resource
1441
- expect_converge do
1442
- instance_eval("#{my_resource} 'foo'")
1443
- end.to raise_error(Chef::Exceptions::ProviderNotFound)
1444
- expect(provider_class.called_provides).to be_truthy
1445
- end
1446
- end
1447
- end
1319
+ it "utf-8 dsl names work" do
1320
+ recipe = converge do
1321
+ Straße("blah") {}
1448
1322
  end
1323
+ expect(recipe.logged_warnings).to eq ""
1324
+ expect(BaseThingy.created_resource).to eq(UTF8Thingy)
1449
1325
  end
1450
1326
  end
1451
1327
  end
@@ -1494,30 +1370,4 @@ describe "Recipe DSL methods" do
1494
1370
  end
1495
1371
  end
1496
1372
 
1497
- context "with a dynamically defined resource and regular provider" do
1498
- before(:context) do
1499
- Class.new(Chef::Resource) do
1500
- resource_name :lw_resource_with_hw_provider_test_case
1501
- default_action :create
1502
- attr_accessor :created_provider
1503
- end
1504
- class Chef::Provider::LwResourceWithHwProviderTestCase < Chef::Provider
1505
- def load_current_resource
1506
- end
1507
-
1508
- def action_create
1509
- new_resource.created_provider = self.class
1510
- end
1511
- end
1512
- end
1513
-
1514
- it "looks up the provider in Chef::Provider converting the resource name from snake case to camel case" do
1515
- Chef::Config[:treat_deprecation_warnings_as_errors] = false
1516
- resource = nil
1517
- recipe = converge do
1518
- resource = lw_resource_with_hw_provider_test_case("blah") {}
1519
- end
1520
- expect(resource.created_provider).to eq(Chef::Provider::LwResourceWithHwProviderTestCase)
1521
- end
1522
- end
1523
1373
  end
@@ -357,7 +357,7 @@ module ResourceActionSpec
357
357
  end
358
358
  end
359
359
 
360
- context "With a resource with action a-b-c d" do
360
+ context "With a resource with a UTF-8 action" do
361
361
  class WeirdActionJackson < Chef::Resource
362
362
  use_automatic_resource_name
363
363
 
@@ -365,7 +365,7 @@ module ResourceActionSpec
365
365
  attr_accessor :action_was
366
366
  end
367
367
 
368
- action "a-b-c d" do
368
+ action :Straße do
369
369
  WeirdActionJackson.action_was = action
370
370
  end
371
371
  end
@@ -374,7 +374,7 @@ module ResourceActionSpec
374
374
  expect_recipe do
375
375
  weird_action_jackson "hi"
376
376
  end.to be_up_to_date
377
- expect(WeirdActionJackson.action_was).to eq :"a-b-c d"
377
+ expect(WeirdActionJackson.action_was).to eq :Straße
378
378
  end
379
379
  end
380
380
 
@@ -502,40 +502,28 @@ module ResourceActionSpec
502
502
  end
503
503
  end
504
504
 
505
- context "When a resource declares methods in action_class and declare_action_class" do
505
+ context "When a resource declares methods in action_class" do
506
506
  class DeclaresActionClassMethods < Chef::Resource
507
507
  use_automatic_resource_name
508
508
  property :x
509
- action :create do
510
- new_resource.x = a + b + c + d
511
- end
512
509
  action_class do
513
510
  def a
514
511
  1
515
512
  end
516
513
  end
517
- declare_action_class do
518
- def b
519
- 2
520
- end
521
- end
522
- action_class do
514
+ action_class.class_eval <<-EOM
523
515
  def c
524
516
  3
525
517
  end
526
- end
527
- declare_action_class do
528
- def d
529
- 4
530
- end
518
+ EOM
519
+ action :create do
520
+ new_resource.x = a + c
531
521
  end
532
522
  end
533
523
 
534
524
  it "the methods are not available on the resource" do
535
525
  expect { DeclaresActionClassMethods.new("hi").a }.to raise_error(NameError)
536
- expect { DeclaresActionClassMethods.new("hi").b }.to raise_error(NameError)
537
526
  expect { DeclaresActionClassMethods.new("hi").c }.to raise_error(NameError)
538
- expect { DeclaresActionClassMethods.new("hi").d }.to raise_error(NameError)
539
527
  end
540
528
 
541
529
  it "the methods are available to the action" do
@@ -543,17 +531,14 @@ module ResourceActionSpec
543
531
  expect_recipe do
544
532
  r = declares_action_class_methods "hi"
545
533
  end.to emit_no_warnings_or_errors
546
- expect(r.x).to eq(10)
534
+ expect(r.x).to eq(4)
547
535
  end
548
536
 
549
- context "And a subclass also creates a method" do
537
+ context "And a subclass overrides a method with an action_class block" do
550
538
  class DeclaresActionClassMethodsToo < DeclaresActionClassMethods
551
539
  use_automatic_resource_name
552
- action :create do
553
- new_resource.x a + b + c + d + e
554
- end
555
540
  action_class do
556
- def e
541
+ def a
557
542
  5
558
543
  end
559
544
  end
@@ -561,10 +546,7 @@ module ResourceActionSpec
561
546
 
562
547
  it "the methods are not available on the resource" do
563
548
  expect { DeclaresActionClassMethods.new("hi").a }.to raise_error(NameError)
564
- expect { DeclaresActionClassMethods.new("hi").b }.to raise_error(NameError)
565
549
  expect { DeclaresActionClassMethods.new("hi").c }.to raise_error(NameError)
566
- expect { DeclaresActionClassMethods.new("hi").d }.to raise_error(NameError)
567
- expect { DeclaresActionClassMethods.new("hi").e }.to raise_error(NameError)
568
550
  end
569
551
 
570
552
  it "the methods are available to the action" do
@@ -572,7 +554,32 @@ module ResourceActionSpec
572
554
  expect_recipe do
573
555
  r = declares_action_class_methods_too "hi"
574
556
  end.to emit_no_warnings_or_errors
575
- expect(r.x).to eq(15)
557
+ expect(r.x).to eq(8)
558
+ end
559
+ end
560
+
561
+ context "And a subclass overrides a method with class_eval" do
562
+ # this tests inheritance with *only* an action_class accessor that does not declare a block
563
+ class DeclaresActionClassMethodsToo < DeclaresActionClassMethods
564
+ use_automatic_resource_name
565
+ action_class.class_eval <<-EOM
566
+ def a
567
+ 5
568
+ end
569
+ EOM
570
+ end
571
+
572
+ it "the methods are not available on the resource" do
573
+ expect { DeclaresActionClassMethods.new("hi").a }.to raise_error(NameError)
574
+ expect { DeclaresActionClassMethods.new("hi").c }.to raise_error(NameError)
575
+ end
576
+
577
+ it "the methods are available to the action" do
578
+ r = nil
579
+ expect_recipe do
580
+ r = declares_action_class_methods_too "hi"
581
+ end.to emit_no_warnings_or_errors
582
+ expect(r.x).to eq(8)
576
583
  end
577
584
  end
578
585
  end
data/spec/spec_helper.rb CHANGED
@@ -70,6 +70,9 @@ require "chef/chef_fs/file_system_cache"
70
70
 
71
71
  require "chef/api_client_v1"
72
72
 
73
+ require "chef/mixin/versioned_api"
74
+ require "chef/server_api_versions"
75
+
73
76
  if ENV["CHEF_FIPS"] == "1"
74
77
  Chef::Config.init_openssl
75
78
  end
@@ -152,6 +155,10 @@ RSpec.configure do |config|
152
155
  config.filter_run_excluding :windows_powershell_no_dsc_only => true unless ! windows_powershell_dsc?
153
156
  config.filter_run_excluding :windows_domain_joined_only => true unless windows_domain_joined?
154
157
  config.filter_run_excluding :windows_not_domain_joined_only => true if windows_domain_joined?
158
+ # We think this line was causing rspec tests to not run on the Jenkins windows
159
+ # testers. If we ever fix it we should restore it.
160
+ # config.filter_run_excluding :windows_service_requires_assign_token => true if !STDOUT.isatty && !windows_user_right?("SeAssignPrimaryTokenPrivilege")
161
+ config.filter_run_excluding :windows_service_requires_assign_token => true
155
162
  config.filter_run_excluding :solaris_only => true unless solaris?
156
163
  config.filter_run_excluding :system_windows_service_gem_only => true unless system_windows_service_gem?
157
164
  config.filter_run_excluding :unix_only => true unless unix?