puppet 6.0.10 → 6.1.0

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
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
 
3
4
  require 'puppet/util/lockfile'
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
  require 'puppet/util/json'
3
4
 
@@ -13,15 +14,16 @@ describe Puppet::Util::Log.desttypes[:report] do
13
14
  end
14
15
 
15
16
  it "should send new messages to the report" do
16
- report = double('report')
17
+ report = mock 'report'
17
18
  dest = @dest.new(report)
18
19
 
19
- expect(report).to receive(:<<).with("my log")
20
+ report.expects(:<<).with("my log")
20
21
 
21
22
  dest.handle "my log"
22
23
  end
23
24
  end
24
25
 
26
+
25
27
  describe Puppet::Util::Log.desttypes[:file] do
26
28
  include PuppetSpec::Files
27
29
 
@@ -52,26 +54,26 @@ describe Puppet::Util::Log.desttypes[:file] do
52
54
  it_behaves_like "file destination"
53
55
 
54
56
  it "logs an error if it can't chown the file owner & group" do
55
- expect(File).to receive(:exists?).with(abspath).and_return(false)
56
- expect(FileUtils).to receive(:chown).with(Puppet[:user], Puppet[:group], abspath).and_raise(Errno::EPERM)
57
- expect(Puppet.features).to receive(:root?).and_return(true)
58
- expect(Puppet).to receive(:err).with("Unable to set ownership to #{Puppet[:user]}:#{Puppet[:group]} for log file: #{abspath}")
57
+ File.expects(:exists?).with(abspath).returns(false)
58
+ FileUtils.expects(:chown).with(Puppet[:user], Puppet[:group], abspath).raises(Errno::EPERM)
59
+ Puppet.features.expects(:root?).returns(true)
60
+ Puppet.expects(:err).with("Unable to set ownership to #{Puppet[:user]}:#{Puppet[:group]} for log file: #{abspath}")
59
61
 
60
62
  @class.new(abspath)
61
63
  end
62
64
 
63
65
  it "doesn't attempt to chown when running as non-root" do
64
- expect(File).to receive(:exists?).with(abspath).and_return(false)
65
- expect(FileUtils).not_to receive(:chown).with(Puppet[:user], Puppet[:group], abspath)
66
- expect(Puppet.features).to receive(:root?).and_return(false)
66
+ File.expects(:exists?).with(abspath).returns(false)
67
+ FileUtils.expects(:chown).with(Puppet[:user], Puppet[:group], abspath).never
68
+ Puppet.features.expects(:root?).returns(false)
67
69
 
68
70
  @class.new(abspath)
69
71
  end
70
72
 
71
73
  it "doesn't attempt to chown when file already exists" do
72
- expect(File).to receive(:exists?).with(abspath).and_return(true)
73
- expect(FileUtils).not_to receive(:chown).with(Puppet[:user], Puppet[:group], abspath)
74
- expect(Puppet.features).to receive(:root?).and_return(true)
74
+ File.expects(:exists?).with(abspath).returns(true)
75
+ FileUtils.expects(:chown).with(Puppet[:user], Puppet[:group], abspath).never
76
+ Puppet.features.expects(:root?).returns(true)
75
77
 
76
78
  @class.new(abspath)
77
79
  end
@@ -108,28 +110,28 @@ describe Puppet::Util::Log.desttypes[:syslog] do
108
110
  # we can't stub the top-level Syslog module
109
111
  describe "when syslog is available", :if => Puppet.features.syslog? do
110
112
  before :each do
111
- allow(Syslog).to receive(:opened?).and_return(false)
112
- allow(Syslog).to receive(:const_get).and_return("LOG_KERN", 0)
113
- allow(Syslog).to receive(:open)
113
+ Syslog.stubs(:opened?).returns(false)
114
+ Syslog.stubs(:const_get).returns("LOG_KERN").returns(0)
115
+ Syslog.stubs(:open)
114
116
  end
115
117
 
116
118
  it "should open syslog" do
117
- expect(Syslog).to receive(:open)
119
+ Syslog.expects(:open)
118
120
 
119
121
  klass.new
120
122
  end
121
123
 
122
124
  it "should close syslog" do
123
- expect(Syslog).to receive(:close)
125
+ Syslog.expects(:close)
124
126
 
125
127
  dest = klass.new
126
128
  dest.close
127
129
  end
128
130
 
129
131
  it "should send messages to syslog" do
130
- syslog = double('syslog')
131
- expect(syslog).to receive(:info).with("don't panic")
132
- allow(Syslog).to receive(:open).and_return(syslog)
132
+ syslog = mock 'syslog'
133
+ syslog.expects(:info).with("don't panic")
134
+ Syslog.stubs(:open).returns(syslog)
133
135
 
134
136
  msg = Puppet::Util::Log.new(:level => :info, :message => "don't panic")
135
137
  dest = klass.new
@@ -139,7 +141,7 @@ describe Puppet::Util::Log.desttypes[:syslog] do
139
141
 
140
142
  describe "when syslog is unavailable" do
141
143
  it "should not be a suitable log destination" do
142
- allow(Puppet.features).to receive(:syslog?).and_return(false)
144
+ Puppet.features.stubs(:syslog?).returns(false)
143
145
 
144
146
  expect(klass.suitable?(:syslog)).to be_falsey
145
147
  end
@@ -147,6 +149,7 @@ describe Puppet::Util::Log.desttypes[:syslog] do
147
149
  end
148
150
 
149
151
  describe Puppet::Util::Log.desttypes[:logstash_event] do
152
+
150
153
  describe "when using structured log format with logstash_event schema" do
151
154
  before :each do
152
155
  @msg = Puppet::Util::Log.new(:level => :info, :message => "So long, and thanks for all the fish.", :source => "a dolphin")
@@ -170,7 +173,7 @@ describe Puppet::Util::Log.desttypes[:logstash_event] do
170
173
  end
171
174
 
172
175
  it "handle should send the output to stdout" do
173
- expect($stdout).to receive(:puts).once
176
+ $stdout.expects(:puts).once
174
177
  dest = described_class.new
175
178
  dest.handle(@msg)
176
179
  end
@@ -204,7 +207,7 @@ describe Puppet::Util::Log.desttypes[:console] do
204
207
 
205
208
  it "should include the log message's source/context in the output when available" do
206
209
  Puppet[:color] = false
207
- expect($stdout).to receive(:puts).with("Info: a hitchhiker: don't panic")
210
+ $stdout.expects(:puts).with("Info: a hitchhiker: don't panic")
208
211
 
209
212
  msg = Puppet::Util::Log.new(:level => :info, :message => "don't panic", :source => "a hitchhiker")
210
213
  dest = klass.new
@@ -217,9 +220,9 @@ describe ":eventlog", :if => Puppet::Util::Platform.windows? do
217
220
  let(:klass) { Puppet::Util::Log.desttypes[:eventlog] }
218
221
 
219
222
  def expects_message_with_type(klass, level, eventlog_type, eventlog_id)
220
- eventlog = double('eventlog')
221
- expect(eventlog).to receive(:report_event).with(hash_including(:event_type => eventlog_type, :event_id => eventlog_id, :data => "a hitchhiker: don't panic"))
222
- allow(Puppet::Util::Windows::EventLog).to receive(:open).and_return(eventlog)
223
+ eventlog = stub('eventlog')
224
+ eventlog.expects(:report_event).with(has_entries(:event_type => eventlog_type, :event_id => eventlog_id, :data => "a hitchhiker: don't panic"))
225
+ Puppet::Util::Windows::EventLog.stubs(:open).returns(eventlog)
223
226
 
224
227
  msg = Puppet::Util::Log.new(:level => level, :message => "don't panic", :source => "a hitchhiker")
225
228
  dest = klass.new
@@ -235,17 +238,17 @@ describe ":eventlog", :if => Puppet::Util::Platform.windows? do
235
238
  expected_truncated_msg = "#{'x' * 31785}...Message exceeds character length limit, truncating."
236
239
  expected_data = "a vogon ship: " + expected_truncated_msg
237
240
 
238
- eventlog = double('eventlog')
239
- expect(eventlog).to receive(:report_event).with(hash_including(:event_type => 2, :event_id => 2, :data => expected_data))
241
+ eventlog = stub('eventlog')
242
+ eventlog.expects(:report_event).with(has_entries(:event_type => 2, :event_id => 2, :data => expected_data))
240
243
  msg = Puppet::Util::Log.new(:level => :warning, :message => long_msg, :source => "a vogon ship")
241
- allow(Puppet::Util::Windows::EventLog).to receive(:open).and_return(eventlog)
244
+ Puppet::Util::Windows::EventLog.stubs(:open).returns(eventlog)
242
245
 
243
246
  dest = klass.new
244
247
  dest.handle(msg)
245
248
  end
246
249
 
247
250
  it "logs to the Puppet Application event log" do
248
- expect(Puppet::Util::Windows::EventLog).to receive(:open).with('Puppet').and_return(double('eventlog'))
251
+ Puppet::Util::Windows::EventLog.expects(:open).with('Puppet').returns(stub('eventlog'))
249
252
 
250
253
  klass.new
251
254
  end
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  # coding: utf-8
2
3
  require 'spec_helper'
3
4
 
@@ -63,7 +64,7 @@ describe Puppet::Util::Log do
63
64
  win_31j_msg = [130, 187].pack('C*').force_encoding(Encoding::Windows_31J)
64
65
  utf_8_msg = "\u305d"
65
66
 
66
- expect($stdout).to receive(:puts).with("\e[mNotice: #{mixed_utf8}: #{utf_8_msg}\e[0m")
67
+ $stdout.expects(:puts).with("\e[mNotice: #{mixed_utf8}: #{utf_8_msg}\e[0m")
67
68
 
68
69
  # most handlers do special things with a :source => 'Puppet', so use something else
69
70
  Puppet::Util::Log.new(:level => :notice, :message => win_31j_msg, :source => mixed_utf8)
@@ -81,47 +82,32 @@ describe Puppet::Util::Log do
81
82
  win_31j_msg = [130, 187].pack('C*').force_encoding(Encoding::Windows_31J)
82
83
  utf_8_msg = "\u305d"
83
84
 
84
- expect($stdout).to receive(:puts).with("\e[mNotice: #{utf_8_msg}: #{mixed_utf8}\e[0m")
85
+ $stdout.expects(:puts).with("\e[mNotice: #{utf_8_msg}: #{mixed_utf8}\e[0m")
85
86
 
86
87
  Puppet::Util::Log.new(:level => :notice, :message => mixed_utf8, :source => win_31j_msg)
87
88
  expect(logs.last.source).to eq(utf_8_msg)
88
89
  end
89
90
 
90
- require 'puppet/util/log/destinations'
91
-
92
- it "raises an error when it has no successful logging destinations" do
93
- # spec_helper.rb redirects log output away from the console,
94
- # so we have to stop that here, or else the logic we are testing
95
- # will not be reached.
96
- allow(Puppet::Util::Log).to receive(:destinations).and_return({})
97
-
98
- our_exception = Puppet::DevError.new("test exception")
99
- expect(Puppet::FileSystem).to receive(:dir).and_raise(our_exception)
100
- bad_file = tmpfile("bad_file")
101
-
102
- expect { Puppet::Util::Log.newdestination(bad_file) }.to raise_error(Puppet::DevError)
103
- end
104
-
105
91
  describe ".setup_default" do
106
92
  it "should default to :syslog" do
107
- allow(Puppet.features).to receive(:syslog?).and_return(true)
108
- expect(Puppet::Util::Log).to receive(:newdestination).with(:syslog)
93
+ Puppet.features.stubs(:syslog?).returns(true)
94
+ Puppet::Util::Log.expects(:newdestination).with(:syslog)
109
95
 
110
96
  Puppet::Util::Log.setup_default
111
97
  end
112
98
 
113
99
  it "should fall back to :eventlog" do
114
- allow(Puppet.features).to receive(:syslog?).and_return(false)
115
- allow(Puppet.features).to receive(:eventlog?).and_return(true)
116
- expect(Puppet::Util::Log).to receive(:newdestination).with(:eventlog)
100
+ Puppet.features.stubs(:syslog?).returns(false)
101
+ Puppet.features.stubs(:eventlog?).returns(true)
102
+ Puppet::Util::Log.expects(:newdestination).with(:eventlog)
117
103
 
118
104
  Puppet::Util::Log.setup_default
119
105
  end
120
106
 
121
107
  it "should fall back to :file" do
122
- allow(Puppet.features).to receive(:syslog?).and_return(false)
123
- allow(Puppet.features).to receive(:eventlog?).and_return(false)
124
- expect(Puppet::Util::Log).to receive(:newdestination).with(Puppet[:puppetdlog])
108
+ Puppet.features.stubs(:syslog?).returns(false)
109
+ Puppet.features.stubs(:eventlog?).returns(false)
110
+ Puppet::Util::Log.expects(:newdestination).with(Puppet[:puppetdlog])
125
111
 
126
112
  Puppet::Util::Log.setup_default
127
113
  end
@@ -335,28 +321,28 @@ describe Puppet::Util::Log do
335
321
 
336
322
  describe Puppet::Util::Log::DestEventlog, :if => Puppet.features.eventlog? do
337
323
  before :each do
338
- allow(Puppet::Util::Windows::EventLog).to receive(:open).and_return(double('mylog', :close => nil))
339
- allow(Puppet::Util::Windows::EventLog).to receive(:report_event)
340
- allow(Puppet::Util::Windows::EventLog).to receive(:close)
341
- allow(Puppet.features).to receive(:eventlog?).and_return(true)
324
+ Puppet::Util::Windows::EventLog.stubs(:open).returns(stub 'mylog')
325
+ Puppet::Util::Windows::EventLog.stubs(:report_event)
326
+ Puppet::Util::Windows::EventLog.stubs(:close)
327
+ Puppet.features.stubs(:eventlog?).returns(true)
342
328
  end
343
329
 
344
330
  it "should restrict its suitability to Windows" do
345
- allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
331
+ Puppet::Util::Platform.stubs(:windows?).returns false
346
332
 
347
333
  expect(Puppet::Util::Log::DestEventlog.suitable?('whatever')).to eq(false)
348
334
  end
349
335
 
350
336
  it "should open the 'Puppet' event log" do
351
- expect(Puppet::Util::Windows::EventLog).to receive(:open).with('Puppet')
337
+ Puppet::Util::Windows::EventLog.expects(:open).with('Puppet')
352
338
 
353
339
  Puppet::Util::Log.newdestination(:eventlog)
354
340
  end
355
341
 
356
342
  it "should close the event log" do
357
- log = double('myeventlog')
358
- expect(log).to receive(:close)
359
- expect(Puppet::Util::Windows::EventLog).to receive(:open).and_return(log)
343
+ log = stub('myeventlog')
344
+ log.expects(:close)
345
+ Puppet::Util::Windows::EventLog.expects(:open).returns(log)
360
346
 
361
347
  Puppet::Util::Log.newdestination(:eventlog)
362
348
  Puppet::Util::Log.close(:eventlog)
@@ -373,7 +359,7 @@ describe Puppet::Util::Log do
373
359
 
374
360
  describe "instances" do
375
361
  before do
376
- allow(Puppet::Util::Log).to receive(:newmessage)
362
+ Puppet::Util::Log.stubs(:newmessage)
377
363
  end
378
364
 
379
365
  [:level, :message, :time, :remote].each do |attr|
@@ -408,7 +394,7 @@ describe Puppet::Util::Log do
408
394
 
409
395
  it "should flush the log queue when the first destination is specified" do
410
396
  Puppet::Util::Log.close_all
411
- expect(Puppet::Util::Log).to receive(:flushqueue)
397
+ Puppet::Util::Log.expects(:flushqueue)
412
398
  Puppet::Util::Log.newdestination(:console)
413
399
  end
414
400
 
@@ -421,13 +407,13 @@ describe Puppet::Util::Log do
421
407
  end
422
408
 
423
409
  it "should fail if the provided level is not valid" do
424
- expect(Puppet::Util::Log).to receive(:validlevel?).with(:notice).and_return(false)
410
+ Puppet::Util::Log.expects(:validlevel?).with(:notice).returns false
425
411
  expect { Puppet::Util::Log.new(:level => :notice, :message => :foo) }.to raise_error(ArgumentError)
426
412
  end
427
413
 
428
414
  it "should set its time to the initialization time" do
429
- time = double('time')
430
- expect(Time).to receive(:now).and_return(time)
415
+ time = mock 'time'
416
+ Time.expects(:now).returns time
431
417
  expect(Puppet::Util::Log.new(:level => "notice", :message => :foo).time).to equal(time)
432
418
  end
433
419
 
@@ -438,13 +424,13 @@ describe Puppet::Util::Log do
438
424
  end
439
425
 
440
426
  it "should use a passed-in source" do
441
- expect_any_instance_of(Puppet::Util::Log).to receive(:source=).with("foo")
427
+ Puppet::Util::Log.any_instance.expects(:source=).with "foo"
442
428
  Puppet::Util::Log.new(:level => "notice", :message => :foo, :source => "foo")
443
429
  end
444
430
 
445
431
  [:file, :line].each do |attr|
446
432
  it "should use #{attr} if provided" do
447
- expect_any_instance_of(Puppet::Util::Log).to receive(attr.to_s + "=").with("foo")
433
+ Puppet::Util::Log.any_instance.expects(attr.to_s + "=").with "foo"
448
434
  Puppet::Util::Log.new(:level => "notice", :message => :foo, attr => "foo")
449
435
  end
450
436
  end
@@ -454,12 +440,12 @@ describe Puppet::Util::Log do
454
440
  end
455
441
 
456
442
  it "should register itself with Log" do
457
- expect(Puppet::Util::Log).to receive(:newmessage)
443
+ Puppet::Util::Log.expects(:newmessage)
458
444
  Puppet::Util::Log.new(:level => "notice", :message => :foo)
459
445
  end
460
446
 
461
447
  it "should update Log autoflush when Puppet[:autoflush] is set" do
462
- expect(Puppet::Util::Log).to receive(:autoflush=).once.with(true)
448
+ Puppet::Util::Log.expects(:autoflush=).once.with(true)
463
449
  Puppet[:autoflush] = true
464
450
  end
465
451
 
@@ -489,10 +475,10 @@ describe Puppet::Util::Log do
489
475
  end
490
476
 
491
477
  it "should not create unsuitable log destinations" do
492
- allow(Puppet.features).to receive(:syslog?).and_return(false)
478
+ Puppet.features.stubs(:syslog?).returns(false)
493
479
 
494
- expect(Puppet::Util::Log::DestSyslog).to receive(:suitable?)
495
- expect(Puppet::Util::Log::DestSyslog).not_to receive(:new)
480
+ Puppet::Util::Log::DestSyslog.expects(:suitable?)
481
+ Puppet::Util::Log::DestSyslog.expects(:new).never
496
482
 
497
483
  Puppet::Util::Log.newdestination(:syslog)
498
484
  end
@@ -545,8 +531,8 @@ describe Puppet::Util::Log do
545
531
 
546
532
  describe "when setting the source as a non-RAL object" do
547
533
  it "should not try to copy over file, version, line, or tag information" do
548
- source = double('source')
549
- expect(source).not_to receive(:file)
534
+ source = mock
535
+ source.expects(:file).never
550
536
  Puppet::Util::Log.new(:level => "notice", :message => :foo, :source => source)
551
537
  end
552
538
  end
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
 
3
4
  require 'puppet/util/logging'
@@ -25,29 +26,29 @@ describe Puppet::Util::Logging do
25
26
  end
26
27
 
27
28
  it "should have a method for sending a log with a specified log level" do
28
- expect(@logger).to receive(:to_s).and_return("I'm a string!")
29
- expect(Puppet::Util::Log).to receive(:create).with(hash_including(source: "I'm a string!", level: "loglevel", message: "mymessage"))
29
+ @logger.expects(:to_s).returns "I'm a string!"
30
+ Puppet::Util::Log.expects(:create).with { |args| args[:source] == "I'm a string!" and args[:level] == "loglevel" and args[:message] == "mymessage" }
30
31
 
31
32
  @logger.send_log "loglevel", "mymessage"
32
33
  end
33
34
 
34
35
  describe "when sending a log" do
35
36
  it "should use the Log's 'create' entrance method" do
36
- expect(Puppet::Util::Log).to receive(:create)
37
+ Puppet::Util::Log.expects(:create)
37
38
 
38
39
  @logger.notice "foo"
39
40
  end
40
41
 
41
42
  it "should send itself converted to a string as the log source" do
42
- expect(@logger).to receive(:to_s).and_return("I'm a string!")
43
- expect(Puppet::Util::Log).to receive(:create).with(hash_including(source: "I'm a string!"))
43
+ @logger.expects(:to_s).returns "I'm a string!"
44
+ Puppet::Util::Log.expects(:create).with { |args| args[:source] == "I'm a string!" }
44
45
 
45
46
  @logger.notice "foo"
46
47
  end
47
48
 
48
49
  it "should queue logs sent without a specified destination" do
49
50
  Puppet::Util::Log.close_all
50
- expect(Puppet::Util::Log).to receive(:queuemessage)
51
+ Puppet::Util::Log.expects(:queuemessage)
51
52
 
52
53
  @logger.notice "foo"
53
54
  end
@@ -55,9 +56,9 @@ describe Puppet::Util::Logging do
55
56
  it "should use the path of any provided resource type" do
56
57
  resource = Puppet::Type.type(:logging_test).new :name => "foo"
57
58
 
58
- expect(resource).to receive(:path).and_return("/path/to/host".to_sym)
59
+ resource.expects(:path).returns "/path/to/host".to_sym
59
60
 
60
- expect(Puppet::Util::Log).to receive(:create).with(hash_including(source: "/path/to/host"))
61
+ Puppet::Util::Log.expects(:create).with { |args| args[:source] == "/path/to/host" }
61
62
 
62
63
  resource.notice "foo"
63
64
  end
@@ -67,21 +68,21 @@ describe Puppet::Util::Logging do
67
68
 
68
69
  param = resource.parameter(:name)
69
70
 
70
- expect(param).to receive(:path).and_return("/path/to/param".to_sym)
71
+ param.expects(:path).returns "/path/to/param".to_sym
71
72
 
72
- expect(Puppet::Util::Log).to receive(:create).with(hash_including(source: "/path/to/param"))
73
+ Puppet::Util::Log.expects(:create).with { |args| args[:source] == "/path/to/param" }
73
74
 
74
75
  param.notice "foo"
75
76
  end
76
77
 
77
78
  it "should send the provided argument as the log message" do
78
- expect(Puppet::Util::Log).to receive(:create).with(hash_including(message: "foo"))
79
+ Puppet::Util::Log.expects(:create).with { |args| args[:message] == "foo" }
79
80
 
80
81
  @logger.notice "foo"
81
82
  end
82
83
 
83
84
  it "should join any provided arguments into a single string for the message" do
84
- expect(Puppet::Util::Log).to receive(:create).with(hash_including(message: "foo bar baz"))
85
+ Puppet::Util::Log.expects(:create).with { |args| args[:message] == "foo bar baz" }
85
86
 
86
87
  @logger.notice ["foo", "bar", "baz"]
87
88
  end
@@ -92,7 +93,7 @@ describe Puppet::Util::Logging do
92
93
 
93
94
  @logger.send(attr.to_s + "=", "myval")
94
95
 
95
- expect(Puppet::Util::Log).to receive(:create).with(hash_including(attr => "myval"))
96
+ Puppet::Util::Log.expects(:create).with { |args| args[attr] == "myval" }
96
97
  @logger.notice "foo"
97
98
  end
98
99
  end
@@ -101,7 +102,7 @@ describe Puppet::Util::Logging do
101
102
  describe "log_exception" do
102
103
  context "when requesting a debug level it is logged at debug" do
103
104
  it "the exception is a ParseErrorWithIssue and message is :default" do
104
- expect(Puppet::Util::Log).to receive(:create) do |args|
105
+ Puppet::Util::Log.expects(:create).with do |args|
105
106
  expect(args[:message]).to eq("Test")
106
107
  expect(args[:level]).to eq(:debug)
107
108
  end
@@ -114,7 +115,7 @@ describe Puppet::Util::Logging do
114
115
  end
115
116
 
116
117
  it "the exception is something else" do
117
- expect(Puppet::Util::Log).to receive(:create) do |args|
118
+ Puppet::Util::Log.expects(:create).with do |args|
118
119
  expect(args[:message]).to eq("Test")
119
120
  expect(args[:level]).to eq(:debug)
120
121
  end
@@ -129,7 +130,7 @@ describe Puppet::Util::Logging do
129
130
 
130
131
  context "no log level is requested it defaults to err" do
131
132
  it "the exception is a ParseErrorWithIssue and message is :default" do
132
- expect(Puppet::Util::Log).to receive(:create) do |args|
133
+ Puppet::Util::Log.expects(:create).with do |args|
133
134
  expect(args[:message]).to eq("Test")
134
135
  expect(args[:level]).to eq(:err)
135
136
  end
@@ -142,7 +143,7 @@ describe Puppet::Util::Logging do
142
143
  end
143
144
 
144
145
  it "the exception is something else" do
145
- expect(Puppet::Util::Log).to receive(:create) do |args|
146
+ Puppet::Util::Log.expects(:create).with do |args|
146
147
  expect(args[:message]).to eq("Test")
147
148
  expect(args[:level]).to eq(:err)
148
149
  end
@@ -158,41 +159,47 @@ describe Puppet::Util::Logging do
158
159
 
159
160
  describe "when sending a deprecation warning" do
160
161
  it "does not log a message when deprecation warnings are disabled" do
161
- expect(Puppet).to receive(:[]).with(:disable_warnings).and_return(%w[deprecations])
162
- expect(@logger).not_to receive(:warning)
162
+ Puppet.expects(:[]).with(:disable_warnings).returns %w[deprecations]
163
+ @logger.expects(:warning).never
163
164
  @logger.deprecation_warning 'foo'
164
165
  end
165
166
 
166
167
  it "logs the message with warn" do
167
- expect(@logger).to receive(:warning).with(/^foo\n/)
168
+ @logger.expects(:warning).with do |msg|
169
+ msg =~ /^foo\n/
170
+ end
168
171
  @logger.deprecation_warning 'foo'
169
172
  end
170
173
 
171
174
  it "only logs each offending line once" do
172
- expect(@logger).to receive(:warning).with(/^foo\n/).once
175
+ @logger.expects(:warning).with do |msg|
176
+ msg =~ /^foo\n/
177
+ end .once
173
178
  5.times { @logger.deprecation_warning 'foo' }
174
179
  end
175
180
 
176
181
  it "ensures that deprecations from same origin are logged if their keys differ" do
177
- expect(@logger).to receive(:warning).with(/deprecated foo/).exactly(5).times()
182
+ @logger.expects(:warning).with(regexp_matches(/deprecated foo/)).times(5)
178
183
  5.times { |i| @logger.deprecation_warning('deprecated foo', :key => "foo#{i}") }
179
184
  end
180
185
 
181
186
  it "does not duplicate deprecations for a given key" do
182
- expect(@logger).to receive(:warning).with(/deprecated foo/).once
187
+ @logger.expects(:warning).with(regexp_matches(/deprecated foo/)).once
183
188
  5.times { @logger.deprecation_warning('deprecated foo', :key => 'foo-msg') }
184
189
  end
185
190
 
186
191
  it "only logs the first 100 messages" do
187
192
  (1..100).each { |i|
188
- expect(@logger).to receive(:warning).with(/^#{i}\n/).once
193
+ @logger.expects(:warning).with do |msg|
194
+ msg =~ /^#{i}\n/
195
+ end .once
189
196
  # since the deprecation warning will only log each offending line once, we have to do some tomfoolery
190
197
  # here in order to make it think each of these calls is coming from a unique call stack; we're basically
191
198
  # mocking the method that it would normally use to find the call stack.
192
- expect(@logger).to receive(:get_deprecation_offender).and_return(["deprecation log count test ##{i}"])
199
+ @logger.expects(:get_deprecation_offender).returns(["deprecation log count test ##{i}"])
193
200
  @logger.deprecation_warning i
194
201
  }
195
- expect(@logger).not_to receive(:warning).with(101)
202
+ @logger.expects(:warning).with(101).never
196
203
  @logger.deprecation_warning 101
197
204
  end
198
205
  end
@@ -212,25 +219,25 @@ describe Puppet::Util::Logging do
212
219
  end
213
220
 
214
221
  it "warns with file and line" do
215
- expect(@logger).to receive(:warning).with(/deprecated foo.*\(file: afile, line: 5\)/m)
222
+ @logger.expects(:warning).with(regexp_matches(/deprecated foo.*\(file: afile, line: 5\)/m))
216
223
  @logger.puppet_deprecation_warning("deprecated foo", :file => 'afile', :line => 5)
217
224
  end
218
225
 
219
226
  it "warns keyed from file and line" do
220
- expect(@logger).to receive(:warning).with(/deprecated foo.*\(file: afile, line: 5\)/m).once
227
+ @logger.expects(:warning).with(regexp_matches(/deprecated foo.*\(file: afile, line: 5\)/m)).once
221
228
  5.times do
222
229
  @logger.puppet_deprecation_warning("deprecated foo", :file => 'afile', :line => 5)
223
230
  end
224
231
  end
225
232
 
226
233
  it "warns with separate key only once regardless of file and line" do
227
- expect(@logger).to receive(:warning).with(/deprecated foo.*\(file: afile, line: 5\)/m).once
234
+ @logger.expects(:warning).with(regexp_matches(/deprecated foo.*\(file: afile, line: 5\)/m)).once
228
235
  @logger.puppet_deprecation_warning("deprecated foo", :key => 'some_key', :file => 'afile', :line => 5)
229
236
  @logger.puppet_deprecation_warning("deprecated foo", :key => 'some_key', :file => 'bfile', :line => 3)
230
237
  end
231
238
 
232
239
  it "warns with key but no file and line" do
233
- expect(@logger).to receive(:warning).with(/deprecated foo.*\(file: unknown, line: unknown\)/m)
240
+ @logger.expects(:warning).with(regexp_matches(/deprecated foo.*\(file: unknown, line: unknown\)/m))
234
241
  @logger.puppet_deprecation_warning("deprecated foo", :key => 'some_key')
235
242
  end
236
243
  end
@@ -239,24 +246,29 @@ describe Puppet::Util::Logging do
239
246
  before(:each) {
240
247
  @logger.clear_deprecation_warnings
241
248
  }
249
+ after(:each) {
250
+ # this is required because of bugs in Mocha whe tearing down expectations for each test
251
+ # why it works elsewhere is a mystery.
252
+ @logger.unstub(:send_log)
253
+ }
242
254
 
243
255
  it "warns with file when only file is given" do
244
- expect(@logger).to receive(:send_log).with(:warning, /wet paint.*\(file: aFile\)/m)
256
+ @logger.expects(:send_log).with(:warning, regexp_matches(/wet paint.*\(file: aFile\)/m))
245
257
  @logger.warn_once('kind', 'wp', "wet paint", 'aFile')
246
258
  end
247
259
 
248
260
  it "warns with unknown file and line when only line is given" do
249
- expect(@logger).to receive(:send_log).with(:warning, /wet paint.*\(line: 5\)/m)
261
+ @logger.expects(:send_log).with(:warning, regexp_matches(/wet paint.*\(line: 5\)/m))
250
262
  @logger.warn_once('kind', 'wp', "wet paint", nil, 5)
251
263
  end
252
264
 
253
265
  it "warns with file and line when both are given" do
254
- expect(@logger).to receive(:send_log).with(:warning, /wet paint.*\(file: aFile, line: 5\)/m)
266
+ @logger.expects(:send_log).with(:warning, regexp_matches(/wet paint.*\(file: aFile, line: 5\)/m))
255
267
  @logger.warn_once('kind', 'wp', "wet paint",'aFile', 5)
256
268
  end
257
269
 
258
270
  it "warns once per key" do
259
- expect(@logger).to receive(:send_log).with(:warning, /wet paint.*/m).once
271
+ @logger.expects(:send_log).with(:warning, regexp_matches(/wet paint.*/m)).once
260
272
  5.times do
261
273
  @logger.warn_once('kind', 'wp', "wet paint")
262
274
  end
@@ -264,7 +276,7 @@ describe Puppet::Util::Logging do
264
276
 
265
277
  Puppet::Util::Log.eachlevel do |level|
266
278
  it "can use log level #{level}" do
267
- expect(@logger).to receive(:send_log).with(level, /wet paint.*/m).once
279
+ @logger.expects(:send_log).with(level, regexp_matches(/wet paint.*/m)).once
268
280
  5.times do
269
281
  @logger.warn_once('kind', 'wp', "wet paint", nil, nil, level)
270
282
  end
@@ -275,21 +287,20 @@ describe Puppet::Util::Logging do
275
287
  describe "does not warn about undefined variables when disabled_warnings says so" do
276
288
  let(:logger) { LoggingTester.new }
277
289
 
278
- before(:each) do
290
+ around(:each) do |example|
279
291
  Puppet.settings.initialize_global_settings
280
292
  logger.clear_deprecation_warnings
281
293
  Puppet[:disable_warnings] = ['undefined_variables']
294
+ example.run
295
+ Puppet[:disable_warnings] = []
282
296
  end
283
297
 
284
298
  after(:each) do
285
- Puppet[:disable_warnings] = []
286
- allow(logger).to receive(:send_log).and_call_original()
287
- allow(Facter).to receive(:respond_to?).and_call_original()
288
- allow(Facter).to receive(:debugging).and_call_original()
299
+ logger.unstub(:send_log)
289
300
  end
290
301
 
291
302
  it "does not produce warning if kind is disabled" do
292
- expect(logger).not_to receive(:send_log)
303
+ logger.expects(:send_log).never
293
304
  logger.warn_once('undefined_variables', 'wp', "wet paint")
294
305
  end
295
306
  end
@@ -297,21 +308,20 @@ describe Puppet::Util::Logging do
297
308
  describe "warns about undefined variables when deprecations are in disabled_warnings" do
298
309
  let(:logger) { LoggingTester.new }
299
310
 
300
- before(:each) do
311
+ around(:each) do |example|
301
312
  Puppet.settings.initialize_global_settings
302
313
  logger.clear_deprecation_warnings
303
314
  Puppet[:disable_warnings] = ['deprecations']
315
+ example.run
316
+ Puppet[:disable_warnings] = []
304
317
  end
305
318
 
306
319
  after(:each) do
307
- Puppet[:disable_warnings] = []
308
- allow(logger).to receive(:send_log).and_call_original()
309
- allow(Facter).to receive(:respond_to?).and_call_original()
310
- allow(Facter).to receive(:debugging).and_call_original()
320
+ logger.unstub(:send_log)
311
321
  end
312
322
 
313
323
  it "produces warning even if deprecation warnings are disabled " do
314
- expect(logger).to receive(:send_log).with(:warning, /wet paint/).once
324
+ logger.expects(:send_log).with(:warning, regexp_matches(/wet paint/)).once
315
325
  logger.warn_once('undefined_variables', 'wp', "wet paint")
316
326
  end
317
327
  end
@@ -346,49 +356,49 @@ original
346
356
  after :each do
347
357
  # Unstub these calls as there is global code run after
348
358
  # each spec that may reset the log level to debug
349
- allow(Facter).to receive(:respond_to?).and_call_original()
350
- allow(Facter).to receive(:debugging).and_call_original()
359
+ Facter.unstub(:respond_to?)
360
+ Facter.unstub(:debugging)
351
361
  end
352
362
 
353
363
  describe 'does support debugging' do
354
364
  before :each do
355
- allow(Facter).to receive(:respond_to?).with(:debugging).and_return(true)
365
+ Facter.stubs(:respond_to?).with(:debugging).returns true
356
366
  end
357
367
 
358
368
  it 'enables Facter debugging when debug level' do
359
- allow(Facter).to receive(:debugging).with(true)
369
+ Facter.stubs(:debugging).with(true)
360
370
  Puppet::Util::Log.level = :debug
361
371
  end
362
372
 
363
373
  it 'disables Facter debugging when not debug level' do
364
- allow(Facter).to receive(:debugging).with(false)
374
+ Facter.stubs(:debugging).with(false)
365
375
  Puppet::Util::Log.level = :info
366
376
  end
367
377
  end
368
378
 
369
379
  describe 'does support trace' do
370
380
  before :each do
371
- allow(Facter).to receive(:respond_to?).with(:trace).and_return(true)
381
+ Facter.stubs(:respond_to?).with(:trace).returns true
372
382
  end
373
383
 
374
384
  it 'enables Facter trace when enabled' do
375
- allow(Facter).to receive(:trace).with(true)
385
+ Facter.stubs(:trace).with(true)
376
386
  Puppet[:trace] = true
377
387
  end
378
388
 
379
389
  it 'disables Facter trace when disabled' do
380
- allow(Facter).to receive(:trace).with(false)
390
+ Facter.stubs(:trace).with(false)
381
391
  Puppet[:trace] = false
382
392
  end
383
393
  end
384
394
 
385
395
  describe 'does support on_message' do
386
396
  before :each do
387
- allow(Facter).to receive(:respond_to?).with(:on_message).and_return(true)
397
+ Facter.stubs(:respond_to?).with(:on_message).returns true
388
398
  end
389
399
 
390
400
  def setup(level, message)
391
- allow(Facter).to receive(:on_message).and_yield(level, message)
401
+ Facter.stubs(:on_message).yields level, message
392
402
 
393
403
  # Transform from Facter level to Puppet level
394
404
  case level
@@ -402,7 +412,11 @@ original
402
412
  level = :crit
403
413
  end
404
414
 
405
- allow(Puppet::Util::Log).to receive(:create).with(hash_including(level: level, message: message, source: 'Facter')).once
415
+ Puppet::Util::Log.stubs(:create).with do |options|
416
+ expect(options[:level]).to eq(level)
417
+ expect(options[:message]).to eq(message)
418
+ expect(options[:source]).to eq('Facter')
419
+ end.once
406
420
  end
407
421
 
408
422
  [:trace, :debug, :info, :warn, :error, :fatal].each do |level|