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
@@ -8,123 +8,123 @@ describe Puppet::Type.type(:user).provider(:user_role_add), :unless => Puppet::U
8
8
  let(:provider) { described_class.new(resource) }
9
9
 
10
10
  before do
11
- allow(resource).to receive(:should).and_return("fakeval")
12
- allow(resource).to receive(:should).with(:keys).and_return(Hash.new)
13
- allow(resource).to receive(:[]).and_return("fakeval")
11
+ resource.stubs(:should).returns "fakeval"
12
+ resource.stubs(:should).with(:keys).returns Hash.new
13
+ resource.stubs(:[]).returns "fakeval"
14
14
  end
15
15
 
16
+
16
17
  describe "#command" do
17
18
  before do
18
- klass = double("provider")
19
- allow(klass).to receive(:superclass)
20
- allow(klass).to receive(:command).with(:foo).and_return("userfoo")
21
- allow(klass).to receive(:command).with(:role_foo).and_return("rolefoo")
22
- allow(provider).to receive(:class).and_return(klass)
19
+ klass = stub("provider")
20
+ klass.stubs(:command).with(:foo).returns("userfoo")
21
+ klass.stubs(:command).with(:role_foo).returns("rolefoo")
22
+ provider.stubs(:class).returns(klass)
23
23
  end
24
24
 
25
25
  it "should use the command if not a role and ensure!=role" do
26
- allow(provider).to receive(:is_role?).and_return(false)
27
- allow(provider).to receive(:exists?).and_return(false)
28
- allow(resource).to receive(:[]).with(:ensure).and_return(:present)
29
- allow(provider.class).to receive(:foo)
26
+ provider.stubs(:is_role?).returns(false)
27
+ provider.stubs(:exists?).returns(false)
28
+ resource.stubs(:[]).with(:ensure).returns(:present)
29
+ provider.class.stubs(:foo)
30
30
  expect(provider.command(:foo)).to eq("userfoo")
31
31
  end
32
32
 
33
33
  it "should use the role command when a role" do
34
- allow(provider).to receive(:is_role?).and_return(true)
34
+ provider.stubs(:is_role?).returns(true)
35
35
  expect(provider.command(:foo)).to eq("rolefoo")
36
36
  end
37
37
 
38
38
  it "should use the role command when !exists and ensure=role" do
39
- allow(provider).to receive(:is_role?).and_return(false)
40
- allow(provider).to receive(:exists?).and_return(false)
41
- allow(resource).to receive(:[]).with(:ensure).and_return(:role)
39
+ provider.stubs(:is_role?).returns(false)
40
+ provider.stubs(:exists?).returns(false)
41
+ resource.stubs(:[]).with(:ensure).returns(:role)
42
42
  expect(provider.command(:foo)).to eq("rolefoo")
43
43
  end
44
44
  end
45
45
 
46
46
  describe "#transition" do
47
47
  it "should return the type set to whatever is passed in" do
48
- expect(provider).to receive(:command).with(:modify).and_return("foomod")
48
+ provider.expects(:command).with(:modify).returns("foomod")
49
49
  provider.transition("bar").include?("type=bar")
50
50
  end
51
51
  end
52
52
 
53
53
  describe "#create" do
54
54
  before do
55
- allow(provider).to receive(:password=)
55
+ provider.stubs(:password=)
56
56
  end
57
57
 
58
58
  it "should use the add command when the user is not a role" do
59
- allow(provider).to receive(:is_role?).and_return(false)
60
- expect(provider).to receive(:addcmd).and_return("useradd")
61
- expect(provider).to receive(:run).at_least(:once)
59
+ provider.stubs(:is_role?).returns(false)
60
+ provider.expects(:addcmd).returns("useradd")
61
+ provider.expects(:run).at_least_once
62
62
  provider.create
63
63
  end
64
64
 
65
65
  it "should use transition(normal) when the user is a role" do
66
- allow(provider).to receive(:is_role?).and_return(true)
67
- expect(provider).to receive(:transition).with("normal")
68
- expect(provider).to receive(:run)
66
+ provider.stubs(:is_role?).returns(true)
67
+ provider.expects(:transition).with("normal")
68
+ provider.expects(:run)
69
69
  provider.create
70
70
  end
71
71
 
72
72
  it "should set password age rules" do
73
73
  resource = Puppet::Type.type(:user).new :name => "myuser", :password_min_age => 5, :password_max_age => 10, :password_warn_days => 15, :provider => :user_role_add
74
74
  provider = described_class.new(resource)
75
- allow(provider).to receive(:user_attributes)
76
- allow(provider).to receive(:execute)
77
- expect(provider).to receive(:execute).with([anything, "-n", 5, "-x", 10, '-w', 15, "myuser"])
75
+ provider.stubs(:user_attributes)
76
+ provider.stubs(:execute)
77
+ provider.expects(:execute).with { |cmd, *args| args == ["-n", 5, "-x", 10, '-w', 15, "myuser"] }
78
78
  provider.create
79
79
  end
80
80
  end
81
81
 
82
82
  describe "#destroy" do
83
83
  it "should use the delete command if the user exists and is not a role" do
84
- allow(provider).to receive(:exists?).and_return(true)
85
- allow(provider).to receive(:is_role?).and_return(false)
86
- expect(provider).to receive(:deletecmd)
87
- expect(provider).to receive(:run)
84
+ provider.stubs(:exists?).returns(true)
85
+ provider.stubs(:is_role?).returns(false)
86
+ provider.expects(:deletecmd)
87
+ provider.expects(:run)
88
88
  provider.destroy
89
89
  end
90
90
 
91
91
  it "should use the delete command if the user is a role" do
92
- allow(provider).to receive(:exists?).and_return(true)
93
- allow(provider).to receive(:is_role?).and_return(true)
94
- expect(provider).to receive(:deletecmd)
95
- expect(provider).to receive(:run)
92
+ provider.stubs(:exists?).returns(true)
93
+ provider.stubs(:is_role?).returns(true)
94
+ provider.expects(:deletecmd)
95
+ provider.expects(:run)
96
96
  provider.destroy
97
97
  end
98
98
  end
99
99
 
100
100
  describe "#create_role" do
101
101
  it "should use the transition(role) if the user exists" do
102
- allow(provider).to receive(:exists?).and_return(true)
103
- allow(provider).to receive(:is_role?).and_return(false)
104
- expect(provider).to receive(:transition).with("role")
105
- expect(provider).to receive(:run)
102
+ provider.stubs(:exists?).returns(true)
103
+ provider.stubs(:is_role?).returns(false)
104
+ provider.expects(:transition).with("role")
105
+ provider.expects(:run)
106
106
  provider.create_role
107
107
  end
108
108
 
109
109
  it "should use the add command when role doesn't exists" do
110
- allow(provider).to receive(:exists?).and_return(false)
111
- expect(provider).to receive(:addcmd)
112
- expect(provider).to receive(:run)
110
+ provider.stubs(:exists?).returns(false)
111
+ provider.expects(:addcmd)
112
+ provider.expects(:run)
113
113
  provider.create_role
114
114
  end
115
115
  end
116
116
 
117
117
  describe "with :allow_duplicates" do
118
118
  before do
119
- allow(resource).to receive(:allowdupe?).and_return(true)
120
- allow(provider).to receive(:is_role?).and_return(false)
121
- allow(provider).to receive(:execute)
122
- allow(resource).to receive(:system?).and_return(false)
123
- expect(provider).to receive(:execute).with(include("-o"), any_args)
119
+ resource.stubs(:allowdupe?).returns true
120
+ provider.stubs(:is_role?).returns(false)
121
+ provider.stubs(:execute)
122
+ resource.stubs(:system?).returns false
123
+ provider.expects(:execute).with { |args| args.include?("-o") }
124
124
  end
125
125
 
126
126
  it "should add -o when the user is being created" do
127
- allow(provider).to receive(:password=)
127
+ provider.stubs(:password=)
128
128
  provider.create
129
129
  end
130
130
 
@@ -137,14 +137,14 @@ describe Puppet::Type.type(:user).provider(:user_role_add), :unless => Puppet::U
137
137
  context "#send" do
138
138
  describe "when getting #{val}" do
139
139
  it "should get the user_attributes" do
140
- expect(provider).to receive(:user_attributes)
140
+ provider.expects(:user_attributes)
141
141
  provider.send(val)
142
142
  end
143
143
 
144
144
  it "should get the #{val} attribute" do
145
- attributes = double("attributes")
146
- expect(attributes).to receive(:[]).with(val)
147
- allow(provider).to receive(:user_attributes).and_return(attributes)
145
+ attributes = mock("attributes")
146
+ attributes.expects(:[]).with(val)
147
+ provider.stubs(:user_attributes).returns(attributes)
148
148
  provider.send(val)
149
149
  end
150
150
  end
@@ -153,33 +153,33 @@ describe Puppet::Type.type(:user).provider(:user_role_add), :unless => Puppet::U
153
153
 
154
154
  describe "#keys" do
155
155
  it "should get the user_attributes" do
156
- expect(provider).to receive(:user_attributes)
156
+ provider.expects(:user_attributes)
157
157
  provider.keys
158
158
  end
159
159
 
160
160
  it "should call removed_managed_attributes" do
161
- allow(provider).to receive(:user_attributes).and_return({ :type => "normal", :foo => "something" })
162
- expect(provider).to receive(:remove_managed_attributes)
161
+ provider.stubs(:user_attributes).returns({ :type => "normal", :foo => "something" })
162
+ provider.expects(:remove_managed_attributes)
163
163
  provider.keys
164
164
  end
165
165
 
166
166
  it "should removed managed attribute (type, auths, roles, etc)" do
167
- allow(provider).to receive(:user_attributes).and_return({ :type => "normal", :foo => "something" })
167
+ provider.stubs(:user_attributes).returns({ :type => "normal", :foo => "something" })
168
168
  expect(provider.keys).to eq({ :foo => "something" })
169
169
  end
170
170
  end
171
171
 
172
172
  describe "#add_properties" do
173
173
  it "should call build_keys_cmd" do
174
- allow(resource).to receive(:should).and_return("")
175
- expect(resource).to receive(:should).with(:keys).and_return({ :foo => "bar" })
176
- expect(provider).to receive(:build_keys_cmd).and_return([])
174
+ resource.stubs(:should).returns ""
175
+ resource.expects(:should).with(:keys).returns({ :foo => "bar" })
176
+ provider.expects(:build_keys_cmd).returns([])
177
177
  provider.add_properties
178
178
  end
179
179
 
180
180
  it "should add the elements of the keys hash to an array" do
181
- allow(resource).to receive(:should).and_return("")
182
- expect(resource).to receive(:should).with(:keys).and_return({ :foo => "bar"})
181
+ resource.stubs(:should).returns ""
182
+ resource.expects(:should).with(:keys).returns({ :foo => "bar"})
183
183
  expect(provider.add_properties).to eq(["-K", "foo=bar"])
184
184
  end
185
185
  end
@@ -192,57 +192,57 @@ describe Puppet::Type.type(:user).provider(:user_role_add), :unless => Puppet::U
192
192
 
193
193
  describe "#keys=" do
194
194
  before do
195
- allow(provider).to receive(:is_role?).and_return(false)
195
+ provider.stubs(:is_role?).returns(false)
196
196
  end
197
197
 
198
198
  it "should run a command" do
199
- expect(provider).to receive(:run)
199
+ provider.expects(:run)
200
200
  provider.keys=({})
201
201
  end
202
202
 
203
203
  it "should build the command" do
204
- allow(resource).to receive(:[]).with(:name).and_return("someuser")
205
- allow(provider).to receive(:command).and_return("usermod")
206
- expect(provider).to receive(:build_keys_cmd).and_return(["-K", "foo=bar"])
207
- expect(provider).to receive(:run).with(["usermod", "-K", "foo=bar", "someuser"], "modify attribute key pairs")
204
+ resource.stubs(:[]).with(:name).returns("someuser")
205
+ provider.stubs(:command).returns("usermod")
206
+ provider.expects(:build_keys_cmd).returns(["-K", "foo=bar"])
207
+ provider.expects(:run).with(["usermod", "-K", "foo=bar", "someuser"], "modify attribute key pairs")
208
208
  provider.keys=({})
209
209
  end
210
210
  end
211
211
 
212
212
  describe "#password" do
213
213
  before do
214
- @array = double("array")
214
+ @array = mock "array"
215
215
  end
216
216
 
217
217
  it "should readlines of /etc/shadow" do
218
- expect(File).to receive(:readlines).with("/etc/shadow").and_return([])
218
+ File.expects(:readlines).with("/etc/shadow").returns([])
219
219
  provider.password
220
220
  end
221
221
 
222
222
  it "should reject anything that doesn't start with alpha numerics" do
223
- expect(@array).to receive(:reject).and_return([])
224
- allow(File).to receive(:readlines).with("/etc/shadow").and_return(@array)
223
+ @array.expects(:reject).returns([])
224
+ File.stubs(:readlines).with("/etc/shadow").returns(@array)
225
225
  provider.password
226
226
  end
227
227
 
228
228
  it "should collect splitting on ':'" do
229
- allow(@array).to receive(:reject).and_return(@array)
230
- expect(@array).to receive(:collect).and_return([])
231
- allow(File).to receive(:readlines).with("/etc/shadow").and_return(@array)
229
+ @array.stubs(:reject).returns(@array)
230
+ @array.expects(:collect).returns([])
231
+ File.stubs(:readlines).with("/etc/shadow").returns(@array)
232
232
  provider.password
233
233
  end
234
234
 
235
235
  it "should find the matching user" do
236
- allow(resource).to receive(:[]).with(:name).and_return("username")
237
- allow(@array).to receive(:reject).and_return(@array)
238
- allow(@array).to receive(:collect).and_return([["username", "hashedpassword"], ["someoneelse", "theirpassword"]])
239
- allow(File).to receive(:readlines).with("/etc/shadow").and_return(@array)
236
+ resource.stubs(:[]).with(:name).returns("username")
237
+ @array.stubs(:reject).returns(@array)
238
+ @array.stubs(:collect).returns([["username", "hashedpassword"], ["someoneelse", "theirpassword"]])
239
+ File.stubs(:readlines).with("/etc/shadow").returns(@array)
240
240
  expect(provider.password).to eq("hashedpassword")
241
241
  end
242
242
 
243
243
  it "should get the right password" do
244
- allow(resource).to receive(:[]).with(:name).and_return("username")
245
- allow(File).to receive(:readlines).with("/etc/shadow").and_return(["#comment", " nonsense", " ", "username:hashedpassword:stuff:foo:bar:::", "other:pword:yay:::"])
244
+ resource.stubs(:[]).with(:name).returns("username")
245
+ File.stubs(:readlines).with("/etc/shadow").returns(["#comment", " nonsense", " ", "username:hashedpassword:stuff:foo:bar:::", "other:pword:yay:::"])
246
246
  expect(provider.password).to eq("hashedpassword")
247
247
  end
248
248
  end
@@ -251,7 +251,7 @@ describe Puppet::Type.type(:user).provider(:user_role_add), :unless => Puppet::U
251
251
  let(:path) { tmpfile('etc-shadow') }
252
252
 
253
253
  before :each do
254
- allow(provider).to receive(:target_file_path).and_return(path)
254
+ provider.stubs(:target_file_path).returns(path)
255
255
  end
256
256
 
257
257
  def write_fixture(content)
@@ -267,7 +267,7 @@ FIXTURE
267
267
  end
268
268
 
269
269
  it "should only update the target user" do
270
- expect(Date).to receive(:today).and_return(Date.new(2011,12,07))
270
+ Date.expects(:today).returns Date.new(2011,12,07)
271
271
  write_fixture <<FIXTURE
272
272
  before:seriously:15315:0:99999:7:::
273
273
  fakeval:seriously:15315:0:99999:7:::
@@ -297,7 +297,7 @@ FIXTURE
297
297
  end
298
298
 
299
299
  it "should update the lastchg field" do
300
- expect(Date).to receive(:today).and_return(Date.new(2013,5,12)) # 15837 days after 1970-01-01
300
+ Date.expects(:today).returns Date.new(2013,5,12) # 15837 days after 1970-01-01
301
301
  write_fixture <<FIXTURE
302
302
  before:seriously:15315:0:99999:7:::
303
303
  fakeval:seriously:15629:0:99999:7:::
@@ -316,58 +316,58 @@ EOT
316
316
 
317
317
  describe "#shadow_entry" do
318
318
  it "should return the line for the right user" do
319
- allow(File).to receive(:readlines).and_return(["someuser:!:10:5:20:7:1::\n", "fakeval:*:20:10:30:7:2::\n", "testuser:*:30:15:40:7:3::\n"])
319
+ File.stubs(:readlines).returns(["someuser:!:10:5:20:7:1::\n", "fakeval:*:20:10:30:7:2::\n", "testuser:*:30:15:40:7:3::\n"])
320
320
  expect(provider.shadow_entry).to eq(["fakeval", "*", "20", "10", "30", "7", "2", "", ""])
321
321
  end
322
322
  end
323
323
 
324
324
  describe "#password_max_age" do
325
325
  it "should return a maximum age number" do
326
- allow(File).to receive(:readlines).and_return(["fakeval:NP:12345:0:50::::\n"])
326
+ File.stubs(:readlines).returns(["fakeval:NP:12345:0:50::::\n"])
327
327
  expect(provider.password_max_age).to eq("50")
328
328
  end
329
329
 
330
330
  it "should return -1 for no maximum" do
331
- allow(File).to receive(:readlines).and_return(["fakeval:NP:12345::::::\n"])
331
+ File.stubs(:readlines).returns(["fakeval:NP:12345::::::\n"])
332
332
  expect(provider.password_max_age).to eq(-1)
333
333
  end
334
334
 
335
335
  it "should return -1 for no maximum when failed attempts are present" do
336
- allow(File).to receive(:readlines).and_return(["fakeval:NP:12345::::::3\n"])
336
+ File.stubs(:readlines).returns(["fakeval:NP:12345::::::3\n"])
337
337
  expect(provider.password_max_age).to eq(-1)
338
338
  end
339
339
  end
340
340
 
341
341
  describe "#password_min_age" do
342
342
  it "should return a minimum age number" do
343
- allow(File).to receive(:readlines).and_return(["fakeval:NP:12345:10:50::::\n"])
343
+ File.stubs(:readlines).returns(["fakeval:NP:12345:10:50::::\n"])
344
344
  expect(provider.password_min_age).to eq("10")
345
345
  end
346
346
 
347
347
  it "should return -1 for no minimum" do
348
- allow(File).to receive(:readlines).and_return(["fakeval:NP:12345::::::\n"])
348
+ File.stubs(:readlines).returns(["fakeval:NP:12345::::::\n"])
349
349
  expect(provider.password_min_age).to eq(-1)
350
350
  end
351
351
 
352
352
  it "should return -1 for no minimum when failed attempts are present" do
353
- allow(File).to receive(:readlines).and_return(["fakeval:NP:12345::::::3\n"])
353
+ File.stubs(:readlines).returns(["fakeval:NP:12345::::::3\n"])
354
354
  expect(provider.password_min_age).to eq(-1)
355
355
  end
356
356
  end
357
357
 
358
358
  describe "#password_warn_days" do
359
359
  it "should return a warn days number" do
360
- allow(File).to receive(:readlines).and_return(["fakeval:NP:12345:10:50:30:::\n"])
360
+ File.stubs(:readlines).returns(["fakeval:NP:12345:10:50:30:::\n"])
361
361
  expect(provider.password_warn_days).to eq("30")
362
362
  end
363
363
 
364
364
  it "should return -1 for no warn days" do
365
- allow(File).to receive(:readlines).and_return(["fakeval:NP:12345::::::\n"])
365
+ File.stubs(:readlines).returns(["fakeval:NP:12345::::::\n"])
366
366
  expect(provider.password_warn_days).to eq(-1)
367
367
  end
368
368
 
369
369
  it "should return -1 for no warn days when failed attempts are present" do
370
- allow(File).to receive(:readlines).and_return(["fakeval:NP:12345::::::3\n"])
370
+ File.stubs(:readlines).returns(["fakeval:NP:12345::::::3\n"])
371
371
  expect(provider.password_warn_days).to eq(-1)
372
372
  end
373
373
  end
@@ -1,17 +1,17 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
 
3
- RSpec::Matchers.define_negated_matcher :excluding, :include
4
-
5
4
  describe Puppet::Type.type(:user).provider(:useradd) do
5
+
6
6
  before :each do
7
- allow(described_class).to receive(:command).with(:password).and_return('/usr/bin/chage')
8
- allow(described_class).to receive(:command).with(:localpassword).and_return('/usr/sbin/lchage')
9
- allow(described_class).to receive(:command).with(:add).and_return('/usr/sbin/useradd')
10
- allow(described_class).to receive(:command).with(:localadd).and_return('/usr/sbin/luseradd')
11
- allow(described_class).to receive(:command).with(:modify).and_return('/usr/sbin/usermod')
12
- allow(described_class).to receive(:command).with(:localmodify).and_return('/usr/sbin/lusermod')
13
- allow(described_class).to receive(:command).with(:delete).and_return('/usr/sbin/userdel')
14
- allow(described_class).to receive(:command).with(:localdelete).and_return('/usr/sbin/luserdel')
7
+ described_class.stubs(:command).with(:password).returns '/usr/bin/chage'
8
+ described_class.stubs(:command).with(:localpassword).returns '/usr/sbin/lchage'
9
+ described_class.stubs(:command).with(:add).returns '/usr/sbin/useradd'
10
+ described_class.stubs(:command).with(:localadd).returns '/usr/sbin/luseradd'
11
+ described_class.stubs(:command).with(:modify).returns '/usr/sbin/usermod'
12
+ described_class.stubs(:command).with(:localmodify).returns '/usr/sbin/lusermod'
13
+ described_class.stubs(:command).with(:delete).returns '/usr/sbin/userdel'
14
+ described_class.stubs(:command).with(:localdelete).returns '/usr/sbin/luserdel'
15
15
  end
16
16
 
17
17
  let(:resource) do
@@ -25,6 +25,7 @@ describe Puppet::Type.type(:user).provider(:useradd) do
25
25
 
26
26
  let(:provider) { described_class.new(:name => 'myuser') }
27
27
 
28
+
28
29
  let(:shadow_entry) {
29
30
  return unless Puppet.features.libshadow?
30
31
  entry = Struct::PasswdEntry.new
@@ -40,36 +41,37 @@ describe Puppet::Type.type(:user).provider(:useradd) do
40
41
  }
41
42
 
42
43
  describe "#create" do
44
+
43
45
  before do
44
- allow(provider).to receive(:exists?).and_return(false)
46
+ provider.stubs(:exists?).returns(false)
45
47
  end
46
48
 
47
49
  it "should add -g when no gid is specified and group already exists" do
48
- allow(Puppet::Util).to receive(:gid).and_return(true)
50
+ Puppet::Util.stubs(:gid).returns(true)
49
51
  resource[:ensure] = :present
50
- expect(provider).to receive(:execute).with(include('-g'), kind_of(Hash))
52
+ provider.expects(:execute).with(includes('-g'), kind_of(Hash))
51
53
  provider.create
52
54
  end
53
55
 
54
56
  it "should use -G to set groups" do
55
- allow(Facter).to receive(:value).with(:osfamily).and_return('Not RedHat')
57
+ Facter.stubs(:value).with(:osfamily).returns('Not RedHat')
56
58
  resource[:ensure] = :present
57
59
  resource[:groups] = ['group1', 'group2']
58
- expect(provider).to receive(:execute).with(['/usr/sbin/useradd', '-G', 'group1,group2', 'myuser'], kind_of(Hash))
60
+ provider.expects(:execute).with(['/usr/sbin/useradd', '-G', 'group1,group2', 'myuser'], kind_of(Hash))
59
61
  provider.create
60
62
  end
61
63
 
62
64
  it "should use -G to set groups without -M on RedHat" do
63
- allow(Facter).to receive(:value).with(:osfamily).and_return('RedHat')
65
+ Facter.stubs(:value).with(:osfamily).returns('RedHat')
64
66
  resource[:ensure] = :present
65
67
  resource[:groups] = ['group1', 'group2']
66
- expect(provider).to receive(:execute).with(['/usr/sbin/useradd', '-G', 'group1,group2', '-M', 'myuser'], kind_of(Hash))
68
+ provider.expects(:execute).with(['/usr/sbin/useradd', '-G', 'group1,group2', '-M', 'myuser'], kind_of(Hash))
67
69
  provider.create
68
70
  end
69
71
 
70
72
  it "should add -o when allowdupe is enabled and the user is being created" do
71
73
  resource[:allowdupe] = true
72
- expect(provider).to receive(:execute).with(include('-o'), kind_of(Hash))
74
+ provider.expects(:execute).with(includes('-o'), kind_of(Hash))
73
75
  provider.create
74
76
  end
75
77
 
@@ -77,7 +79,7 @@ describe Puppet::Type.type(:user).provider(:useradd) do
77
79
  it "should add -r when system is enabled" do
78
80
  resource[:system] = :true
79
81
  expect(provider).to be_system_users
80
- expect(provider).to receive(:execute).with(include('-r'), kind_of(Hash))
82
+ provider.expects(:execute).with(includes('-r'), kind_of(Hash))
81
83
  provider.create
82
84
  end
83
85
  end
@@ -86,7 +88,7 @@ describe Puppet::Type.type(:user).provider(:useradd) do
86
88
  it "should not add -r when system is enabled" do
87
89
  resource[:system] = :true
88
90
  expect(provider).not_to be_system_users
89
- expect(provider).to receive(:execute).with(['/usr/sbin/useradd', 'myuser'], kind_of(Hash))
91
+ provider.expects(:execute).with(['/usr/sbin/useradd', 'myuser'], kind_of(Hash))
90
92
  provider.create
91
93
  end
92
94
  end
@@ -96,8 +98,8 @@ describe Puppet::Type.type(:user).provider(:useradd) do
96
98
  resource[:password_min_age] = 5
97
99
  resource[:password_max_age] = 10
98
100
  resource[:password_warn_days] = 15
99
- expect(provider).to receive(:execute).with(include('/usr/sbin/useradd'), kind_of(Hash))
100
- expect(provider).to receive(:execute).with(['/usr/bin/chage', '-m', 5, '-M', 10, '-W', 15, 'myuser'], hash_including(failonfail: true, combine: true, custom_environment: {}))
101
+ provider.expects(:execute).with(includes('/usr/sbin/useradd'), kind_of(Hash))
102
+ provider.expects(:execute).with(['/usr/bin/chage', '-m', 5, '-M', 10, '-W', 15, 'myuser'], has_entries({:failonfail => true, :combine => true, :custom_environment => {}}))
101
103
  provider.create
102
104
  end
103
105
 
@@ -106,41 +108,40 @@ describe Puppet::Type.type(:user).provider(:useradd) do
106
108
  described_class.has_feature :libuser
107
109
  resource[:forcelocal] = true
108
110
  end
109
-
110
111
  it "should use luseradd instead of useradd" do
111
- expect(provider).to receive(:execute).with(include('/usr/sbin/luseradd'), hash_including(custom_environment: hash_including('LIBUSER_CONF')))
112
+ provider.expects(:execute).with(includes('/usr/sbin/luseradd'), has_entry(:custom_environment, has_key('LIBUSER_CONF')))
112
113
  provider.create
113
114
  end
114
115
 
115
116
  it "should NOT use -o when allowdupe=true" do
116
117
  resource[:allowdupe] = :true
117
- expect(provider).to receive(:execute).with(excluding('-o'), hash_including(custom_environment: hash_including('LIBUSER_CONF')))
118
+ provider.expects(:execute).with(Not(includes('-o')), has_entry(:custom_environment, has_key('LIBUSER_CONF')))
118
119
  provider.create
119
120
  end
120
121
 
121
122
  it "should raise an exception for duplicate UIDs" do
122
123
  resource[:uid] = 505
123
- allow(provider).to receive(:finduser).and_return(true)
124
+ provider.stubs(:finduser).returns(true)
124
125
  expect { provider.create }.to raise_error(Puppet::Error, "UID 505 already exists, use allowdupe to force user creation")
125
126
  end
126
127
 
127
128
  it "should not use -G for luseradd and should call usermod with -G after luseradd when groups property is set" do
128
129
  resource[:groups] = ['group1', 'group2']
129
- expect(provider).to receive(:execute).with(include('/usr/sbin/luseradd').and(excluding('-G')), hash_including(custom_environment: hash_including('LIBUSER_CONF')))
130
- expect(provider).to receive(:execute).with(include('/usr/sbin/usermod').and(include('-G')), hash_including(custom_environment: hash_including('LIBUSER_CONF')))
130
+ provider.expects(:execute).with(all_of(includes('/usr/sbin/luseradd'), Not(includes('-G'))), has_entry(:custom_environment, has_key('LIBUSER_CONF')))
131
+ provider.expects(:execute).with(all_of(includes('/usr/sbin/usermod'), includes('-G')), has_entry(:custom_environment, has_key('LIBUSER_CONF')))
131
132
  provider.create
132
133
  end
133
134
 
134
135
  it "should not use -m when managehome set" do
135
136
  resource[:managehome] = :true
136
- expect(provider).to receive(:execute).with(excluding('-m'), hash_including(custom_environment: hash_including('LIBUSER_CONF')))
137
+ provider.expects(:execute).with(Not(includes('-m')), has_entry(:custom_environment, has_key('LIBUSER_CONF')))
137
138
  provider.create
138
139
  end
139
140
 
140
141
  it "should not use -e with luseradd, should call usermod with -e after luseradd when expiry is set" do
141
142
  resource[:expiry] = '2038-01-24'
142
- expect(provider).to receive(:execute).with(include('/usr/sbin/luseradd').and(excluding('-e')), hash_including(custom_environment: hash_including('LIBUSER_CONF')))
143
- expect(provider).to receive(:execute).with(include('/usr/sbin/usermod').and(include('-e')), hash_including(custom_environment: hash_including('LIBUSER_CONF')))
143
+ provider.expects(:execute).with(all_of(includes('/usr/sbin/luseradd'), Not(includes('-e'))), has_entry(:custom_environment, has_key('LIBUSER_CONF')))
144
+ provider.expects(:execute).with(all_of(includes('/usr/sbin/usermod'), includes('-e')), has_entry(:custom_environment, has_key('LIBUSER_CONF')))
144
145
  provider.create
145
146
  end
146
147
 
@@ -149,8 +150,8 @@ describe Puppet::Type.type(:user).provider(:useradd) do
149
150
  resource[:password_min_age] = 5
150
151
  resource[:password_max_age] = 10
151
152
  resource[:password_warn_days] = 15
152
- expect(provider).to receive(:execute).with(include('/usr/sbin/luseradd'), hash_including(custom_environment: hash_including('LIBUSER_CONF')))
153
- expect(provider).to receive(:execute).with(['/usr/sbin/lchage', '-m', 5, '-M', 10, '-W', 15, 'myuser'], hash_including(custom_environment: hash_including('LIBUSER_CONF')))
153
+ provider.expects(:execute).with(includes('/usr/sbin/luseradd'), has_entry(:custom_environment, has_key('LIBUSER_CONF')))
154
+ provider.expects(:execute).with(['/usr/sbin/lchage', '-m', 5, '-M', 10, '-W', 15, 'myuser'], has_entry(:custom_environment, has_key('LIBUSER_CONF')))
154
155
  provider.create
155
156
  end
156
157
  end
@@ -158,11 +159,12 @@ describe Puppet::Type.type(:user).provider(:useradd) do
158
159
  describe "on systems that allow to set shell" do
159
160
  it "should trigger shell validation" do
160
161
  resource[:shell] = '/bin/bash'
161
- expect(provider).to receive(:check_valid_shell)
162
- expect(provider).to receive(:execute).with(include('-s'), kind_of(Hash))
162
+ provider.expects(:check_valid_shell)
163
+ provider.expects(:execute).with(includes('-s'), kind_of(Hash))
163
164
  provider.create
164
165
  end
165
166
  end
167
+
166
168
  end
167
169
 
168
170
  describe '#modify' do
@@ -173,34 +175,34 @@ describe Puppet::Type.type(:user).provider(:useradd) do
173
175
  end
174
176
 
175
177
  it "should use usermod" do
176
- expect(provider).to receive(:execute).with(['/usr/sbin/usermod', '-u', 150, 'myuser'], hash_including(failonfail: true, combine: true, custom_environment: {}))
178
+ provider.expects(:execute).with(['/usr/sbin/usermod', '-u', 150, 'myuser'], has_entries({:failonfail => true, :combine => true, :custom_environment => {}}))
177
179
  provider.uid = 150
178
180
  end
179
181
 
180
182
  it "should use -o when allowdupe=true" do
181
183
  resource[:allowdupe] = :true
182
- expect(provider).to receive(:execute).with(include('-o'), hash_including(failonfail: true, combine: true, custom_environment: {}))
184
+ provider.expects(:execute).with(includes('-o'), has_entries({:failonfail => true, :combine => true, :custom_environment => {}}))
183
185
  provider.uid = 505
184
186
  end
185
187
 
186
188
  it 'should use chage for password_min_age' do
187
- expect(provider).to receive(:execute).with(['/usr/bin/chage', '-m', 100, 'myuser'], hash_including(failonfail: true, combine: true, custom_environment: {}))
189
+ provider.expects(:execute).with(['/usr/bin/chage', '-m', 100, 'myuser'], has_entries({:failonfail => true, :combine => true, :custom_environment => {}}))
188
190
  provider.password_min_age = 100
189
191
  end
190
192
 
191
193
  it 'should use chage for password_max_age' do
192
- expect(provider).to receive(:execute).with(['/usr/bin/chage', '-M', 101, 'myuser'], hash_including(failonfail: true, combine: true, custom_environment: {}))
194
+ provider.expects(:execute).with(['/usr/bin/chage', '-M', 101, 'myuser'], has_entries({:failonfail => true, :combine => true, :custom_environment => {}}))
193
195
  provider.password_max_age = 101
194
196
  end
195
197
 
196
198
  it 'should use chage for password_warn_days' do
197
- expect(provider).to receive(:execute).with(['/usr/bin/chage', '-W', 99, 'myuser'], hash_including(failonfail: true, combine: true, custom_environment: {}))
199
+ provider.expects(:execute).with(['/usr/bin/chage', '-W', 99, 'myuser'], has_entries({:failonfail => true, :combine => true, :custom_environment => {}}))
198
200
  provider.password_warn_days = 99
199
201
  end
200
202
 
201
203
  it 'should not call check_allow_dup if not modifying the uid' do
202
- expect(provider).not_to receive(:check_allow_dup)
203
- expect(provider).to receive(:execute)
204
+ provider.expects(:check_allow_dup).never
205
+ provider.expects(:execute)
204
206
  provider.home = 'foo/bar'
205
207
  end
206
208
  end
@@ -212,34 +214,34 @@ describe Puppet::Type.type(:user).provider(:useradd) do
212
214
  end
213
215
 
214
216
  it "should use lusermod and not usermod" do
215
- expect(provider).to receive(:execute).with(['/usr/sbin/lusermod', '-u', 150, 'myuser'], hash_including(custom_environment: hash_including('LIBUSER_CONF')))
217
+ provider.expects(:execute).with(['/usr/sbin/lusermod', '-u', 150, 'myuser'], has_entry(:custom_environment, has_key('LIBUSER_CONF')))
216
218
  provider.uid = 150
217
219
  end
218
220
 
219
221
  it "should NOT use -o when allowdupe=true" do
220
222
  resource[:allowdupe] = :true
221
- expect(provider).to receive(:execute).with(excluding('-o'), hash_including(custom_environment: hash_including('LIBUSER_CONF')))
223
+ provider.expects(:execute).with(Not(includes('-o')), has_entry(:custom_environment, has_key('LIBUSER_CONF')))
222
224
  provider.uid = 505
223
225
  end
224
226
 
225
227
  it "should raise an exception for duplicate UIDs" do
226
228
  resource[:uid] = 505
227
- allow(provider).to receive(:finduser).and_return(true)
229
+ provider.stubs(:finduser).returns(true)
228
230
  expect { provider.uid = 505 }.to raise_error(Puppet::Error, "UID 505 already exists, use allowdupe to force user creation")
229
231
  end
230
232
 
231
233
  it 'should use lchage for password_warn_days' do
232
- expect(provider).to receive(:execute).with(['/usr/sbin/lchage', '-W', 99, 'myuser'], hash_including(custom_environment: hash_including('LIBUSER_CONF')))
234
+ provider.expects(:execute).with(['/usr/sbin/lchage', '-W', 99, 'myuser'], has_entry(:custom_environment, has_key('LIBUSER_CONF')))
233
235
  provider.password_warn_days = 99
234
236
  end
235
237
 
236
238
  it 'should use lchage for password_min_age' do
237
- expect(provider).to receive(:execute).with(['/usr/sbin/lchage', '-m', 100, 'myuser'], hash_including(custom_environment: hash_including('LIBUSER_CONF')))
239
+ provider.expects(:execute).with(['/usr/sbin/lchage', '-m', 100, 'myuser'], has_entry(:custom_environment, has_key('LIBUSER_CONF')))
238
240
  provider.password_min_age = 100
239
241
  end
240
242
 
241
243
  it 'should use lchage for password_max_age' do
242
- expect(provider).to receive(:execute).with(['/usr/sbin/lchage', '-M', 101, 'myuser'], hash_including(custom_environment: hash_including('LIBUSER_CONF')))
244
+ provider.expects(:execute).with(['/usr/sbin/lchage', '-M', 101, 'myuser'], has_entry(:custom_environment, has_key('LIBUSER_CONF')))
243
245
  provider.password_max_age = 101
244
246
  end
245
247
  end
@@ -248,34 +250,35 @@ describe Puppet::Type.type(:user).provider(:useradd) do
248
250
  describe "#uid=" do
249
251
  it "should add -o when allowdupe is enabled and the uid is being modified" do
250
252
  resource[:allowdupe] = :true
251
- expect(provider).to receive(:execute).with(['/usr/sbin/usermod', '-u', 150, '-o', 'myuser'], hash_including(custom_environment: {}))
253
+ provider.expects(:execute).with(['/usr/sbin/usermod', '-u', 150, '-o', 'myuser'], has_entry(:custom_environment, {}))
252
254
  provider.uid = 150
253
255
  end
254
256
  end
255
257
 
256
258
  describe "#expiry=" do
257
259
  it "should pass expiry to usermod as MM/DD/YY when on Solaris" do
258
- expect(Facter).to receive(:value).with(:operatingsystem).and_return('Solaris')
260
+ Facter.expects(:value).with(:operatingsystem).returns 'Solaris'
259
261
  resource[:expiry] = '2012-10-31'
260
- expect(provider).to receive(:execute).with(['/usr/sbin/usermod', '-e', '10/31/2012', 'myuser'], hash_including(custom_environment: {}))
262
+ provider.expects(:execute).with(['/usr/sbin/usermod', '-e', '10/31/2012', 'myuser'], has_entry(:custom_environment, {}))
261
263
  provider.expiry = '2012-10-31'
262
264
  end
263
265
 
264
266
  it "should pass expiry to usermod as YYYY-MM-DD when not on Solaris" do
265
- expect(Facter).to receive(:value).with(:operatingsystem).and_return('not_solaris')
267
+ Facter.expects(:value).with(:operatingsystem).returns 'not_solaris'
266
268
  resource[:expiry] = '2012-10-31'
267
- expect(provider).to receive(:execute).with(['/usr/sbin/usermod', '-e', '2012-10-31', 'myuser'], hash_including(custom_environment: {}))
269
+ provider.expects(:execute).with(['/usr/sbin/usermod', '-e', '2012-10-31', 'myuser'], has_entry(:custom_environment, {}))
268
270
  provider.expiry = '2012-10-31'
269
271
  end
270
272
 
271
273
  it "should use -e with an empty string when the expiry property is removed" do
272
274
  resource[:expiry] = :absent
273
- expect(provider).to receive(:execute).with(['/usr/sbin/usermod', '-e', '', 'myuser'], hash_including(custom_environment: {}))
275
+ provider.expects(:execute).with(['/usr/sbin/usermod', '-e', '', 'myuser'], has_entry(:custom_environment, {}))
274
276
  provider.expiry = :absent
275
277
  end
276
278
  end
277
279
 
278
280
  describe "#check_allow_dup" do
281
+
279
282
  it "should return an array with a flag if dup is allowed" do
280
283
  resource[:allowdupe] = :true
281
284
  expect(provider.check_allow_dup).to eq(["-o"])
@@ -289,25 +292,25 @@ describe Puppet::Type.type(:user).provider(:useradd) do
289
292
 
290
293
  describe "#check_system_users" do
291
294
  it "should check system users" do
292
- expect(described_class).to receive(:system_users?).and_return(true)
293
- expect(resource).to receive(:system?)
295
+ described_class.expects(:system_users?).returns true
296
+ resource.expects(:system?)
294
297
  provider.check_system_users
295
298
  end
296
299
 
297
300
  it "should return an array with a flag if it's a system user" do
298
- expect(described_class).to receive(:system_users?).and_return(true)
301
+ described_class.expects(:system_users?).returns true
299
302
  resource[:system] = :true
300
303
  expect(provider.check_system_users).to eq(["-r"])
301
304
  end
302
305
 
303
306
  it "should return an empty array if it's not a system user" do
304
- expect(described_class).to receive(:system_users?).and_return(true)
307
+ described_class.expects(:system_users?).returns true
305
308
  resource[:system] = :false
306
309
  expect(provider.check_system_users).to eq([])
307
310
  end
308
311
 
309
312
  it "should return an empty array if system user is not featured" do
310
- expect(described_class).to receive(:system_users?).and_return(false)
313
+ described_class.expects(:system_users?).returns false
311
314
  resource[:system] = :true
312
315
  expect(provider.check_system_users).to eq([])
313
316
  end
@@ -316,29 +319,29 @@ describe Puppet::Type.type(:user).provider(:useradd) do
316
319
  describe "#check_manage_home" do
317
320
  it "should return an array with -m flag if home is managed" do
318
321
  resource[:managehome] = :true
319
- expect(provider).to receive(:execute).with(include('-m'), hash_including(custom_environment: {}))
322
+ provider.expects(:execute).with(includes('-m'), has_entry(:custom_environment, {}))
320
323
  provider.create
321
324
  end
322
325
 
323
326
  it "should return an array with -r flag if home is managed" do
324
327
  resource[:managehome] = :true
325
328
  resource[:ensure] = :absent
326
- allow(provider).to receive(:exists?).and_return(true)
327
- expect(provider).to receive(:execute).with(include('-r'), hash_including(custom_environment: {}))
329
+ provider.stubs(:exists?).returns(true)
330
+ provider.expects(:execute).with(includes('-r'), has_entry(:custom_environment, {}))
328
331
  provider.delete
329
332
  end
330
333
 
331
334
  it "should use -M flag if home is not managed and on Redhat" do
332
- allow(Facter).to receive(:value).with(:osfamily).and_return("RedHat")
335
+ Facter.stubs(:value).with(:osfamily).returns("RedHat")
333
336
  resource[:managehome] = :false
334
- expect(provider).to receive(:execute).with(include('-M'), kind_of(Hash))
337
+ provider.expects(:execute).with(includes('-M'), kind_of(Hash))
335
338
  provider.create
336
339
  end
337
340
 
338
341
  it "should not use -M flag if home is not managed and not on Redhat" do
339
- allow(Facter).to receive(:value).with(:osfamily).and_return("not RedHat")
342
+ Facter.stubs(:value).with(:osfamily).returns("not RedHat")
340
343
  resource[:managehome] = :false
341
- expect(provider).to receive(:execute).with(excluding('-M'), kind_of(Hash))
344
+ provider.expects(:execute).with(Not(includes('-M')), kind_of(Hash))
342
345
  provider.create
343
346
  end
344
347
  end
@@ -352,22 +355,22 @@ describe Puppet::Type.type(:user).provider(:useradd) do
352
355
  end
353
356
 
354
357
  it "should call command with :add" do
355
- expect(provider).to receive(:command).with(:add)
358
+ provider.expects(:command).with(:add)
356
359
  provider.addcmd
357
360
  end
358
361
 
359
362
  it "should add properties" do
360
- expect(provider).to receive(:add_properties).and_return(['-foo_add_properties'])
363
+ provider.expects(:add_properties).returns(['-foo_add_properties'])
361
364
  expect(provider.addcmd).to include '-foo_add_properties'
362
365
  end
363
366
 
364
367
  it "should check and add if dup allowed" do
365
- expect(provider).to receive(:check_allow_dup).and_return(['-allow_dup_flag'])
368
+ provider.expects(:check_allow_dup).returns(['-allow_dup_flag'])
366
369
  expect(provider.addcmd).to include '-allow_dup_flag'
367
370
  end
368
371
 
369
372
  it "should check and add if home is managed" do
370
- expect(provider).to receive(:check_manage_home).and_return(['-manage_home_flag'])
373
+ provider.expects(:check_manage_home).returns(['-manage_home_flag'])
371
374
  expect(provider.addcmd).to include '-manage_home_flag'
372
375
  end
373
376
 
@@ -397,26 +400,26 @@ describe Puppet::Type.type(:user).provider(:useradd) do
397
400
  end
398
401
 
399
402
  it "should return an array with the full command and expiry as MM/DD/YY when on Solaris" do
400
- allow(Facter).to receive(:value).with(:operatingsystem).and_return('Solaris')
401
- expect(described_class).to receive(:system_users?).and_return(true)
403
+ Facter.stubs(:value).with(:operatingsystem).returns 'Solaris'
404
+ described_class.expects(:system_users?).returns true
402
405
  resource[:expiry] = "2012-08-18"
403
406
  expect(provider.addcmd).to eq(['/usr/sbin/useradd', '-e', '08/18/2012', '-G', 'somegroup', '-o', '-m', '-r', 'myuser'])
404
407
  end
405
408
 
406
409
  it "should return an array with the full command and expiry as YYYY-MM-DD when not on Solaris" do
407
- allow(Facter).to receive(:value).with(:operatingsystem).and_return('not_solaris')
408
- expect(described_class).to receive(:system_users?).and_return(true)
410
+ Facter.stubs(:value).with(:operatingsystem).returns 'not_solaris'
411
+ described_class.expects(:system_users?).returns true
409
412
  resource[:expiry] = "2012-08-18"
410
413
  expect(provider.addcmd).to eq(['/usr/sbin/useradd', '-e', '2012-08-18', '-G', 'somegroup', '-o', '-m', '-r', 'myuser'])
411
414
  end
412
415
 
413
416
  it "should return an array without -e if expiry is undefined full command" do
414
- expect(described_class).to receive(:system_users?).and_return(true)
417
+ described_class.expects(:system_users?).returns true
415
418
  expect(provider.addcmd).to eq(["/usr/sbin/useradd", "-G", "somegroup", "-o", "-m", "-r", "myuser"])
416
419
  end
417
420
 
418
421
  it "should pass -e \"\" if the expiry has to be removed" do
419
- expect(described_class).to receive(:system_users?).and_return(true)
422
+ described_class.expects(:system_users?).returns true
420
423
  resource[:expiry] = :absent
421
424
 
422
425
  expect(provider.addcmd).to eq(['/usr/sbin/useradd', '-e', '', '-G', 'somegroup', '-o', '-m', '-r', 'myuser'])
@@ -468,18 +471,18 @@ describe Puppet::Type.type(:user).provider(:useradd) do
468
471
  end
469
472
 
470
473
  it "should return absent if libshadow feature is not present" do
471
- allow(Puppet.features).to receive(:libshadow?).and_return(false)
474
+ Puppet.features.stubs(:libshadow?).returns false
472
475
  # Shadow::Passwd.expects(:getspnam).never # if we really don't have libshadow we dont have Shadow::Passwd either
473
476
  expect(provider.send(property)).to eq(:absent)
474
477
  end
475
478
 
476
479
  it "should return absent if user cannot be found", :if => Puppet.features.libshadow? do
477
- expect(Shadow::Passwd).to receive(:getspnam).with('myuser').and_return(nil)
480
+ Shadow::Passwd.expects(:getspnam).with('myuser').returns nil
478
481
  expect(provider.send(property)).to eq(:absent)
479
482
  end
480
483
 
481
484
  it "should return the correct value if libshadow is present", :if => Puppet.features.libshadow? do
482
- expect(Shadow::Passwd).to receive(:getspnam).with('myuser').and_return(shadow_entry)
485
+ Shadow::Passwd.expects(:getspnam).with('myuser').returns shadow_entry
483
486
  expect(provider.send(property)).to eq(expected_value)
484
487
  end
485
488
 
@@ -492,7 +495,7 @@ describe Puppet::Type.type(:user).provider(:useradd) do
492
495
  canonical_name = [253, 241].pack('C*').force_encoding(Encoding::EUC_KR)
493
496
  provider = described_class.new(:name => '??', :canonical_name => canonical_name)
494
497
 
495
- expect(Shadow::Passwd).to receive(:getspnam).with(canonical_name).and_return(shadow_entry)
498
+ Shadow::Passwd.expects(:getspnam).with(canonical_name).returns shadow_entry
496
499
  provider.password
497
500
  end
498
501
  end
@@ -504,23 +507,23 @@ describe Puppet::Type.type(:user).provider(:useradd) do
504
507
  end
505
508
 
506
509
  it "should return absent if libshadow feature is not present" do
507
- allow(Puppet.features).to receive(:libshadow?).and_return(false)
510
+ Puppet.features.stubs(:libshadow?).returns false
508
511
  expect(provider.expiry).to eq(:absent)
509
512
  end
510
513
 
511
514
  it "should return absent if user cannot be found", :if => Puppet.features.libshadow? do
512
- expect(Shadow::Passwd).to receive(:getspnam).with('myuser').and_return(nil)
515
+ Shadow::Passwd.expects(:getspnam).with('myuser').returns nil
513
516
  expect(provider.expiry).to eq(:absent)
514
517
  end
515
518
 
516
519
  it "should return absent if expiry is -1", :if => Puppet.features.libshadow? do
517
520
  shadow_entry.sp_expire = -1
518
- expect(Shadow::Passwd).to receive(:getspnam).with('myuser').and_return(shadow_entry)
521
+ Shadow::Passwd.expects(:getspnam).with('myuser').returns shadow_entry
519
522
  expect(provider.expiry).to eq(:absent)
520
523
  end
521
524
 
522
525
  it "should convert to YYYY-MM-DD", :if => Puppet.features.libshadow? do
523
- expect(Shadow::Passwd).to receive(:getspnam).with('myuser').and_return(shadow_entry)
526
+ Shadow::Passwd.expects(:getspnam).with('myuser').returns shadow_entry
524
527
  expect(provider.expiry).to eq('2013-01-01')
525
528
  end
526
529
  end
@@ -537,7 +540,7 @@ describe Puppet::Type.type(:user).provider(:useradd) do
537
540
  # command(:password) is only called inside passcmd if
538
541
  # password_min_age or password_max_age is set
539
542
  resource[:password_min_age] = 123
540
- expect(provider).to receive(:command).with(:password)
543
+ provider.expects(:command).with(:password)
541
544
  provider.passcmd
542
545
  end
543
546
 
@@ -594,7 +597,7 @@ describe Puppet::Type.type(:user).provider(:useradd) do
594
597
  end
595
598
 
596
599
  it "should raise an error if the shell is not executable" do
597
- allow(FileTest).to receive(:executable?).with('LICENSE').and_return(false)
600
+ FileTest.stubs(:executable?).with('LICENSE').returns false
598
601
  resource[:shell] = 'LICENSE'
599
602
  expect { provider.check_valid_shell }.to raise_error(Puppet::Error, /Shell LICENSE must be executable/)
600
603
  end
@@ -602,30 +605,26 @@ describe Puppet::Type.type(:user).provider(:useradd) do
602
605
 
603
606
  describe "#delete" do
604
607
  before do
605
- allow(provider).to receive(:exists?).and_return(true)
608
+ provider.stubs(:exists?).returns(true)
606
609
  resource[:ensure] = :absent
607
610
  end
608
-
609
611
  describe "on systems with the libuser and forcelocal=false" do
610
612
  before do
611
613
  described_class.has_feature :libuser
612
614
  resource[:forcelocal] = false
613
615
  end
614
-
615
616
  it "should use userdel to delete users" do
616
- expect(provider).to receive(:execute).with(include('/usr/sbin/userdel'), hash_including(custom_environment: {}))
617
+ provider.expects(:execute).with(includes('/usr/sbin/userdel'), has_entry(:custom_environment, {}))
617
618
  provider.delete
618
619
  end
619
620
  end
620
-
621
621
  describe "on systems with the libuser and forcelocal=true" do
622
622
  before do
623
623
  described_class.has_feature :libuser
624
624
  resource[:forcelocal] = true
625
625
  end
626
-
627
626
  it "should use luserdel to delete users" do
628
- expect(provider).to receive(:execute).with(include('/usr/sbin/luserdel'), hash_including(custom_environment: hash_including('LIBUSER_CONF')))
627
+ provider.expects(:execute).with(includes('/usr/sbin/luserdel'), has_entry(:custom_environment, has_key('LIBUSER_CONF')))
629
628
  provider.delete
630
629
  end
631
630
  end