puppet 6.0.10-universal-darwin → 6.1.0-universal-darwin

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (748) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/Gemfile.lock +31 -27
  4. data/Guardfile.example +76 -0
  5. data/LICENSE +189 -4
  6. data/MAINTAINERS +47 -0
  7. data/README.md +3 -3
  8. data/lib/hiera/scope.rb +0 -7
  9. data/lib/puppet.rb +6 -5
  10. data/lib/puppet/application.rb +3 -3
  11. data/lib/puppet/application/cert.rb +2 -2
  12. data/lib/puppet/application/device.rb +83 -109
  13. data/lib/puppet/application/filebucket.rb +1 -10
  14. data/lib/puppet/application/ssl.rb +0 -2
  15. data/lib/puppet/configurer.rb +9 -10
  16. data/lib/puppet/confine/false.rb +1 -7
  17. data/lib/puppet/confine/true.rb +1 -7
  18. data/lib/puppet/defaults.rb +39 -51
  19. data/lib/puppet/forge.rb +1 -4
  20. data/lib/puppet/functions/abs.rb +1 -1
  21. data/lib/puppet/functions/call.rb +1 -2
  22. data/lib/puppet/functions/new.rb +1 -1
  23. data/lib/puppet/indirector/request.rb +15 -26
  24. data/lib/puppet/network/http/connection.rb +12 -32
  25. data/lib/puppet/network/http/factory.rb +0 -5
  26. data/lib/puppet/pal/catalog_compiler.rb +96 -0
  27. data/lib/puppet/pal/compiler.rb +221 -0
  28. data/lib/puppet/pal/function_signature.rb +52 -0
  29. data/lib/puppet/pal/json_catalog_encoder.rb +67 -0
  30. data/lib/puppet/pal/pal_api.rb +15 -0
  31. data/lib/puppet/pal/pal_impl.rb +523 -0
  32. data/lib/puppet/pal/plan_signature.rb +71 -0
  33. data/lib/puppet/pal/script_compiler.rb +71 -0
  34. data/lib/puppet/pal/task_signature.rb +58 -0
  35. data/lib/puppet/parser/functions/generate.rb +7 -6
  36. data/lib/puppet/plugins/configuration.rb +5 -1
  37. data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -1
  38. data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -3
  39. data/lib/puppet/pops/issues.rb +0 -4
  40. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +4 -60
  41. data/lib/puppet/pops/model/factory.rb +4 -38
  42. data/lib/puppet/pops/model/pn_transformer.rb +0 -5
  43. data/lib/puppet/pops/parser/egrammar.ra +2 -2
  44. data/lib/puppet/pops/parser/heredoc_support.rb +7 -17
  45. data/lib/puppet/pops/parser/lexer2.rb +1 -6
  46. data/lib/puppet/pops/parser/locator.rb +86 -106
  47. data/lib/puppet/pops/parser/parser_support.rb +2 -11
  48. data/lib/puppet/pops/types/string_converter.rb +7 -2
  49. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  50. data/lib/puppet/pops/types/types.rb +3 -5
  51. data/lib/puppet/pops/validation/checker4_0.rb +13 -0
  52. data/lib/puppet/provider.rb +2 -1
  53. data/lib/puppet/provider/exec.rb +6 -1
  54. data/lib/puppet/provider/file/windows.rb +1 -49
  55. data/lib/puppet/provider/group/windows_adsi.rb +1 -4
  56. data/lib/puppet/provider/package.rb +0 -2
  57. data/lib/puppet/provider/package/dpkg.rb +2 -15
  58. data/lib/puppet/provider/package/gem.rb +42 -102
  59. data/lib/puppet/provider/package/pip.rb +111 -135
  60. data/lib/puppet/provider/package/pip3.rb +1 -1
  61. data/lib/puppet/provider/package/pkgng.rb +37 -21
  62. data/lib/puppet/provider/package/puppet_gem.rb +1 -1
  63. data/lib/puppet/provider/package/rpm.rb +16 -27
  64. data/lib/puppet/provider/package/windows.rb +1 -5
  65. data/lib/puppet/provider/package/yum.rb +1 -2
  66. data/lib/puppet/provider/service/systemd.rb +17 -0
  67. data/lib/puppet/provider/service/upstart.rb +5 -17
  68. data/lib/puppet/provider/service/windows.rb +8 -3
  69. data/lib/puppet/provider/user/directoryservice.rb +4 -16
  70. data/lib/puppet/provider/user/useradd.rb +13 -16
  71. data/lib/puppet/resource.rb +3 -1
  72. data/lib/puppet/rest/client.rb +83 -0
  73. data/lib/puppet/rest/route.rb +1 -1
  74. data/lib/puppet/settings.rb +5 -10
  75. data/lib/puppet/settings/server_list_setting.rb +0 -9
  76. data/lib/puppet/ssl/host.rb +11 -0
  77. data/lib/puppet/ssl/validator/default_validator.rb +0 -31
  78. data/lib/puppet/syntax_checkers/epp.rb +34 -0
  79. data/lib/puppet/syntax_checkers/pp.rb +34 -0
  80. data/lib/puppet/transaction.rb +7 -12
  81. data/lib/puppet/transaction/event_manager.rb +5 -1
  82. data/lib/puppet/transaction/resource_harness.rb +0 -1
  83. data/lib/puppet/type.rb +6 -0
  84. data/lib/puppet/type/exec.rb +5 -27
  85. data/lib/puppet/type/file/mode.rb +1 -6
  86. data/lib/puppet/type/file/source.rb +1 -0
  87. data/lib/puppet/type/filebucket.rb +8 -12
  88. data/lib/puppet/type/package.rb +11 -44
  89. data/lib/puppet/type/schedule.rb +0 -4
  90. data/lib/puppet/type/service.rb +12 -0
  91. data/lib/puppet/type/user.rb +1 -1
  92. data/lib/puppet/util/command_line.rb +1 -5
  93. data/lib/puppet/util/connection.rb +6 -15
  94. data/lib/puppet/util/http_proxy.rb +2 -3
  95. data/lib/puppet/util/log.rb +2 -7
  96. data/lib/puppet/util/pidlock.rb +1 -15
  97. data/lib/puppet/util/windows/process.rb +5 -73
  98. data/lib/puppet/util/windows/registry.rb +1 -7
  99. data/lib/puppet/util/windows/security.rb +8 -29
  100. data/lib/puppet/util/windows/service.rb +33 -27
  101. data/lib/puppet/util/windows/user.rb +4 -14
  102. data/lib/puppet/version.rb +1 -1
  103. data/lib/puppet_pal.rb +5 -1132
  104. data/locales/ja/puppet.po +297 -363
  105. data/locales/puppet.pot +445 -517
  106. data/man/man5/puppet.conf.5 +12 -20
  107. data/man/man8/puppet-agent.8 +1 -1
  108. data/man/man8/puppet-apply.8 +1 -1
  109. data/man/man8/puppet-catalog.8 +1 -1
  110. data/man/man8/puppet-config.8 +1 -1
  111. data/man/man8/puppet-describe.8 +1 -1
  112. data/man/man8/puppet-device.8 +1 -1
  113. data/man/man8/puppet-doc.8 +1 -1
  114. data/man/man8/puppet-epp.8 +1 -1
  115. data/man/man8/puppet-facts.8 +1 -1
  116. data/man/man8/puppet-filebucket.8 +2 -6
  117. data/man/man8/puppet-generate.8 +1 -1
  118. data/man/man8/puppet-help.8 +1 -1
  119. data/man/man8/puppet-key.8 +1 -1
  120. data/man/man8/puppet-lookup.8 +1 -1
  121. data/man/man8/puppet-man.8 +1 -1
  122. data/man/man8/puppet-module.8 +1 -1
  123. data/man/man8/puppet-node.8 +1 -1
  124. data/man/man8/puppet-parser.8 +1 -1
  125. data/man/man8/puppet-plugin.8 +1 -1
  126. data/man/man8/puppet-report.8 +1 -1
  127. data/man/man8/puppet-resource.8 +1 -1
  128. data/man/man8/puppet-script.8 +1 -1
  129. data/man/man8/puppet-ssl.8 +1 -1
  130. data/man/man8/puppet-status.8 +1 -1
  131. data/man/man8/puppet.8 +2 -2
  132. data/spec/fixtures/unit/provider/package/pkgng/pkg.query +7 -1
  133. data/spec/fixtures/unit/provider/package/pkgng/pkg.query.zsh +1 -0
  134. data/spec/integration/agent/logging_spec.rb +7 -5
  135. data/spec/integration/application/apply_spec.rb +16 -18
  136. data/spec/integration/application/doc_spec.rb +2 -1
  137. data/spec/integration/application/lookup_spec.rb +5 -5
  138. data/spec/integration/configurer_spec.rb +6 -5
  139. data/spec/integration/defaults_spec.rb +6 -5
  140. data/spec/integration/directory_environments_spec.rb +1 -1
  141. data/spec/integration/faces/config_spec.rb +4 -3
  142. data/spec/integration/faces/documentation_spec.rb +1 -0
  143. data/spec/integration/faces/plugin_spec.rb +1 -1
  144. data/spec/integration/file_bucket/file_spec.rb +4 -2
  145. data/spec/integration/file_serving/content_spec.rb +1 -0
  146. data/spec/integration/file_serving/fileset_spec.rb +1 -0
  147. data/spec/integration/file_serving/metadata_spec.rb +1 -0
  148. data/spec/integration/file_serving/terminus_helper_spec.rb +1 -0
  149. data/spec/integration/indirector/catalog/compiler_spec.rb +11 -10
  150. data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
  151. data/spec/integration/indirector/facts/facter_spec.rb +5 -4
  152. data/spec/integration/indirector/file_content/file_server_spec.rb +8 -7
  153. data/spec/integration/indirector/file_metadata/file_server_spec.rb +8 -7
  154. data/spec/integration/network/authconfig_spec.rb +24 -23
  155. data/spec/integration/network/formats_spec.rb +1 -0
  156. data/spec/integration/node/environment_spec.rb +1 -0
  157. data/spec/integration/node/facts_spec.rb +10 -9
  158. data/spec/integration/node_spec.rb +7 -6
  159. data/spec/integration/parser/catalog_spec.rb +5 -1
  160. data/spec/integration/parser/collection_spec.rb +2 -1
  161. data/spec/integration/parser/compiler_spec.rb +6 -6
  162. data/spec/integration/parser/scope_spec.rb +1 -1
  163. data/spec/integration/parser/undef_param_spec.rb +1 -1
  164. data/spec/integration/provider/service/init_spec.rb +5 -4
  165. data/spec/integration/provider/service/systemd_spec.rb +2 -0
  166. data/spec/integration/provider/service/windows_spec.rb +2 -1
  167. data/spec/integration/reference/providers_spec.rb +2 -1
  168. data/spec/integration/reports_spec.rb +2 -1
  169. data/spec/integration/resource/catalog_spec.rb +17 -14
  170. data/spec/integration/resource/type_collection_spec.rb +5 -4
  171. data/spec/integration/ssl/certificate_request_spec.rb +1 -0
  172. data/spec/integration/ssl/host_spec.rb +2 -1
  173. data/spec/integration/ssl/key_spec.rb +1 -0
  174. data/spec/integration/test/test_helper_spec.rb +1 -0
  175. data/spec/integration/transaction/report_spec.rb +11 -6
  176. data/spec/integration/transaction_spec.rb +19 -18
  177. data/spec/integration/type/exec_spec.rb +1 -0
  178. data/spec/integration/type/file_spec.rb +33 -13
  179. data/spec/integration/type/package_spec.rb +24 -20
  180. data/spec/integration/type/tidy_spec.rb +2 -1
  181. data/spec/integration/type_spec.rb +1 -0
  182. data/spec/integration/util/autoload_spec.rb +2 -1
  183. data/spec/integration/util/rdoc/parser_spec.rb +1 -0
  184. data/spec/integration/util/settings_spec.rb +1 -0
  185. data/spec/integration/util/windows/adsi_spec.rb +5 -3
  186. data/spec/integration/util/windows/principal_spec.rb +1 -0
  187. data/spec/integration/util/windows/process_spec.rb +6 -4
  188. data/spec/integration/util/windows/registry_spec.rb +51 -93
  189. data/spec/integration/util/windows/security_spec.rb +4 -2
  190. data/spec/integration/util/windows/user_spec.rb +20 -37
  191. data/spec/integration/util_spec.rb +7 -4
  192. data/spec/lib/puppet_spec/compiler.rb +1 -1
  193. data/spec/lib/puppet_spec/files.rb +1 -0
  194. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
  195. data/spec/lib/puppet_spec/scope.rb +2 -1
  196. data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
  197. data/spec/shared_behaviours/file_server_terminus.rb +9 -8
  198. data/spec/shared_behaviours/file_serving.rb +8 -6
  199. data/spec/shared_behaviours/file_serving_model.rb +5 -3
  200. data/spec/shared_behaviours/hiera_indirections.rb +4 -3
  201. data/spec/shared_behaviours/iterative_functions.rb +1 -0
  202. data/spec/shared_behaviours/memory_terminus.rb +2 -2
  203. data/spec/shared_examples/rhel_package_provider.rb +70 -112
  204. data/spec/spec_helper.rb +2 -11
  205. data/spec/unit/agent/disabler_spec.rb +5 -4
  206. data/spec/unit/agent/locker_spec.rb +13 -12
  207. data/spec/unit/agent_spec.rb +85 -80
  208. data/spec/unit/application/agent_spec.rb +93 -88
  209. data/spec/unit/application/apply_spec.rb +83 -82
  210. data/spec/unit/application/config_spec.rb +1 -0
  211. data/spec/unit/application/describe_spec.rb +7 -6
  212. data/spec/unit/application/device_spec.rb +419 -395
  213. data/spec/unit/application/doc_spec.rb +46 -44
  214. data/spec/unit/application/face_base_spec.rb +62 -61
  215. data/spec/unit/application/facts_spec.rb +4 -3
  216. data/spec/unit/application/filebucket_spec.rb +74 -66
  217. data/spec/unit/application/indirection_base_spec.rb +6 -8
  218. data/spec/unit/application/lookup_spec.rb +26 -26
  219. data/spec/unit/application/resource_spec.rb +48 -42
  220. data/spec/unit/application/ssl_spec.rb +3 -8
  221. data/spec/unit/application_spec.rb +98 -86
  222. data/spec/unit/capability_spec.rb +6 -6
  223. data/spec/unit/certificate_factory_spec.rb +5 -3
  224. data/spec/unit/configurer/downloader_spec.rb +21 -20
  225. data/spec/unit/configurer/fact_handler_spec.rb +3 -2
  226. data/spec/unit/configurer/plugin_handler_spec.rb +8 -41
  227. data/spec/unit/configurer_spec.rb +198 -194
  228. data/spec/unit/confine/exists_spec.rb +15 -17
  229. data/spec/unit/confine/false_spec.rb +6 -32
  230. data/spec/unit/confine/feature_spec.rb +5 -7
  231. data/spec/unit/confine/true_spec.rb +6 -32
  232. data/spec/unit/confine/variable_spec.rb +15 -14
  233. data/spec/unit/confine_collection_spec.rb +29 -28
  234. data/spec/unit/confine_spec.rb +14 -13
  235. data/spec/unit/confiner_spec.rb +11 -10
  236. data/spec/unit/context/trusted_information_spec.rb +1 -1
  237. data/spec/unit/daemon_spec.rb +36 -35
  238. data/spec/unit/data_providers/function_data_provider_spec.rb +1 -0
  239. data/spec/unit/data_providers/hiera_data_provider_spec.rb +1 -0
  240. data/spec/unit/datatypes_spec.rb +4 -3
  241. data/spec/unit/defaults_spec.rb +27 -18
  242. data/spec/unit/environments_spec.rb +7 -7
  243. data/spec/unit/etc_spec.rb +32 -30
  244. data/spec/unit/external/pson_spec.rb +1 -0
  245. data/spec/unit/face/catalog_spec.rb +1 -0
  246. data/spec/unit/face/config_spec.rb +35 -31
  247. data/spec/unit/face/epp_face_spec.rb +4 -3
  248. data/spec/unit/face/facts_spec.rb +6 -5
  249. data/spec/unit/face/generate_spec.rb +5 -4
  250. data/spec/unit/face/help_spec.rb +8 -7
  251. data/spec/unit/face/key_spec.rb +1 -0
  252. data/spec/unit/face/man_spec.rb +2 -1
  253. data/spec/unit/face/module/install_spec.rb +5 -3
  254. data/spec/unit/face/module/list_spec.rb +12 -2
  255. data/spec/unit/face/module/search_spec.rb +9 -11
  256. data/spec/unit/face/module/uninstall_spec.rb +8 -4
  257. data/spec/unit/face/node_spec.rb +24 -23
  258. data/spec/unit/face/parser_spec.rb +18 -3
  259. data/spec/unit/face/plugin_spec.rb +9 -36
  260. data/spec/unit/face/status_spec.rb +1 -0
  261. data/spec/unit/file_bucket/dipper_spec.rb +20 -24
  262. data/spec/unit/file_bucket/file_spec.rb +2 -0
  263. data/spec/unit/file_serving/base_spec.rb +15 -14
  264. data/spec/unit/file_serving/configuration/parser_spec.rb +28 -27
  265. data/spec/unit/file_serving/configuration_spec.rb +66 -63
  266. data/spec/unit/file_serving/content_spec.rb +11 -10
  267. data/spec/unit/file_serving/fileset_spec.rb +58 -63
  268. data/spec/unit/file_serving/http_metadata_spec.rb +7 -8
  269. data/spec/unit/file_serving/metadata_spec.rb +36 -36
  270. data/spec/unit/file_serving/mount/file_spec.rb +32 -31
  271. data/spec/unit/file_serving/mount/locales_spec.rb +24 -23
  272. data/spec/unit/file_serving/mount/modules_spec.rb +15 -14
  273. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +24 -23
  274. data/spec/unit/file_serving/mount/plugins_spec.rb +24 -23
  275. data/spec/unit/file_serving/mount/tasks_spec.rb +15 -14
  276. data/spec/unit/file_serving/mount_spec.rb +1 -0
  277. data/spec/unit/file_serving/terminus_helper_spec.rb +42 -37
  278. data/spec/unit/file_serving/terminus_selector_spec.rb +13 -12
  279. data/spec/unit/file_system/uniquefile_spec.rb +4 -4
  280. data/spec/unit/file_system_spec.rb +2 -2
  281. data/spec/unit/forge/errors_spec.rb +1 -1
  282. data/spec/unit/forge/forge_spec.rb +16 -17
  283. data/spec/unit/forge/module_release_spec.rb +18 -18
  284. data/spec/unit/forge/repository_spec.rb +30 -29
  285. data/spec/unit/forge_spec.rb +11 -15
  286. data/spec/unit/functions/binary_file_spec.rb +3 -3
  287. data/spec/unit/functions/contain_spec.rb +2 -0
  288. data/spec/unit/functions/defined_spec.rb +1 -0
  289. data/spec/unit/functions/epp_spec.rb +2 -2
  290. data/spec/unit/functions/find_file_spec.rb +7 -7
  291. data/spec/unit/functions/include_spec.rb +4 -0
  292. data/spec/unit/functions/lookup_fixture_spec.rb +1 -0
  293. data/spec/unit/functions/lookup_spec.rb +2 -1
  294. data/spec/unit/functions/module_directory_spec.rb +12 -12
  295. data/spec/unit/functions/new_spec.rb +0 -15
  296. data/spec/unit/functions/require_spec.rb +3 -0
  297. data/spec/unit/functions/shared.rb +8 -5
  298. data/spec/unit/functions/versioncmp_spec.rb +2 -1
  299. data/spec/unit/functions4_spec.rb +10 -9
  300. data/spec/unit/gettext/config_spec.rb +4 -4
  301. data/spec/unit/gettext/module_loading_spec.rb +7 -7
  302. data/spec/unit/graph/rb_tree_map_spec.rb +2 -0
  303. data/spec/unit/graph/relationship_graph_spec.rb +2 -1
  304. data/spec/unit/graph/simple_graph_spec.rb +10 -9
  305. data/spec/unit/hiera/scope_spec.rb +0 -7
  306. data/spec/unit/hiera_puppet_spec.rb +20 -20
  307. data/spec/unit/indirector/catalog/compiler_spec.rb +149 -147
  308. data/spec/unit/indirector/catalog/json_spec.rb +2 -1
  309. data/spec/unit/indirector/catalog/msgpack_spec.rb +1 -0
  310. data/spec/unit/indirector/catalog/rest_spec.rb +1 -0
  311. data/spec/unit/indirector/catalog/store_configs_spec.rb +1 -0
  312. data/spec/unit/indirector/catalog/yaml_spec.rb +1 -0
  313. data/spec/unit/indirector/certificate/file_spec.rb +1 -0
  314. data/spec/unit/indirector/certificate/rest_spec.rb +10 -8
  315. data/spec/unit/indirector/certificate_request/file_spec.rb +1 -0
  316. data/spec/unit/indirector/certificate_request/rest_spec.rb +1 -0
  317. data/spec/unit/indirector/direct_file_server_spec.rb +18 -17
  318. data/spec/unit/indirector/envelope_spec.rb +2 -1
  319. data/spec/unit/indirector/exec_spec.rb +5 -4
  320. data/spec/unit/indirector/face_spec.rb +9 -9
  321. data/spec/unit/indirector/facts/facter_spec.rb +43 -37
  322. data/spec/unit/indirector/facts/network_device_spec.rb +9 -8
  323. data/spec/unit/indirector/facts/rest_spec.rb +8 -7
  324. data/spec/unit/indirector/facts/store_configs_spec.rb +1 -0
  325. data/spec/unit/indirector/facts/yaml_spec.rb +1 -0
  326. data/spec/unit/indirector/file_bucket_file/file_spec.rb +4 -3
  327. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +1 -0
  328. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +5 -4
  329. data/spec/unit/indirector/file_content/file_server_spec.rb +1 -0
  330. data/spec/unit/indirector/file_content/file_spec.rb +1 -0
  331. data/spec/unit/indirector/file_content/rest_spec.rb +1 -0
  332. data/spec/unit/indirector/file_content/selector_spec.rb +1 -0
  333. data/spec/unit/indirector/file_metadata/file_server_spec.rb +1 -0
  334. data/spec/unit/indirector/file_metadata/file_spec.rb +13 -12
  335. data/spec/unit/indirector/file_metadata/rest_spec.rb +1 -0
  336. data/spec/unit/indirector/file_metadata/selector_spec.rb +1 -0
  337. data/spec/unit/indirector/file_server_spec.rb +87 -87
  338. data/spec/unit/indirector/indirection_spec.rb +226 -242
  339. data/spec/unit/indirector/json_spec.rb +9 -7
  340. data/spec/unit/indirector/key/file_spec.rb +22 -21
  341. data/spec/unit/indirector/memory_spec.rb +7 -6
  342. data/spec/unit/indirector/msgpack_spec.rb +9 -7
  343. data/spec/unit/indirector/node/exec_spec.rb +3 -2
  344. data/spec/unit/indirector/node/memory_spec.rb +4 -2
  345. data/spec/unit/indirector/node/msgpack_spec.rb +1 -0
  346. data/spec/unit/indirector/node/plain_spec.rb +4 -2
  347. data/spec/unit/indirector/node/rest_spec.rb +1 -0
  348. data/spec/unit/indirector/node/store_configs_spec.rb +1 -0
  349. data/spec/unit/indirector/node/yaml_spec.rb +1 -0
  350. data/spec/unit/indirector/none_spec.rb +5 -5
  351. data/spec/unit/indirector/plain_spec.rb +8 -7
  352. data/spec/unit/indirector/report/msgpack_spec.rb +1 -0
  353. data/spec/unit/indirector/report/processor_spec.rb +22 -21
  354. data/spec/unit/indirector/report/rest_spec.rb +12 -11
  355. data/spec/unit/indirector/report/yaml_spec.rb +1 -0
  356. data/spec/unit/indirector/request_spec.rb +12 -11
  357. data/spec/unit/indirector/resource/ral_spec.rb +54 -47
  358. data/spec/unit/indirector/resource/store_configs_spec.rb +1 -0
  359. data/spec/unit/indirector/rest_spec.rb +110 -113
  360. data/spec/unit/indirector/ssl_file_spec.rb +65 -64
  361. data/spec/unit/indirector/status/local_spec.rb +1 -0
  362. data/spec/unit/indirector/status/rest_spec.rb +1 -0
  363. data/spec/unit/indirector/store_configs_spec.rb +1 -0
  364. data/spec/unit/indirector/terminus_spec.rb +27 -27
  365. data/spec/unit/indirector/yaml_spec.rb +6 -5
  366. data/spec/unit/indirector_spec.rb +2 -1
  367. data/spec/unit/info_service_spec.rb +1 -1
  368. data/spec/unit/interface/action_builder_spec.rb +1 -0
  369. data/spec/unit/interface/action_manager_spec.rb +1 -0
  370. data/spec/unit/interface/action_spec.rb +3 -2
  371. data/spec/unit/interface/documentation_spec.rb +1 -0
  372. data/spec/unit/interface/face_collection_spec.rb +12 -19
  373. data/spec/unit/interface_spec.rb +3 -3
  374. data/spec/unit/man_spec.rb +4 -3
  375. data/spec/unit/module_spec.rb +51 -46
  376. data/spec/unit/module_tool/applications/installer_spec.rb +11 -10
  377. data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
  378. data/spec/unit/module_tool/applications/uninstaller_spec.rb +2 -1
  379. data/spec/unit/module_tool/applications/unpacker_spec.rb +13 -13
  380. data/spec/unit/module_tool/applications/upgrader_spec.rb +5 -5
  381. data/spec/unit/module_tool/install_directory_spec.rb +8 -8
  382. data/spec/unit/module_tool/installed_modules_spec.rb +3 -3
  383. data/spec/unit/module_tool/tar/gnu_spec.rb +6 -6
  384. data/spec/unit/module_tool/tar/mini_spec.rb +12 -12
  385. data/spec/unit/module_tool/tar_spec.rb +13 -12
  386. data/spec/unit/module_tool_spec.rb +12 -7
  387. data/spec/unit/network/auth_config_parser_spec.rb +13 -11
  388. data/spec/unit/network/authconfig_spec.rb +18 -17
  389. data/spec/unit/network/authorization_spec.rb +5 -4
  390. data/spec/unit/network/authstore_spec.rb +1 -0
  391. data/spec/unit/network/format_handler_spec.rb +1 -0
  392. data/spec/unit/network/format_spec.rb +10 -9
  393. data/spec/unit/network/format_support_spec.rb +29 -28
  394. data/spec/unit/network/formats_spec.rb +5 -4
  395. data/spec/unit/network/http/api/indirected_routes_spec.rb +29 -24
  396. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +2 -2
  397. data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -1
  398. data/spec/unit/network/http/api/master/v3/environments_spec.rb +7 -6
  399. data/spec/unit/network/http/api_spec.rb +2 -0
  400. data/spec/unit/network/http/compression_spec.rb +22 -21
  401. data/spec/unit/network/http/connection_spec.rb +121 -30
  402. data/spec/unit/network/http/factory_spec.rb +6 -11
  403. data/spec/unit/network/http/handler_spec.rb +18 -9
  404. data/spec/unit/network/http/nocache_pool_spec.rb +7 -6
  405. data/spec/unit/network/http/pool_spec.rb +29 -28
  406. data/spec/unit/network/http/request_spec.rb +2 -0
  407. data/spec/unit/network/http/response_spec.rb +13 -11
  408. data/spec/unit/network/http/route_spec.rb +1 -0
  409. data/spec/unit/network/http/session_spec.rb +2 -1
  410. data/spec/unit/network/http/site_spec.rb +1 -0
  411. data/spec/unit/network/http_pool_spec.rb +9 -18
  412. data/spec/unit/network/http_spec.rb +1 -0
  413. data/spec/unit/network/resolver_spec.rb +26 -25
  414. data/spec/unit/network/rights_spec.rb +53 -52
  415. data/spec/unit/node/environment_spec.rb +15 -14
  416. data/spec/unit/node/facts_spec.rb +7 -5
  417. data/spec/unit/node_spec.rb +10 -4
  418. data/spec/unit/other/selinux_spec.rb +1 -0
  419. data/spec/unit/parameter/boolean_spec.rb +2 -1
  420. data/spec/unit/parameter/package_options_spec.rb +2 -1
  421. data/spec/unit/parameter/path_spec.rb +1 -0
  422. data/spec/unit/parameter/value_collection_spec.rb +1 -0
  423. data/spec/unit/parameter/value_spec.rb +1 -0
  424. data/spec/unit/parameter_spec.rb +9 -9
  425. data/spec/unit/parser/ast/block_expression_spec.rb +8 -6
  426. data/spec/unit/parser/ast/leaf_spec.rb +21 -20
  427. data/spec/unit/parser/compiler_spec.rb +96 -84
  428. data/spec/unit/parser/environment_compiler_spec.rb +8 -7
  429. data/spec/unit/parser/files_spec.rb +1 -0
  430. data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
  431. data/spec/unit/parser/functions/digest_spec.rb +1 -0
  432. data/spec/unit/parser/functions/fail_spec.rb +2 -1
  433. data/spec/unit/parser/functions/file_spec.rb +14 -13
  434. data/spec/unit/parser/functions/fqdn_rand_spec.rb +6 -5
  435. data/spec/unit/parser/functions/generate_spec.rb +8 -7
  436. data/spec/unit/parser/functions/inline_template_spec.rb +1 -0
  437. data/spec/unit/parser/functions/regsubst_spec.rb +1 -0
  438. data/spec/unit/parser/functions/scanf_spec.rb +1 -0
  439. data/spec/unit/parser/functions/shellquote_spec.rb +1 -0
  440. data/spec/unit/parser/functions/split_spec.rb +1 -0
  441. data/spec/unit/parser/functions/sprintf_spec.rb +1 -0
  442. data/spec/unit/parser/functions/tag_spec.rb +2 -1
  443. data/spec/unit/parser/functions/tagged_spec.rb +3 -2
  444. data/spec/unit/parser/functions/template_spec.rb +13 -13
  445. data/spec/unit/parser/functions/versioncmp_spec.rb +2 -1
  446. data/spec/unit/parser/functions_spec.rb +7 -6
  447. data/spec/unit/parser/relationship_spec.rb +1 -0
  448. data/spec/unit/parser/resource_spec.rb +42 -42
  449. data/spec/unit/parser/scope_spec.rb +35 -39
  450. data/spec/unit/parser/templatewrapper_spec.rb +12 -11
  451. data/spec/unit/parser/type_loader_spec.rb +19 -17
  452. data/spec/unit/pops/adaptable_spec.rb +1 -0
  453. data/spec/unit/pops/benchmark_spec.rb +1 -0
  454. data/spec/unit/pops/evaluator/access_ops_spec.rb +1 -0
  455. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +1 -0
  456. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -0
  457. data/spec/unit/pops/evaluator/collections_ops_spec.rb +1 -0
  458. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +1 -0
  459. data/spec/unit/pops/evaluator/conditionals_spec.rb +1 -0
  460. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +47 -10
  461. data/spec/unit/pops/evaluator/logical_ops_spec.rb +1 -0
  462. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +1 -0
  463. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +1 -0
  464. data/spec/unit/pops/evaluator/variables_spec.rb +1 -0
  465. data/spec/unit/pops/factory_spec.rb +4 -3
  466. data/spec/unit/pops/issues_spec.rb +20 -19
  467. data/spec/unit/pops/loaders/loader_spec.rb +4 -8
  468. data/spec/unit/pops/loaders/loaders_spec.rb +31 -101
  469. data/spec/unit/pops/lookup/context_spec.rb +1 -0
  470. data/spec/unit/pops/lookup/interpolation_spec.rb +3 -2
  471. data/spec/unit/pops/merge_strategy_spec.rb +1 -0
  472. data/spec/unit/pops/migration_spec.rb +5 -3
  473. data/spec/unit/pops/model/model_spec.rb +1 -0
  474. data/spec/unit/pops/model/pn_transformer_spec.rb +1 -4
  475. data/spec/unit/pops/parser/locator_spec.rb +6 -48
  476. data/spec/unit/pops/parser/parse_application_spec.rb +1 -0
  477. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +1 -0
  478. data/spec/unit/pops/parser/parse_calls_spec.rb +1 -0
  479. data/spec/unit/pops/parser/parse_capabilities_spec.rb +1 -0
  480. data/spec/unit/pops/parser/parse_conditionals_spec.rb +1 -0
  481. data/spec/unit/pops/parser/parse_containers_spec.rb +1 -0
  482. data/spec/unit/pops/parser/parse_heredoc_spec.rb +15 -111
  483. data/spec/unit/pops/parser/parse_plan_spec.rb +1 -0
  484. data/spec/unit/pops/parser/parse_resource_spec.rb +1 -0
  485. data/spec/unit/pops/parser/parse_site_spec.rb +1 -0
  486. data/spec/unit/pops/parser/pn_parser_spec.rb +1 -0
  487. data/spec/unit/pops/pn_spec.rb +1 -0
  488. data/spec/unit/pops/resource/resource_type_impl_spec.rb +1 -0
  489. data/spec/unit/pops/serialization/serialization_spec.rb +1 -1
  490. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  491. data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
  492. data/spec/unit/pops/types/ruby_generator_spec.rb +2 -2
  493. data/spec/unit/pops/types/string_converter_spec.rb +5 -1
  494. data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
  495. data/spec/unit/pops/types/type_calculator_spec.rb +30 -30
  496. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +0 -9
  497. data/spec/unit/pops/types/type_parser_spec.rb +13 -13
  498. data/spec/unit/pops/validator/validator_spec.rb +2 -1
  499. data/spec/unit/pops/visitor_spec.rb +1 -0
  500. data/spec/unit/property/boolean_spec.rb +1 -1
  501. data/spec/unit/property/ensure_spec.rb +1 -0
  502. data/spec/unit/property/keyvalue_spec.rb +34 -32
  503. data/spec/unit/property/list_spec.rb +27 -26
  504. data/spec/unit/property/ordered_list_spec.rb +14 -10
  505. data/spec/unit/property_spec.rb +43 -42
  506. data/spec/unit/provider/aix_object_spec.rb +45 -47
  507. data/spec/unit/provider/command_spec.rb +9 -9
  508. data/spec/unit/provider/exec/posix_spec.rb +31 -6
  509. data/spec/unit/provider/exec/shell_spec.rb +1 -0
  510. data/spec/unit/provider/exec/windows_spec.rb +4 -2
  511. data/spec/unit/provider/exec_spec.rb +1 -0
  512. data/spec/unit/provider/file/posix_spec.rb +24 -22
  513. data/spec/unit/provider/file/windows_spec.rb +17 -15
  514. data/spec/unit/provider/group/aix_spec.rb +2 -3
  515. data/spec/unit/provider/group/groupadd_spec.rb +26 -30
  516. data/spec/unit/provider/group/ldap_spec.rb +18 -18
  517. data/spec/unit/provider/group/pw_spec.rb +11 -11
  518. data/spec/unit/provider/group/windows_adsi_spec.rb +53 -59
  519. data/spec/unit/provider/ldap_spec.rb +62 -61
  520. data/spec/unit/provider/nameservice/directoryservice_spec.rb +36 -35
  521. data/spec/unit/provider/nameservice_spec.rb +40 -38
  522. data/spec/unit/provider/package/aix_spec.rb +15 -15
  523. data/spec/unit/provider/package/appdmg_spec.rb +13 -13
  524. data/spec/unit/provider/package/apt_spec.rb +27 -44
  525. data/spec/unit/provider/package/aptitude_spec.rb +7 -6
  526. data/spec/unit/provider/package/aptrpm_spec.rb +12 -7
  527. data/spec/unit/provider/package/base_spec.rb +4 -4
  528. data/spec/unit/provider/package/dnf_spec.rb +20 -18
  529. data/spec/unit/provider/package/dpkg_spec.rb +53 -70
  530. data/spec/unit/provider/package/freebsd_spec.rb +11 -11
  531. data/spec/unit/provider/package/gem_spec.rb +55 -132
  532. data/spec/unit/provider/package/hpux_spec.rb +8 -8
  533. data/spec/unit/provider/package/macports_spec.rb +42 -46
  534. data/spec/unit/provider/package/nim_spec.rb +39 -30
  535. data/spec/unit/provider/package/openbsd_spec.rb +39 -36
  536. data/spec/unit/provider/package/opkg_spec.rb +26 -23
  537. data/spec/unit/provider/package/pacman_spec.rb +118 -97
  538. data/spec/unit/provider/package/pip3_spec.rb +0 -17
  539. data/spec/unit/provider/package/pip_spec.rb +106 -95
  540. data/spec/unit/provider/package/pkg_spec.rb +109 -109
  541. data/spec/unit/provider/package/pkgdmg_spec.rb +63 -65
  542. data/spec/unit/provider/package/pkgin_spec.rb +8 -10
  543. data/spec/unit/provider/package/pkgng_spec.rb +31 -22
  544. data/spec/unit/provider/package/pkgutil_spec.rb +49 -45
  545. data/spec/unit/provider/package/portage_spec.rb +74 -70
  546. data/spec/unit/provider/package/puppet_gem_spec.rb +13 -37
  547. data/spec/unit/provider/package/rpm_spec.rb +76 -154
  548. data/spec/unit/provider/package/sun_spec.rb +18 -16
  549. data/spec/unit/provider/package/tdnf_spec.rb +2 -2
  550. data/spec/unit/provider/package/up2date_spec.rb +4 -2
  551. data/spec/unit/provider/package/urpmi_spec.rb +17 -15
  552. data/spec/unit/provider/package/windows/exe_package_spec.rb +15 -12
  553. data/spec/unit/provider/package/windows/msi_package_spec.rb +22 -19
  554. data/spec/unit/provider/package/windows/package_spec.rb +42 -37
  555. data/spec/unit/provider/package/windows_spec.rb +32 -47
  556. data/spec/unit/provider/package/yum_spec.rb +7 -7
  557. data/spec/unit/provider/package/zypper_spec.rb +87 -87
  558. data/spec/unit/provider/parsedfile_spec.rb +45 -44
  559. data/spec/unit/provider/service/base_spec.rb +5 -4
  560. data/spec/unit/provider/service/bsd_spec.rb +29 -27
  561. data/spec/unit/provider/service/daemontools_spec.rb +35 -35
  562. data/spec/unit/provider/service/debian_spec.rb +38 -38
  563. data/spec/unit/provider/service/freebsd_spec.rb +18 -18
  564. data/spec/unit/provider/service/gentoo_spec.rb +55 -50
  565. data/spec/unit/provider/service/init_spec.rb +52 -53
  566. data/spec/unit/provider/service/launchd_spec.rb +116 -138
  567. data/spec/unit/provider/service/openbsd_spec.rb +50 -50
  568. data/spec/unit/provider/service/openrc_spec.rb +45 -43
  569. data/spec/unit/provider/service/openwrt_spec.rb +31 -26
  570. data/spec/unit/provider/service/rcng_spec.rb +14 -14
  571. data/spec/unit/provider/service/redhat_spec.rb +43 -45
  572. data/spec/unit/provider/service/runit_spec.rb +27 -29
  573. data/spec/unit/provider/service/smf_spec.rb +66 -74
  574. data/spec/unit/provider/service/src_spec.rb +47 -46
  575. data/spec/unit/provider/service/systemd_spec.rb +136 -109
  576. data/spec/unit/provider/service/upstart_spec.rb +93 -77
  577. data/spec/unit/provider/service/windows_spec.rb +41 -33
  578. data/spec/unit/provider/user/aix_spec.rb +31 -31
  579. data/spec/unit/provider/user/directoryservice_spec.rb +114 -146
  580. data/spec/unit/provider/user/hpux_spec.rb +16 -16
  581. data/spec/unit/provider/user/ldap_spec.rb +57 -57
  582. data/spec/unit/provider/user/openbsd_spec.rb +12 -10
  583. data/spec/unit/provider/user/pw_spec.rb +35 -37
  584. data/spec/unit/provider/user/user_role_add_spec.rb +93 -93
  585. data/spec/unit/provider/user/useradd_spec.rb +92 -93
  586. data/spec/unit/provider/user/windows_adsi_spec.rb +60 -59
  587. data/spec/unit/provider_spec.rb +35 -35
  588. data/spec/unit/puppet_pal_2pec.rb +5 -4
  589. data/spec/unit/puppet_pal_spec.rb +1 -0
  590. data/spec/unit/puppet_spec.rb +7 -6
  591. data/spec/unit/relationship_spec.rb +1 -0
  592. data/spec/unit/reports/http_spec.rb +23 -21
  593. data/spec/unit/reports/store_spec.rb +4 -3
  594. data/spec/unit/reports_spec.rb +14 -12
  595. data/spec/unit/resource/capability_finder_spec.rb +17 -15
  596. data/spec/unit/resource/catalog_spec.rb +68 -72
  597. data/spec/unit/resource/status_spec.rb +8 -6
  598. data/spec/unit/resource/type_collection_spec.rb +18 -17
  599. data/spec/unit/resource/type_spec.rb +35 -34
  600. data/spec/unit/resource_spec.rb +63 -36
  601. data/spec/unit/rest/client_spec.rb +135 -0
  602. data/spec/unit/rest/route_spec.rb +6 -6
  603. data/spec/unit/scheduler/job_spec.rb +1 -0
  604. data/spec/unit/scheduler/scheduler_spec.rb +1 -0
  605. data/spec/unit/scheduler/splay_job_spec.rb +2 -1
  606. data/spec/unit/settings/array_setting_spec.rb +1 -1
  607. data/spec/unit/settings/autosign_setting_spec.rb +9 -9
  608. data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
  609. data/spec/unit/settings/config_file_spec.rb +1 -0
  610. data/spec/unit/settings/directory_setting_spec.rb +7 -2
  611. data/spec/unit/settings/duration_setting_spec.rb +2 -1
  612. data/spec/unit/settings/enum_setting_spec.rb +1 -1
  613. data/spec/unit/settings/environment_conf_spec.rb +6 -4
  614. data/spec/unit/settings/file_setting_spec.rb +46 -44
  615. data/spec/unit/settings/path_setting_spec.rb +2 -1
  616. data/spec/unit/settings/priority_setting_spec.rb +2 -1
  617. data/spec/unit/settings/string_setting_spec.rb +15 -14
  618. data/spec/unit/settings/terminus_setting_spec.rb +2 -1
  619. data/spec/unit/settings/value_translator_spec.rb +1 -0
  620. data/spec/unit/settings_spec.rb +224 -253
  621. data/spec/unit/ssl/base_spec.rb +15 -14
  622. data/spec/unit/ssl/certificate_request_spec.rb +58 -62
  623. data/spec/unit/ssl/certificate_spec.rb +25 -23
  624. data/spec/unit/ssl/digest_spec.rb +1 -0
  625. data/spec/unit/ssl/host_spec.rb +149 -166
  626. data/spec/unit/ssl/key_spec.rb +31 -30
  627. data/spec/unit/ssl/validator_spec.rb +39 -40
  628. data/spec/unit/task_spec.rb +45 -44
  629. data/spec/unit/transaction/additional_resource_generator_spec.rb +5 -3
  630. data/spec/unit/transaction/event_manager_spec.rb +88 -87
  631. data/spec/unit/transaction/event_spec.rb +15 -16
  632. data/spec/unit/transaction/persistence_spec.rb +17 -16
  633. data/spec/unit/transaction/report_spec.rb +12 -11
  634. data/spec/unit/transaction/resource_harness_spec.rb +31 -52
  635. data/spec/unit/transaction_spec.rb +87 -140
  636. data/spec/unit/type/component_spec.rb +1 -0
  637. data/spec/unit/type/exec_spec.rb +50 -101
  638. data/spec/unit/type/file/checksum_spec.rb +10 -9
  639. data/spec/unit/type/file/checksum_value_spec.rb +32 -31
  640. data/spec/unit/type/file/content_spec.rb +61 -58
  641. data/spec/unit/type/file/ctime_spec.rb +1 -0
  642. data/spec/unit/type/file/ensure_spec.rb +13 -12
  643. data/spec/unit/type/file/group_spec.rb +7 -5
  644. data/spec/unit/type/file/mode_spec.rb +6 -4
  645. data/spec/unit/type/file/mtime_spec.rb +1 -0
  646. data/spec/unit/type/file/owner_spec.rb +8 -6
  647. data/spec/unit/type/file/selinux_spec.rb +19 -17
  648. data/spec/unit/type/file/source_spec.rb +101 -104
  649. data/spec/unit/type/file/type_spec.rb +1 -0
  650. data/spec/unit/type/file_spec.rb +185 -195
  651. data/spec/unit/type/filebucket_spec.rb +10 -11
  652. data/spec/unit/type/group_spec.rb +8 -6
  653. data/spec/unit/type/noop_metaparam_spec.rb +2 -1
  654. data/spec/unit/type/package/package_settings_spec.rb +23 -44
  655. data/spec/unit/type/package_spec.rb +57 -56
  656. data/spec/unit/type/resources_spec.rb +74 -72
  657. data/spec/unit/type/schedule_spec.rb +26 -24
  658. data/spec/unit/type/service_spec.rb +75 -49
  659. data/spec/unit/type/stage_spec.rb +1 -0
  660. data/spec/unit/type/tidy_spec.rb +62 -61
  661. data/spec/unit/type/user_spec.rb +25 -24
  662. data/spec/unit/type/whit_spec.rb +1 -0
  663. data/spec/unit/type_spec.rb +54 -55
  664. data/spec/unit/util/at_fork_spec.rb +19 -18
  665. data/spec/unit/util/autoload_spec.rb +56 -55
  666. data/spec/unit/util/backups_spec.rb +35 -34
  667. data/spec/unit/util/character_encoding_spec.rb +5 -5
  668. data/spec/unit/util/checksums_spec.rb +39 -38
  669. data/spec/unit/util/colors_spec.rb +2 -1
  670. data/spec/unit/util/command_line_spec.rb +20 -40
  671. data/spec/unit/util/constant_inflector_spec.rb +1 -0
  672. data/spec/unit/util/diff_spec.rb +8 -7
  673. data/spec/unit/util/errors_spec.rb +1 -0
  674. data/spec/unit/util/execution_spec.rb +163 -187
  675. data/spec/unit/util/execution_stub_spec.rb +1 -0
  676. data/spec/unit/util/feature_spec.rb +14 -21
  677. data/spec/unit/util/filetype_spec.rb +49 -49
  678. data/spec/unit/util/http_proxy_spec.rb +12 -12
  679. data/spec/unit/util/inifile_spec.rb +31 -26
  680. data/spec/unit/util/json_lockfile_spec.rb +5 -3
  681. data/spec/unit/util/ldap/connection_spec.rb +25 -26
  682. data/spec/unit/util/ldap/generator_spec.rb +1 -0
  683. data/spec/unit/util/ldap/manager_spec.rb +101 -102
  684. data/spec/unit/util/lockfile_spec.rb +1 -0
  685. data/spec/unit/util/log/destinations_spec.rb +33 -30
  686. data/spec/unit/util/log_spec.rb +34 -48
  687. data/spec/unit/util/logging_spec.rb +72 -58
  688. data/spec/unit/util/metric_spec.rb +1 -0
  689. data/spec/unit/util/monkey_patches_spec.rb +9 -7
  690. data/spec/unit/util/multi_match_spec.rb +1 -0
  691. data/spec/unit/util/network_device/config_spec.rb +1 -0
  692. data/spec/unit/util/network_device/transport/base_spec.rb +6 -5
  693. data/spec/unit/util/network_device_spec.rb +9 -7
  694. data/spec/unit/util/package_spec.rb +1 -0
  695. data/spec/unit/util/pidlock_spec.rb +15 -60
  696. data/spec/unit/util/plist_spec.rb +33 -40
  697. data/spec/unit/util/posix_spec.rb +51 -54
  698. data/spec/unit/util/rdoc_spec.rb +10 -9
  699. data/spec/unit/util/reference_spec.rb +1 -0
  700. data/spec/unit/util/resource_template_spec.rb +20 -20
  701. data/spec/unit/util/retry_action_spec.rb +8 -7
  702. data/spec/unit/util/rubygems_spec.rb +8 -7
  703. data/spec/unit/util/run_mode_spec.rb +4 -3
  704. data/spec/unit/util/selinux_spec.rb +72 -79
  705. data/spec/unit/util/splayer_spec.rb +9 -8
  706. data/spec/unit/util/ssl_spec.rb +1 -0
  707. data/spec/unit/util/storage_spec.rb +23 -22
  708. data/spec/unit/util/suidmanager_spec.rb +54 -45
  709. data/spec/unit/util/symbolic_file_mode_spec.rb +1 -0
  710. data/spec/unit/util/tag_set_spec.rb +1 -0
  711. data/spec/unit/util/tagging_spec.rb +1 -0
  712. data/spec/unit/util/terminal_spec.rb +10 -9
  713. data/spec/unit/util/user_attr_spec.rb +2 -1
  714. data/spec/unit/util/warnings_spec.rb +4 -3
  715. data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
  716. data/spec/unit/util/watcher_spec.rb +21 -51
  717. data/spec/unit/util/windows/access_control_entry_spec.rb +1 -0
  718. data/spec/unit/util/windows/access_control_list_spec.rb +1 -0
  719. data/spec/unit/util/windows/adsi_spec.rb +138 -136
  720. data/spec/unit/util/windows/api_types_spec.rb +1 -0
  721. data/spec/unit/util/windows/eventlog_spec.rb +12 -9
  722. data/spec/unit/util/windows/file_spec.rb +1 -0
  723. data/spec/unit/util/windows/root_certs_spec.rb +1 -0
  724. data/spec/unit/util/windows/security_descriptor_spec.rb +2 -0
  725. data/spec/unit/util/windows/service_spec.rb +103 -100
  726. data/spec/unit/util/windows/sid_spec.rb +13 -11
  727. data/spec/unit/util/windows/string_spec.rb +1 -0
  728. data/spec/unit/util_spec.rb +57 -55
  729. data/spec/unit/version_spec.rb +6 -6
  730. metadata +20 -32
  731. data/CODEOWNERS +0 -30
  732. data/ext/autotest/Rakefile +0 -8
  733. data/ext/autotest/config +0 -43
  734. data/ext/autotest/readme.rst +0 -16
  735. data/lib/puppet/confine/boolean.rb +0 -45
  736. data/lib/puppet/provider/package_targetable.rb +0 -68
  737. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load2.rb +0 -11
  738. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load3.rb +0 -11
  739. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load4.rb +0 -11
  740. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load5.rb +0 -12
  741. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/good_func_load.rb +0 -9
  742. data/spec/fixtures/unit/provider/package/pkgng/pkg.info +0 -7
  743. data/spec/fixtures/unit/provider/package/pkgng/pkg.query_absent +0 -1
  744. data/spec/integration/network/http_pool_spec.rb +0 -120
  745. data/spec/integration/provider/file/windows_spec.rb +0 -162
  746. data/spec/lib/puppet_spec/https.rb +0 -166
  747. data/spec/unit/settings/server_list_setting_spec.rb +0 -21
  748. data/spec/watchr.rb +0 -137
@@ -16,11 +16,11 @@ describe 'Puppet::Type::User::Provider::Aix' do
16
16
 
17
17
  describe '.pgrp_to_gid' do
18
18
  it "finds the primary group's gid" do
19
- allow(provider).to receive(:ia_module_args).and_return(['-R', 'module'])
19
+ provider.stubs(:ia_module_args).returns(['-R', 'module'])
20
20
 
21
- expect(group_provider_class).to receive(:list_all)
21
+ group_provider_class.expects(:list_all)
22
22
  .with(provider.ia_module_args)
23
- .and_return([{ :name => 'group', :id => 1}])
23
+ .returns([{ :name => 'group', :id => 1}])
24
24
 
25
25
  expect(provider_class.pgrp_to_gid(provider, 'group')).to eql(1)
26
26
  end
@@ -28,11 +28,11 @@ describe 'Puppet::Type::User::Provider::Aix' do
28
28
 
29
29
  describe '.gid_to_pgrp' do
30
30
  it "finds the gid's primary group" do
31
- allow(provider).to receive(:ia_module_args).and_return(['-R', 'module'])
31
+ provider.stubs(:ia_module_args).returns(['-R', 'module'])
32
32
 
33
- expect(group_provider_class).to receive(:list_all)
33
+ group_provider_class.expects(:list_all)
34
34
  .with(provider.ia_module_args)
35
- .and_return([{ :name => 'group', :id => 1}])
35
+ .returns([{ :name => 'group', :id => 1}])
36
36
 
37
37
  expect(provider_class.gid_to_pgrp(provider, 1)).to eql('group')
38
38
  end
@@ -73,7 +73,7 @@ describe 'Puppet::Type::User::Provider::Aix' do
73
73
  describe '.groups_attribute_to_property' do
74
74
  it "reads the user's groups from the etc/groups file" do
75
75
  groups = ['system', 'adm']
76
- allow(Puppet::Util::POSIX).to receive(:groups_of).with(resource[:name]).and_return(groups)
76
+ Puppet::Util::POSIX.stubs(:groups_of).with(resource[:name]).returns(groups)
77
77
 
78
78
  actual_groups = provider_class.groups_attribute_to_property(provider, 'unused_value')
79
79
  expected_groups = groups.join(',')
@@ -98,19 +98,19 @@ describe 'Puppet::Type::User::Provider::Aix' do
98
98
 
99
99
  describe '#gid=' do
100
100
  let(:value) { 'new_pgrp' }
101
+
101
102
  let(:old_pgrp) { 'old_pgrp' }
102
103
  let(:cur_groups) { 'system,adm' }
103
-
104
104
  before(:each) do
105
- allow(provider).to receive(:gid).and_return(old_pgrp)
106
- allow(provider).to receive(:groups).and_return(cur_groups)
107
- allow(provider).to receive(:set)
105
+ provider.stubs(:gid).returns(old_pgrp)
106
+ provider.stubs(:groups).returns(cur_groups)
107
+ provider.stubs(:set)
108
108
  end
109
109
 
110
110
  it 'raises a Puppet::Error if it fails to set the groups property' do
111
- allow(provider).to receive(:set)
111
+ provider.stubs(:set)
112
112
  .with(:groups, cur_groups)
113
- .and_raise(Puppet::ExecutionFailure, 'failed to reset the groups!')
113
+ .raises(Puppet::ExecutionFailure, 'failed to reset the groups!')
114
114
 
115
115
  expect { provider.gid = value }.to raise_error do |error|
116
116
  expect(error).to be_a(Puppet::Error)
@@ -153,15 +153,15 @@ describe 'Puppet::Type::User::Provider::Aix' do
153
153
 
154
154
  describe '#password=' do
155
155
  let(:mock_tempfile) do
156
- mock_tempfile_obj = double()
157
- allow(mock_tempfile_obj).to receive(:<<)
158
- allow(mock_tempfile_obj).to receive(:close)
159
- allow(mock_tempfile_obj).to receive(:delete)
160
- allow(mock_tempfile_obj).to receive(:path).and_return('tempfile_path')
156
+ mock_tempfile_obj = mock()
157
+ mock_tempfile_obj.stubs(:<<)
158
+ mock_tempfile_obj.stubs(:close)
159
+ mock_tempfile_obj.stubs(:delete)
160
+ mock_tempfile_obj.stubs(:path).returns('tempfile_path')
161
161
 
162
- allow(Tempfile).to receive(:new)
162
+ Tempfile.stubs(:new)
163
163
  .with("puppet_#{provider.name}_pw", :encoding => Encoding::ASCII)
164
- .and_return(mock_tempfile_obj)
164
+ .returns(mock_tempfile_obj)
165
165
 
166
166
  mock_tempfile_obj
167
167
  end
@@ -177,7 +177,7 @@ describe 'Puppet::Type::User::Provider::Aix' do
177
177
  end
178
178
 
179
179
  it 'raises a Puppet::Error if chpasswd fails' do
180
- allow(provider).to receive(:execute).with(cmd, execute_options).and_return("failed to change passwd!")
180
+ provider.stubs(:execute).with(cmd, execute_options).returns("failed to change passwd!")
181
181
  expect { provider.password = 'foo' }.to raise_error do |error|
182
182
  expect(error).to be_a(Puppet::Error)
183
183
  expect(error.message).to match("failed to change passwd!")
@@ -185,15 +185,15 @@ describe 'Puppet::Type::User::Provider::Aix' do
185
185
  end
186
186
 
187
187
  it "changes the user's password" do
188
- expect(provider).to receive(:execute).with(cmd, execute_options).and_return("")
188
+ provider.expects(:execute).with(cmd, execute_options).returns("")
189
189
  provider.password = 'foo'
190
190
  end
191
191
 
192
192
  it "closes and deletes the tempfile" do
193
- allow(provider).to receive(:execute).with(cmd, execute_options).and_return("")
193
+ provider.stubs(:execute).with(cmd, execute_options).returns("")
194
194
 
195
- expect(mock_tempfile).to receive(:close).twice
196
- expect(mock_tempfile).to receive(:delete)
195
+ mock_tempfile.expects(:close).times(2)
196
+ mock_tempfile.expects(:delete)
197
197
 
198
198
  provider.password = 'foo'
199
199
  end
@@ -201,13 +201,13 @@ describe 'Puppet::Type::User::Provider::Aix' do
201
201
 
202
202
  describe '#create' do
203
203
  it 'should create the user' do
204
- allow(provider.resource).to receive(:should).with(anything).and_return(nil)
205
- allow(provider.resource).to receive(:should).with(:groups).and_return('g1,g2')
206
- allow(provider.resource).to receive(:should).with(:password).and_return('password')
204
+ provider.resource.stubs(:should).with(anything).returns(nil)
205
+ provider.resource.stubs(:should).with(:groups).returns('g1,g2')
206
+ provider.resource.stubs(:should).with(:password).returns('password')
207
207
 
208
- expect(provider).to receive(:execute)
209
- expect(provider).to receive(:groups=).with('g1,g2')
210
- expect(provider).to receive(:password=).with('password')
208
+ provider.expects(:execute)
209
+ provider.expects(:groups=).with('g1,g2')
210
+ provider.expects(:password=).with('password')
211
211
 
212
212
  provider.create
213
213
  end
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby -S rspec
1
2
  # encoding: ASCII-8BIT
2
3
  require 'spec_helper'
3
4
 
@@ -294,14 +295,14 @@ describe Puppet::Type.type(:user).provider(:directoryservice) do
294
295
  before :each do
295
296
  # Stub out all calls to dscl with default values from above
296
297
  defaults.each do |key, val|
297
- allow(provider).to receive(:create_attribute_with_dscl).with('Users', username, key, val)
298
+ provider.stubs(:merge_attribute_with_dscl).with('Users', username, key, val)
298
299
  end
299
300
 
300
301
  # Mock the rest of the dscl calls. We can't assume that our Linux
301
302
  # build system will have the dscl binary
302
- allow(provider).to receive(:create_new_user).with(username)
303
- allow(provider.class).to receive(:get_attribute_from_dscl).with('Users', username, 'GeneratedUID').and_return({'dsAttrTypeStandard:GeneratedUID' => ['GUID']})
304
- allow(provider).to receive(:next_system_id).and_return('1000')
303
+ provider.stubs(:create_new_user).with(username)
304
+ provider.class.stubs(:get_attribute_from_dscl).with('Users', username, 'GeneratedUID').returns({'dsAttrTypeStandard:GeneratedUID' => ['GUID']})
305
+ provider.stubs(:next_system_id).returns('1000')
305
306
  end
306
307
 
307
308
  it 'should not raise any errors when creating a user with default values' do
@@ -312,61 +313,31 @@ describe Puppet::Type.type(:user).provider(:directoryservice) do
312
313
  it "should call ##{value}= if a #{value} attribute is specified" do
313
314
  resource[value.intern] = 'somevalue'
314
315
  setter = (value << '=').intern
315
- expect(provider).to receive(setter).with('somevalue')
316
+ provider.expects(setter).with('somevalue')
316
317
  provider.create
317
318
  end
318
319
  end
319
320
 
320
321
  it 'should merge the GroupMembership and GroupMembers dscl values if a groups attribute is specified' do
321
322
  resource[:groups] = 'somegroup'
322
- expect(provider).to receive(:merge_attribute_with_dscl).with('Groups', 'somegroup', 'GroupMembership', username)
323
- expect(provider).to receive(:merge_attribute_with_dscl).with('Groups', 'somegroup', 'GroupMembers', 'GUID')
323
+ provider.expects(:merge_attribute_with_dscl).with('Groups', 'somegroup', 'GroupMembership', username)
324
+ provider.expects(:merge_attribute_with_dscl).with('Groups', 'somegroup', 'GroupMembers', 'GUID')
324
325
  provider.create
325
326
  end
326
327
 
327
328
  it 'should convert group names into integers' do
328
329
  resource[:gid] = 'somegroup'
329
- expect(Puppet::Util).to receive(:gid).with('somegroup').and_return(21)
330
- expect(provider).to receive(:create_attribute_with_dscl).with('Users', username, 'PrimaryGroupID', 21)
330
+ Puppet::Util.expects(:gid).with('somegroup').returns(21)
331
+ provider.expects(:merge_attribute_with_dscl).with('Users', username, 'PrimaryGroupID', 21)
331
332
  provider.create
332
333
  end
333
334
  end
334
335
 
335
- describe 'Update existing user' do
336
- describe 'home=' do
337
- context 'on OS X 10.14' do
338
- before do
339
- provider.instance_variable_set(:@property_hash, { home: 'value' })
340
- allow(provider.class).to receive(:get_os_version).and_return('10.14')
341
- end
342
-
343
- it 'raises error' do
344
- expect { provider.home = 'new' }.to \
345
- raise_error(Puppet::Error, "OS X version 10.14 does not allow changing home using puppet")
346
- end
347
- end
348
- end
349
-
350
- describe 'uid=' do
351
- context 'on OS X 10.14' do
352
- before do
353
- provider.instance_variable_set(:@property_hash, { uid: 'value' })
354
- allow(provider.class).to receive(:get_os_version).and_return('10.14')
355
- end
356
-
357
- it 'raises error' do
358
- expect { provider.uid = 'new' }.to \
359
- raise_error(Puppet::Error, "OS X version 10.14 does not allow changing uid using puppet")
360
- end
361
- end
362
- end
363
- end
364
-
365
336
  describe 'self#instances' do
366
337
  it 'should create an array of provider instances' do
367
- expect(provider.class).to receive(:get_all_users).and_return(['foo', 'bar'])
338
+ provider.class.expects(:get_all_users).returns(['foo', 'bar'])
368
339
  ['foo', 'bar'].each do |user|
369
- expect(provider.class).to receive(:generate_attribute_hash).with(user).and_return({})
340
+ provider.class.expects(:generate_attribute_hash).with(user).returns({})
370
341
  end
371
342
  instances = provider.class.instances
372
343
 
@@ -388,12 +359,12 @@ end
388
359
  end
389
360
 
390
361
  it 'should return a hash of user attributes' do
391
- expect(provider.class).to receive(:dscl).with('-plist', '.', 'readall', '/Users').and_return(user_plist_xml)
362
+ provider.class.expects(:dscl).with('-plist', '.', 'readall', '/Users').returns(user_plist_xml)
392
363
  expect(provider.class.get_all_users).to eq(user_plist_hash)
393
364
  end
394
365
 
395
366
  it 'should return a hash when passed an empty plist' do
396
- expect(provider.class).to receive(:dscl).with('-plist', '.', 'readall', '/Users').and_return(empty_plist)
367
+ provider.class.expects(:dscl).with('-plist', '.', 'readall', '/Users').returns(empty_plist)
397
368
  expect(provider.class.get_all_users).to eq({})
398
369
  end
399
370
  end
@@ -415,11 +386,11 @@ end
415
386
  end
416
387
 
417
388
  before :each do
418
- allow(provider.class).to receive(:get_os_version).and_return('10.7')
419
- allow(provider.class).to receive(:get_all_users).and_return(testuser_hash)
420
- allow(provider.class).to receive(:get_list_of_groups).and_return(group_plist_hash_guid)
421
- allow(provider.class).to receive(:convert_binary_to_hash).with(sha512_embedded_bplist).and_return(sha512_embedded_bplist_hash)
422
- allow(provider.class).to receive(:convert_binary_to_hash).with(pbkdf2_embedded_plist).and_return(pbkdf2_embedded_bplist_hash)
389
+ provider.class.stubs(:get_os_version).returns('10.7')
390
+ provider.class.stubs(:get_all_users).returns(testuser_hash)
391
+ provider.class.stubs(:get_list_of_groups).returns(group_plist_hash_guid)
392
+ provider.class.stubs(:convert_binary_to_hash).with(sha512_embedded_bplist).returns(sha512_embedded_bplist_hash)
393
+ provider.class.stubs(:convert_binary_to_hash).with(pbkdf2_embedded_plist).returns(pbkdf2_embedded_bplist_hash)
423
394
  provider.class.prefetch({})
424
395
  end
425
396
 
@@ -455,15 +426,16 @@ end
455
426
  end
456
427
 
457
428
  before :each do
458
- allow(provider.class).to receive(:get_os_version).and_return('10.7')
459
- allow(provider.class).to receive(:get_all_users).and_return(testuser_hash)
460
- allow(provider.class).to receive(:get_list_of_groups).and_return(group_plist_hash_guid)
429
+ provider.class.stubs(:get_os_version).returns('10.7')
430
+ provider.class.stubs(:get_all_users).returns(testuser_hash)
431
+ provider.class.stubs(:get_list_of_groups).returns(group_plist_hash_guid)
461
432
  provider.class.prefetch({})
462
433
  end
463
434
 
464
435
  it 'should return a hash of resource attributes' do
465
436
  expect(provider.class.generate_attribute_hash(user_plist_hash.merge(pbkdf2_and_ssha512_shadowhashdata_hash))).to eq(user_plist_resource)
466
437
  end
438
+
467
439
  end
468
440
 
469
441
  describe 'self#generate_attribute_hash empty shadowhashdata' do
@@ -483,9 +455,9 @@ end
483
455
  end
484
456
 
485
457
  it 'should handle empty shadowhashdata' do
486
- allow(provider.class).to receive(:get_os_version).and_return('10.7')
487
- allow(provider.class).to receive(:get_all_users).and_return([testuser_base])
488
- allow(provider.class).to receive(:get_list_of_groups).and_return(group_plist_hash_guid)
458
+ provider.class.stubs(:get_os_version).returns('10.7')
459
+ provider.class.stubs(:get_all_users).returns([testuser_base])
460
+ provider.class.stubs(:get_list_of_groups).returns(group_plist_hash_guid)
489
461
  provider.class.prefetch({})
490
462
  expect(provider.class.generate_attribute_hash(user_plist_hash)).to eq(user_plist_resource)
491
463
  end
@@ -493,7 +465,7 @@ end
493
465
 
494
466
  describe '#delete' do
495
467
  it 'should call dscl when destroying/deleting a resource' do
496
- expect(provider).to receive(:dscl).with('.', '-delete', user_path)
468
+ provider.expects(:dscl).with('.', '-delete', user_path)
497
469
  provider.delete
498
470
  end
499
471
  end
@@ -542,20 +514,21 @@ end
542
514
  }]
543
515
  end
544
516
 
517
+
545
518
  before :each do
546
- allow(provider.class).to receive(:get_all_users).and_return(testuser_hash)
547
- allow(provider.class).to receive(:get_os_version).and_return('10.7')
519
+ provider.class.stubs(:get_all_users).returns(testuser_hash)
520
+ provider.class.stubs(:get_os_version).returns('10.7')
548
521
  end
549
522
 
550
523
  it "should return a list of groups if the user's name matches GroupMembership" do
551
- expect(provider.class).to receive(:get_list_of_groups).and_return(group_plist_hash)
552
- expect(provider.class).to receive(:get_list_of_groups).and_return(group_plist_hash)
524
+ provider.class.expects(:get_list_of_groups).returns(group_plist_hash)
525
+ provider.class.expects(:get_list_of_groups).returns(group_plist_hash)
553
526
  expect(provider.class.prefetch({}).first.groups).to eq('second,testgroup')
554
527
  end
555
528
 
556
529
  it "should return a list of groups if the user's GUID matches GroupMembers" do
557
- expect(provider.class).to receive(:get_list_of_groups).and_return(group_plist_hash_guid)
558
- expect(provider.class).to receive(:get_list_of_groups).and_return(group_plist_hash_guid)
530
+ provider.class.expects(:get_list_of_groups).returns(group_plist_hash_guid)
531
+ provider.class.expects(:get_list_of_groups).returns(group_plist_hash_guid)
559
532
  expect(provider.class.prefetch({}).first.groups).to eq('testgroup,third')
560
533
  end
561
534
  end
@@ -600,65 +573,66 @@ end
600
573
  end
601
574
 
602
575
  before :each do
603
- allow(provider.class).to receive(:get_all_users).and_return(testuser_hash)
604
- allow(provider.class).to receive(:get_list_of_groups).and_return(group_plist_one_two_three)
576
+ provider.class.stubs(:get_all_users).returns(testuser_hash)
577
+ provider.class.stubs(:get_list_of_groups).returns(group_plist_one_two_three)
605
578
  end
606
579
 
607
580
  it 'should call dscl to add necessary groups' do
608
- expect(provider.class).to receive(:get_attribute_from_dscl).with('Users', username, 'GeneratedUID').and_return({'dsAttrTypeStandard:GeneratedUID' => ['guidnonexistent_user']})
609
- expect(provider).to receive(:groups).and_return('two,three')
610
- expect(provider).to receive(:dscl).with('.', '-merge', '/Groups/one', 'GroupMembership', 'nonexistent_user')
611
- expect(provider).to receive(:dscl).with('.', '-merge', '/Groups/one', 'GroupMembers', 'guidnonexistent_user')
581
+ provider.class.expects(:get_attribute_from_dscl).with('Users', username, 'GeneratedUID').returns({'dsAttrTypeStandard:GeneratedUID' => ['guidnonexistent_user']})
582
+ provider.expects(:groups).returns('two,three')
583
+ provider.expects(:dscl).with('.', '-merge', '/Groups/one', 'GroupMembership', 'nonexistent_user')
584
+ provider.expects(:dscl).with('.', '-merge', '/Groups/one', 'GroupMembers', 'guidnonexistent_user')
612
585
  provider.class.prefetch({})
613
586
  provider.groups= 'one,two,three'
614
587
  end
615
588
 
616
589
  it 'should call the get_salted_sha512 method on 10.7 and return the correct hash' do
617
- expect(provider.class).to receive(:convert_binary_to_hash).with(sha512_embedded_bplist).and_return(sha512_embedded_bplist_hash)
618
- expect(provider.class).to receive(:convert_binary_to_hash).with(pbkdf2_embedded_plist).and_return(pbkdf2_embedded_bplist_hash)
590
+ provider.class.expects(:convert_binary_to_hash).with(sha512_embedded_bplist).returns(sha512_embedded_bplist_hash)
591
+ provider.class.expects(:convert_binary_to_hash).with(pbkdf2_embedded_plist).returns(pbkdf2_embedded_bplist_hash)
619
592
  expect(provider.class.prefetch({}).first.password).to eq(sha512_password_hash)
620
593
  end
621
594
 
622
595
  it 'should call the get_salted_sha512_pbkdf2 method on 10.8 and return the correct hash' do
623
- expect(provider.class).to receive(:convert_binary_to_hash).with(sha512_embedded_bplist).and_return(sha512_embedded_bplist_hash)
624
- expect(provider.class).to receive(:convert_binary_to_hash).with(pbkdf2_embedded_plist).and_return(pbkdf2_embedded_bplist_hash)
596
+ provider.class.expects(:convert_binary_to_hash).with(sha512_embedded_bplist).returns(sha512_embedded_bplist_hash)
597
+ provider.class.expects(:convert_binary_to_hash).with(pbkdf2_embedded_plist).returns(pbkdf2_embedded_bplist_hash)
625
598
  expect(provider.class.prefetch({}).last.password).to eq(pbkdf2_password_hash)
626
599
  end
600
+
627
601
  end
628
602
 
629
603
  describe '#password=' do
630
604
  before :each do
631
- allow(provider).to receive(:sleep)
632
- allow(provider).to receive(:flush_dscl_cache)
605
+ provider.stubs(:sleep)
606
+ provider.stubs(:flush_dscl_cache)
633
607
  end
634
608
 
635
609
  it 'should call write_password_to_users_plist when setting the password' do
636
- allow(provider.class).to receive(:get_os_version).and_return('10.7')
637
- expect(provider).to receive(:write_password_to_users_plist).with(sha512_password_hash)
610
+ provider.class.stubs(:get_os_version).returns('10.7')
611
+ provider.expects(:write_password_to_users_plist).with(sha512_password_hash)
638
612
  provider.password = sha512_password_hash
639
613
  end
640
614
 
641
615
  it 'should call write_password_to_users_plist when setting the password' do
642
- allow(provider.class).to receive(:get_os_version).and_return('10.8')
616
+ provider.class.stubs(:get_os_version).returns('10.8')
643
617
  resource[:salt] = pbkdf2_salt_value
644
618
  resource[:iterations] = pbkdf2_iterations_value
645
619
  resource[:password] = pbkdf2_password_hash
646
620
 
647
- expect(provider).to receive(:write_password_to_users_plist).with(pbkdf2_password_hash)
621
+ provider.expects(:write_password_to_users_plist).with(pbkdf2_password_hash)
648
622
 
649
623
  provider.password = resource[:password]
650
624
  end
651
625
 
652
626
 
653
627
  it "should raise an error on 10.7 if a password hash that doesn't contain 136 characters is passed" do
654
- allow(provider.class).to receive(:get_os_version).and_return('10.7')
628
+ provider.class.stubs(:get_os_version).returns('10.7')
655
629
  expect { provider.password = 'password' }.to raise_error Puppet::Error, /OS X 10\.7 requires a Salted SHA512 hash password of 136 characters\. Please check your password and try again/
656
630
  end
657
631
  end
658
632
 
659
633
  describe "passwords on 10.8" do
660
634
  before :each do
661
- allow(provider.class).to receive(:get_os_version).and_return('10.8')
635
+ provider.class.stubs(:get_os_version).returns('10.8')
662
636
  end
663
637
 
664
638
  it "should raise an error on 10.8 if a password hash that doesn't contain 256 characters is passed" do
@@ -754,7 +728,7 @@ end
754
728
  end
755
729
 
756
730
  it 'should return an array of hashes containing group data' do
757
- expect(provider.class).to receive(:dscl).with('-plist', '.', 'readall', '/Groups').and_return(groups_xml)
731
+ provider.class.expects(:dscl).with('-plist', '.', 'readall', '/Groups').returns(groups_xml)
758
732
  expect(provider.class.get_list_of_groups).to eq(groups_hash)
759
733
  end
760
734
  end
@@ -783,28 +757,28 @@ end
783
757
  end
784
758
 
785
759
  it 'should return a hash containing a user\'s dscl attribute data' do
786
- expect(provider.class).to receive(:dscl).with('-plist', '.', 'read', user_path, 'GeneratedUID').and_return(user_guid_xml)
760
+ provider.class.expects(:dscl).with('-plist', '.', 'read', user_path, 'GeneratedUID').returns(user_guid_xml)
787
761
  expect(provider.class.get_attribute_from_dscl('Users', username, 'GeneratedUID')).to eq(user_guid_hash)
788
762
  end
789
763
  end
790
764
 
791
765
  describe '#convert_hash_to_binary' do
792
766
  it 'should use plutil to successfully convert an xml plist to a binary plist' do
793
- expect(Puppet::Util::Plist).to receive(:dump_plist).with('ruby_hash', :binary).and_return('binary_plist_data')
767
+ Puppet::Util::Plist.expects(:dump_plist).with('ruby_hash', :binary).returns('binary_plist_data')
794
768
  expect(provider.class.convert_hash_to_binary('ruby_hash')).to eq('binary_plist_data')
795
769
  end
796
770
  end
797
771
 
798
772
  describe '#convert_binary_to_hash' do
799
773
  it 'should accept a binary plist and return a ruby hash containing the plist data' do
800
- expect(Puppet::Util::Plist).to receive(:parse_plist).with('binary_plist_data').and_return(user_plist_hash)
774
+ Puppet::Util::Plist.expects(:parse_plist).with('binary_plist_data').returns(user_plist_hash)
801
775
  expect(provider.class.convert_binary_to_hash('binary_plist_data')).to eq(user_plist_hash)
802
776
  end
803
777
  end
804
778
 
805
779
  describe '#next_system_id' do
806
780
  it 'should return the next available UID number that is not in the list obtained from dscl and is greater than the passed integer value' do
807
- expect(provider).to receive(:dscl).with('.', '-list', '/Users', 'uid').and_return("kathee 312\ngary 11\ntanny 33\njohn 9\nzach 5")
781
+ provider.expects(:dscl).with('.', '-list', '/Users', 'uid').returns("kathee 312\ngary 11\ntanny 33\njohn 9\nzach 5")
808
782
  expect(provider.next_system_id(30)).to eq(34)
809
783
  end
810
784
  end
@@ -835,33 +809,33 @@ end
835
809
 
836
810
  describe '#get_sha1' do
837
811
  let(:password_hash_file) { '/var/db/shadow/hash/user_guid' }
838
- let(:stub_password_file) { double('connection') }
812
+ let(:stub_password_file) { stub('connection') }
839
813
 
840
814
  it 'should return a sha1 hash read from disk' do
841
- expect(Puppet::FileSystem).to receive(:exist?).with(password_hash_file).and_return(true)
842
- expect(File).to receive(:file?).with(password_hash_file).and_return(true)
843
- expect(File).to receive(:readable?).with(password_hash_file).and_return(true)
844
- expect(File).to receive(:new).with(password_hash_file).and_return(stub_password_file)
845
- expect(stub_password_file).to receive(:read).and_return('sha1_password_hash')
846
- expect(stub_password_file).to receive(:close)
815
+ Puppet::FileSystem.expects(:exist?).with(password_hash_file).returns(true)
816
+ File.expects(:file?).with(password_hash_file).returns(true)
817
+ File.expects(:readable?).with(password_hash_file).returns(true)
818
+ File.expects(:new).with(password_hash_file).returns(stub_password_file)
819
+ stub_password_file.expects(:read).returns('sha1_password_hash')
820
+ stub_password_file.expects(:close)
847
821
  expect(provider.class.get_sha1('user_guid')).to eq('sha1_password_hash')
848
822
  end
849
823
 
850
824
  it 'should return nil if the password_hash_file does not exist' do
851
- expect(Puppet::FileSystem).to receive(:exist?).with(password_hash_file).and_return(false)
825
+ Puppet::FileSystem.expects(:exist?).with(password_hash_file).returns(false)
852
826
  expect(provider.class.get_sha1('user_guid')).to eq(nil)
853
827
  end
854
828
 
855
829
  it 'should return nil if the password_hash_file is not a file' do
856
- expect(Puppet::FileSystem).to receive(:exist?).with(password_hash_file).and_return(true)
857
- expect(File).to receive(:file?).with(password_hash_file).and_return(false)
830
+ Puppet::FileSystem.expects(:exist?).with(password_hash_file).returns(true)
831
+ File.expects(:file?).with(password_hash_file).returns(false)
858
832
  expect(provider.class.get_sha1('user_guid')).to eq(nil)
859
833
  end
860
834
 
861
835
  it 'should raise an error if the password_hash_file is not readable' do
862
- expect(Puppet::FileSystem).to receive(:exist?).with(password_hash_file).and_return(true)
863
- expect(File).to receive(:file?).with(password_hash_file).and_return(true)
864
- expect(File).to receive(:readable?).with(password_hash_file).and_return(false)
836
+ Puppet::FileSystem.expects(:exist?).with(password_hash_file).returns(true)
837
+ File.expects(:file?).with(password_hash_file).returns(true)
838
+ File.expects(:readable?).with(password_hash_file).returns(false)
865
839
  expect { expect(provider.class.get_sha1('user_guid')).to eq(nil) }.to raise_error(Puppet::Error, /Could not read password hash file at #{password_hash_file}/)
866
840
  end
867
841
  end
@@ -915,26 +889,26 @@ end
915
889
  end
916
890
 
917
891
  it 'should call set_salted_sha512 on 10.7 when given a salted-SHA512 password hash' do
918
- expect(provider).to receive(:get_users_plist).and_return(sample_users_plist)
919
- expect(provider).to receive(:get_shadow_hash_data).with(sample_users_plist).and_return(sha512_shadowhashdata)
920
- expect(provider.class).to receive(:get_os_version).and_return('10.7')
921
- expect(provider).to receive(:set_salted_sha512).with(sample_users_plist, sha512_shadowhashdata, sha512_password_hash)
892
+ provider.expects(:get_users_plist).returns(sample_users_plist)
893
+ provider.expects(:get_shadow_hash_data).with(sample_users_plist).returns(sha512_shadowhashdata)
894
+ provider.class.expects(:get_os_version).returns('10.7')
895
+ provider.expects(:set_salted_sha512).with(sample_users_plist, sha512_shadowhashdata, sha512_password_hash)
922
896
  provider.write_password_to_users_plist(sha512_password_hash)
923
897
  end
924
898
 
925
899
  it 'should call set_salted_pbkdf2 on 10.8 when given a PBKDF2 password hash' do
926
- expect(provider).to receive(:get_users_plist).and_return(sample_users_plist)
927
- expect(provider).to receive(:get_shadow_hash_data).with(sample_users_plist).and_return(pbkdf2_shadowhashdata)
928
- expect(provider.class).to receive(:get_os_version).and_return('10.8')
929
- expect(provider).to receive(:set_salted_pbkdf2).with(sample_users_plist, pbkdf2_shadowhashdata, 'entropy', pbkdf2_password_hash)
900
+ provider.expects(:get_users_plist).returns(sample_users_plist)
901
+ provider.expects(:get_shadow_hash_data).with(sample_users_plist).returns(pbkdf2_shadowhashdata)
902
+ provider.class.expects(:get_os_version).returns('10.8')
903
+ provider.expects(:set_salted_pbkdf2).with(sample_users_plist, pbkdf2_shadowhashdata, 'entropy', pbkdf2_password_hash)
930
904
  provider.write_password_to_users_plist(pbkdf2_password_hash)
931
905
  end
932
906
 
933
907
  it "should delete the SALTED-SHA512 key in the shadow_hash_data hash if it exists on a 10.8 system and write_password_to_users_plist has been called to set the user's password" do
934
- expect(provider).to receive(:get_users_plist).and_return('users_plist')
935
- expect(provider).to receive(:get_shadow_hash_data).with('users_plist').and_return(sha512_shadowhashdata)
936
- expect(provider.class).to receive(:get_os_version).and_return('10.8')
937
- expect(provider).to receive(:set_salted_pbkdf2).with('users_plist', {}, 'entropy', pbkdf2_password_hash)
908
+ provider.expects(:get_users_plist).returns('users_plist')
909
+ provider.expects(:get_shadow_hash_data).with('users_plist').returns(sha512_shadowhashdata)
910
+ provider.class.expects(:get_os_version).returns('10.8')
911
+ provider.expects(:set_salted_pbkdf2).with('users_plist', {}, 'entropy', pbkdf2_password_hash)
938
912
  provider.write_password_to_users_plist(pbkdf2_password_hash)
939
913
  end
940
914
  end
@@ -948,14 +922,14 @@ end
948
922
  end
949
923
 
950
924
  it 'should set the SALTED-SHA512 password hash for a user in 10.7 and call the set_shadow_hash_data method to write the plist to disk' do
951
- expect(provider.class).to receive(:convert_hash_to_binary).with(sha512_embedded_bplist_hash).and_return(sha512_embedded_bplist)
952
- expect(provider).to receive(:set_shadow_hash_data).with(users_plist, sha512_embedded_bplist)
925
+ provider.class.expects(:convert_hash_to_binary).with(sha512_embedded_bplist_hash).returns(sha512_embedded_bplist)
926
+ provider.expects(:set_shadow_hash_data).with(users_plist, sha512_embedded_bplist)
953
927
  provider.set_salted_sha512(users_plist, sha512_embedded_bplist_hash, sha512_password_hash)
954
928
  end
955
929
 
956
930
  it 'should set the salted-SHA512 password, even if a blank shadow_hash_data hash is passed' do
957
- expect(provider.class).to receive(:convert_hash_to_binary).with(sha512_shadow_hash_data).and_return(sha512_embedded_bplist)
958
- expect(provider).to receive(:set_shadow_hash_data).with(users_plist, sha512_embedded_bplist)
931
+ provider.class.expects(:convert_hash_to_binary).with(sha512_shadow_hash_data).returns(sha512_embedded_bplist)
932
+ provider.expects(:set_shadow_hash_data).with(users_plist, sha512_embedded_bplist)
959
933
  provider.set_salted_sha512(users_plist, false, sha512_password_hash)
960
934
  end
961
935
  end
@@ -974,57 +948,50 @@ end
974
948
  # This will also catch the edge-case where a 10.6-style user exists on
975
949
  # a 10.8 system and Puppet attempts to set a password
976
950
  it 'should not fail if shadow_hash_data is not a Hash' do
977
- expect(Puppet::Util::Plist).to receive(:string_to_blob).with(provider.base64_decode_string(pbkdf2_password_hash)).and_return('binary_string')
978
- expect(provider.class).to receive(:convert_hash_to_binary).with(entropy_shadow_hash_data).and_return('binary_plist')
979
- expect(provider).to receive(:set_shadow_hash_data).with({'passwd' => '********'}, 'binary_plist')
951
+ Puppet::Util::Plist.expects(:string_to_blob).with(provider.base64_decode_string(pbkdf2_password_hash)).returns('binary_string')
952
+ provider.class.expects(:convert_hash_to_binary).with(entropy_shadow_hash_data).returns('binary_plist')
953
+ provider.expects(:set_shadow_hash_data).with({'passwd' => '********'}, 'binary_plist')
980
954
  provider.set_salted_pbkdf2({}, false, 'entropy', pbkdf2_password_hash)
981
955
  end
982
956
 
983
957
  it "should set the PBKDF2 password hash when the 'entropy' field is passed with a valid password hash" do
984
- expect(Puppet::Util::Plist).to receive(:string_to_blob).with(provider.base64_decode_string(pbkdf2_password_hash))
985
- expect(provider.class).to receive(:convert_hash_to_binary).with(pbkdf2_embedded_bplist_hash).and_return(pbkdf2_embedded_plist)
986
- expect(provider).to receive(:set_shadow_hash_data).with(users_plist, pbkdf2_embedded_plist)
987
- expect(users_plist).to receive(:[]=).with('passwd', '********')
958
+ Puppet::Util::Plist.expects(:string_to_blob).with(provider.base64_decode_string(pbkdf2_password_hash))
959
+ provider.class.expects(:convert_hash_to_binary).with(pbkdf2_embedded_bplist_hash).returns(pbkdf2_embedded_plist)
960
+ provider.expects(:set_shadow_hash_data).with(users_plist, pbkdf2_embedded_plist)
961
+ users_plist.expects(:[]=).with('passwd', '********')
988
962
  provider.set_salted_pbkdf2(users_plist, pbkdf2_embedded_bplist_hash, 'entropy', pbkdf2_password_hash)
989
963
  end
990
964
 
991
965
  it "should set the PBKDF2 password hash when the 'salt' field is passed with a valid password hash" do
992
- expect(Puppet::Util::Plist).to receive(:string_to_blob).with(provider.base64_decode_string(pbkdf2_salt_value))
993
- expect(provider.class).to receive(:convert_hash_to_binary).with(pbkdf2_embedded_bplist_hash).and_return(pbkdf2_embedded_plist)
994
- expect(provider).to receive(:set_shadow_hash_data).with(users_plist, pbkdf2_embedded_plist)
995
- expect(users_plist).to receive(:[]=).with('passwd', '********')
966
+ Puppet::Util::Plist.expects(:string_to_blob).with(provider.base64_decode_string(pbkdf2_salt_value))
967
+ provider.class.expects(:convert_hash_to_binary).with(pbkdf2_embedded_bplist_hash).returns(pbkdf2_embedded_plist)
968
+ provider.expects(:set_shadow_hash_data).with(users_plist, pbkdf2_embedded_plist)
969
+ users_plist.expects(:[]=).with('passwd', '********')
996
970
  provider.set_salted_pbkdf2(users_plist, pbkdf2_embedded_bplist_hash, 'salt', pbkdf2_salt_value)
997
971
  end
998
972
 
999
973
  it "should set the PBKDF2 password hash when the 'iterations' field is passed with a valid password hash" do
1000
- expect(provider.class).to receive(:convert_hash_to_binary).with(pbkdf2_embedded_bplist_hash).and_return(pbkdf2_embedded_plist)
1001
- expect(provider).to receive(:set_shadow_hash_data).with(users_plist, pbkdf2_embedded_plist)
1002
- expect(users_plist).to receive(:[]=).with('passwd', '********')
974
+ provider.class.expects(:convert_hash_to_binary).with(pbkdf2_embedded_bplist_hash).returns(pbkdf2_embedded_plist)
975
+ provider.expects(:set_shadow_hash_data).with(users_plist, pbkdf2_embedded_plist)
976
+ users_plist.expects(:[]=).with('passwd', '********')
1003
977
  provider.set_salted_pbkdf2(users_plist, pbkdf2_embedded_bplist_hash, 'iterations', pbkdf2_iterations_value)
1004
978
  end
1005
979
  end
1006
980
 
1007
981
  describe '#write_users_plist_to_disk' do
1008
982
  it 'should save the passed plist to disk and convert it to a binary plist' do
1009
- expect(Puppet::Util::Plist).to receive(:write_plist_file).with(user_plist_xml, "#{users_plist_dir}/nonexistent_user.plist", :binary)
983
+ Puppet::Util::Plist.expects(:write_plist_file).with(user_plist_xml, "#{users_plist_dir}/nonexistent_user.plist", :binary)
1010
984
  provider.write_users_plist_to_disk(user_plist_xml)
1011
985
  end
1012
986
  end
1013
987
 
1014
988
  describe '#merge_attribute_with_dscl' do
1015
989
  it 'should raise an error if a dscl command raises an error' do
1016
- expect(provider).to receive(:dscl).with('.', '-merge', user_path, 'GeneratedUID', 'GUID').and_raise(Puppet::ExecutionFailure, 'boom')
990
+ provider.expects(:dscl).with('.', '-merge', user_path, 'GeneratedUID', 'GUID').raises(Puppet::ExecutionFailure, 'boom')
1017
991
  expect { provider.merge_attribute_with_dscl('Users', username, 'GeneratedUID', 'GUID') }.to raise_error Puppet::Error, /Could not set the dscl GeneratedUID key with value: GUID/
1018
992
  end
1019
993
  end
1020
994
 
1021
- describe '#create_attribute_with_dscl' do
1022
- it 'should raise an error if a dscl command raises an error' do
1023
- expect(provider).to receive(:dscl).with('.', '-create', user_path, 'GeneratedUID', 'GUID').and_raise(Puppet::ExecutionFailure, 'boom')
1024
- expect { provider.create_attribute_with_dscl('Users', username, 'GeneratedUID', 'GUID') }.to raise_error Puppet::Error, /Could not set the dscl GeneratedUID key with value: GUID/
1025
- end
1026
- end
1027
-
1028
995
  describe '#get_users_plist' do
1029
996
  let(:test_hash) do
1030
997
  {
@@ -1034,7 +1001,7 @@ end
1034
1001
  end
1035
1002
 
1036
1003
  it 'should convert a plist to a valid Ruby hash' do
1037
- expect(Puppet::Util::Plist).to receive(:read_plist_file).with("#{users_plist_dir}/#{username}.plist").and_return(test_hash)
1004
+ Puppet::Util::Plist.expects(:read_plist_file).with("#{users_plist_dir}/#{username}.plist").returns(test_hash)
1038
1005
  expect(provider.get_users_plist(username)).to eq(test_hash, )
1039
1006
  end
1040
1007
  end
@@ -1059,7 +1026,7 @@ end
1059
1026
  it 'should call convert_binary_to_hash() with the string ' +
1060
1027
  'located in the first element of the array of the ShadowHashData key if the ' +
1061
1028
  'passed users_plist contains a ShadowHashData key' do
1062
- expect(provider.class).to receive(:convert_binary_to_hash).with('test').and_return('returnvalue')
1029
+ provider.class.expects(:convert_binary_to_hash).with('test').returns('returnvalue')
1063
1030
  expect(provider.get_shadow_hash_data(shadow_hash)).to eq('returnvalue')
1064
1031
  end
1065
1032
  end
@@ -1072,7 +1039,7 @@ end
1072
1039
 
1073
1040
  it 'should call Facter.value(:macosx_productversion_major) ONLY ONCE no matter how ' +
1074
1041
  'many times get_os_version() is called' do
1075
- expect(Facter).to receive(:value).with(:macosx_productversion_major).once.and_return('10.8')
1042
+ Facter.expects(:value).with(:macosx_productversion_major).once.returns('10.8')
1076
1043
  expect(provider.class.get_os_version).to eq('10.8')
1077
1044
  expect(provider.class.get_os_version).to eq('10.8')
1078
1045
  expect(provider.class.get_os_version).to eq('10.8')
@@ -1160,8 +1127,8 @@ end
1160
1127
  end
1161
1128
 
1162
1129
  before :each do
1163
- allow(provider.class).to receive(:get_all_users).and_return(all_users_hash)
1164
- allow(provider.class).to receive(:get_list_of_groups).and_return(group_plist_hash_guid)
1130
+ provider.class.stubs(:get_all_users).returns(all_users_hash)
1131
+ provider.class.stubs(:get_list_of_groups).returns(group_plist_hash_guid)
1165
1132
  provider.class.prefetch({})
1166
1133
  end
1167
1134
 
@@ -1171,13 +1138,14 @@ end
1171
1138
  resource[:salt] = pbkdf2_salt_value
1172
1139
  resource[:iterations] = pbkdf2_iterations_value
1173
1140
  resource[:password] = pbkdf2_password_hash
1174
- allow(provider.class).to receive(:get_os_version).and_return('10.8')
1175
- allow(provider).to receive(:sleep)
1176
- allow(provider).to receive(:flush_dscl_cache)
1141
+ provider.class.stubs(:get_os_version).returns('10.8')
1142
+ provider.stubs(:sleep)
1143
+ provider.stubs(:flush_dscl_cache)
1177
1144
 
1178
- expect(provider).to receive(:get_users_plist).with('testuser').and_return(user_plist_hash)
1179
- expect(provider).to receive(:set_salted_pbkdf2).with(user_plist_hash, false, 'entropy', pbkdf2_password_hash)
1145
+ provider.expects(:get_users_plist).with('testuser').returns(user_plist_hash)
1146
+ provider.expects(:set_salted_pbkdf2).with(user_plist_hash, false, 'entropy', pbkdf2_password_hash)
1180
1147
  provider.password = resource[:password]
1181
1148
  end
1182
1149
  end
1183
1150
  end
1151
+