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,5 @@
1
+ #!/usr/bin/env ruby
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Puppet::Util do
@@ -113,11 +115,11 @@ describe Puppet::Util do
113
115
  let (:filepath) { File.expand_path('C:\\' + rune_utf8 + '\\' + filename) }
114
116
 
115
117
  before :each do
116
- allow(FileTest).to receive(:file?).and_return(false)
117
- allow(FileTest).to receive(:file?).with(filepath).and_return(true)
118
+ FileTest.stubs(:file?).returns false
119
+ FileTest.stubs(:file?).with(filepath).returns true
118
120
 
119
- allow(FileTest).to receive(:executable?).and_return(false)
120
- allow(FileTest).to receive(:executable?).with(filepath).and_return(true)
121
+ FileTest.stubs(:executable?).returns false
122
+ FileTest.stubs(:executable?).with(filepath).returns true
121
123
  end
122
124
 
123
125
  it "should be able to use UTF8 characters in the path" do
@@ -127,4 +129,5 @@ describe Puppet::Util do
127
129
  end
128
130
  end
129
131
  end
132
+
130
133
  end
@@ -44,7 +44,7 @@ module PuppetSpec::Compiler
44
44
 
45
45
  def apply_with_error_check(manifest)
46
46
  apply_compiled_manifest(manifest) do |res|
47
- expect(res).not_to receive(:err)
47
+ res.expects(:err).never
48
48
  end
49
49
  end
50
50
 
@@ -9,6 +9,7 @@ module PuppetSpec::Files
9
9
  $global_tempfiles ||= []
10
10
  while path = $global_tempfiles.pop do
11
11
  begin
12
+ Dir.unstub(:entries)
12
13
  FileUtils.rm_rf path, :secure => true
13
14
  rescue Errno::ENOENT
14
15
  # nothing to do
@@ -21,7 +21,7 @@ module PuppetSpec
21
21
 
22
22
  def mark_changed(path)
23
23
  app = Puppet::ModuleTool::Applications::Checksummer
24
- allow(app).to receive(:run).with(path).and_return(['README'])
24
+ app.stubs(:run).with(path).returns(['README'])
25
25
  end
26
26
 
27
27
  def graph_should_include(name, options)
@@ -1,3 +1,4 @@
1
+
1
2
  module PuppetSpec::Scope
2
3
  # Initialize a new scope suitable for testing.
3
4
  #
@@ -10,4 +11,4 @@ module PuppetSpec::Scope
10
11
  scope
11
12
  end
12
13
 
13
- end
14
+ end
@@ -5,7 +5,7 @@ shared_examples_for "all parsedfile providers" do |provider, *files|
5
5
 
6
6
  files.flatten.each do |file|
7
7
  it "should rewrite #{file} reasonably unchanged" do
8
- allow(provider).to receive(:default_target).and_return(file)
8
+ provider.stubs(:default_target).returns(file)
9
9
  provider.prefetch
10
10
 
11
11
  text = provider.to_file(provider.target_records(file))
@@ -1,10 +1,11 @@
1
+ #! /usr/bin/env ruby
1
2
  shared_examples_for "Puppet::Indirector::FileServerTerminus" do
2
3
  # This only works if the shared behaviour is included before
3
4
  # the 'before' block in the including context.
4
5
  before do
5
6
  Puppet::FileServing::Configuration.instance_variable_set(:@configuration, nil)
6
- allow(Puppet::FileSystem).to receive(:exist?).and_return(true)
7
- allow(Puppet::FileSystem).to receive(:exist?).with(Puppet[:fileserverconfig]).and_return(true)
7
+ Puppet::FileSystem.stubs(:exist?).returns true
8
+ Puppet::FileSystem.stubs(:exist?).with(Puppet[:fileserverconfig]).returns(true)
8
9
 
9
10
  @path = Tempfile.new("file_server_testing")
10
11
  path = @path.path
@@ -18,20 +19,20 @@ shared_examples_for "Puppet::Indirector::FileServerTerminus" do
18
19
  @mount1 = Puppet::FileServing::Configuration::Mount::File.new("one")
19
20
  @mount1.path = @path
20
21
 
21
- @parser = double('parser', :changed? => false)
22
- allow(@parser).to receive(:parse).and_return("one" => @mount1)
22
+ @parser = stub 'parser', :changed? => false
23
+ @parser.stubs(:parse).returns("one" => @mount1)
23
24
 
24
- allow(Puppet::FileServing::Configuration::Parser).to receive(:new).and_return(@parser)
25
+ Puppet::FileServing::Configuration::Parser.stubs(:new).returns(@parser)
25
26
 
26
27
  # Stub out the modules terminus
27
- @modules = double('modules terminus')
28
+ @modules = mock 'modules terminus'
28
29
 
29
30
  @request = Puppet::Indirector::Request.new(:indirection, :method, "puppet://myhost/one/myfile", nil)
30
31
  end
31
32
 
32
33
  it "should use the file server configuration to find files" do
33
- allow(@modules).to receive(:find).and_return(nil)
34
- allow(@terminus.indirection).to receive(:terminus).with(:modules).and_return(@modules)
34
+ @modules.stubs(:find).returns(nil)
35
+ @terminus.indirection.stubs(:terminus).with(:modules).returns(@modules)
35
36
 
36
37
  expect(@terminus.find(@request)).to be_instance_of(@test_class)
37
38
  end
@@ -1,3 +1,5 @@
1
+ #! /usr/bin/env ruby
2
+
1
3
  shared_examples_for "Puppet::FileServing::Files" do |indirection|
2
4
  %w[find search].each do |method|
3
5
  let(:request) { Puppet::Indirector::Request.new(indirection, method, 'foo', nil) }
@@ -6,7 +8,7 @@ shared_examples_for "Puppet::FileServing::Files" do |indirection|
6
8
  it "should proxy to file terminus if the path is absolute" do
7
9
  request.key = make_absolute('/tmp/foo')
8
10
 
9
- expect_any_instance_of(described_class.indirection.terminus(:file).class).to receive(method).with(request)
11
+ described_class.indirection.terminus(:file).class.any_instance.expects(method).with(request)
10
12
 
11
13
  subject.send(method, request)
12
14
  end
@@ -14,7 +16,7 @@ shared_examples_for "Puppet::FileServing::Files" do |indirection|
14
16
  it "should proxy to file terminus if the protocol is file" do
15
17
  request.protocol = 'file'
16
18
 
17
- expect_any_instance_of(described_class.indirection.terminus(:file).class).to receive(method).with(request)
19
+ described_class.indirection.terminus(:file).class.any_instance.expects(method).with(request)
18
20
 
19
21
  subject.send(method, request)
20
22
  end
@@ -32,7 +34,7 @@ shared_examples_for "Puppet::FileServing::Files" do |indirection|
32
34
  it "should proxy to rest terminus if default_file_terminus is rest" do
33
35
  Puppet[:default_file_terminus] = "rest"
34
36
 
35
- expect_any_instance_of(described_class.indirection.terminus(:rest).class).to receive(method).with(request)
37
+ described_class.indirection.terminus(:rest).class.any_instance.expects(method).with(request)
36
38
 
37
39
  subject.send(method, request)
38
40
  end
@@ -40,7 +42,7 @@ shared_examples_for "Puppet::FileServing::Files" do |indirection|
40
42
  it "should proxy to rest terminus if default_file_terminus is not rest" do
41
43
  Puppet[:default_file_terminus] = 'file_server'
42
44
 
43
- expect_any_instance_of(described_class.indirection.terminus(:rest).class).to receive(method).with(request)
45
+ described_class.indirection.terminus(:rest).class.any_instance.expects(method).with(request)
44
46
 
45
47
  subject.send(method, request)
46
48
  end
@@ -54,7 +56,7 @@ shared_examples_for "Puppet::FileServing::Files" do |indirection|
54
56
  it "should proxy to file_server if default_file_terminus is 'file_server'" do
55
57
  Puppet[:default_file_terminus] = 'file_server'
56
58
 
57
- expect_any_instance_of(described_class.indirection.terminus(:file_server).class).to receive(method).with(request)
59
+ described_class.indirection.terminus(:file_server).class.any_instance.expects(method).with(request)
58
60
 
59
61
  subject.send(method, request)
60
62
  end
@@ -62,7 +64,7 @@ shared_examples_for "Puppet::FileServing::Files" do |indirection|
62
64
  it "should proxy to rest if default_file_terminus is 'rest'" do
63
65
  Puppet[:default_file_terminus] = "rest"
64
66
 
65
- expect_any_instance_of(described_class.indirection.terminus(:rest).class).to receive(method).with(request)
67
+ described_class.indirection.terminus(:rest).class.any_instance.expects(method).with(request)
66
68
 
67
69
  subject.send(method, request)
68
70
  end
@@ -1,3 +1,5 @@
1
+ #! /usr/bin/env ruby
2
+
1
3
  shared_examples_for "a file_serving model" do
2
4
  include PuppetSpec::Files
3
5
 
@@ -7,7 +9,7 @@ shared_examples_for "a file_serving model" do
7
9
 
8
10
  before :each do
9
11
  # Never connect to the network, no matter what
10
- allow_any_instance_of(described_class.indirection.terminus(:rest).class).to receive(:find)
12
+ described_class.indirection.terminus(:rest).class.any_instance.stubs(:find)
11
13
  end
12
14
 
13
15
  describe "when running the apply application" do
@@ -22,7 +24,7 @@ shared_examples_for "a file_serving model" do
22
24
  "puppet://server/modules/foo/bar" => :rest,
23
25
  }.each do |key, terminus|
24
26
  it "should use the #{terminus} terminus when requesting #{key.inspect}" do
25
- expect_any_instance_of(described_class.indirection.terminus(terminus).class).to receive(:find)
27
+ described_class.indirection.terminus(terminus).class.any_instance.expects(:find)
26
28
 
27
29
  described_class.indirection.find(key)
28
30
  end
@@ -41,7 +43,7 @@ shared_examples_for "a file_serving model" do
41
43
  "puppet://server/modules/foo/bar" => :rest,
42
44
  }.each do |key, terminus|
43
45
  it "should use the #{terminus} terminus when requesting #{key.inspect}" do
44
- expect_any_instance_of(described_class.indirection.terminus(terminus).class).to receive(:find)
46
+ described_class.indirection.terminus(terminus).class.any_instance.expects(:find)
45
47
 
46
48
  described_class.indirection.find(key)
47
49
  end
@@ -32,7 +32,7 @@ shared_examples_for "Hiera indirection" do |test_klass, fixture_dir|
32
32
  end
33
33
 
34
34
  it "should raise an error if we don't have the hiera feature" do
35
- expect(Puppet.features).to receive(:hiera?).and_return(false)
35
+ Puppet.features.expects(:hiera?).returns(false)
36
36
  expect { test_klass.new }.to raise_error RuntimeError,
37
37
  "Hiera terminus not supported without hiera library"
38
38
  end
@@ -50,13 +50,13 @@ shared_examples_for "Hiera indirection" do |test_klass, fixture_dir|
50
50
  end
51
51
 
52
52
  it "should log a warning" do
53
- expect(Puppet).to receive(:warning).with(
53
+ Puppet.expects(:warning).with(
54
54
  "Config file #{path} not found, using Hiera defaults")
55
55
  test_klass.hiera_config
56
56
  end
57
57
 
58
58
  it "should only configure the logger and set it to puppet" do
59
- expect(Puppet).to receive(:warning).with(
59
+ Puppet.expects(:warning).with(
60
60
  "Config file #{path} not found, using Hiera defaults")
61
61
  expect(test_klass.hiera_config).to eq({ :logger => 'puppet' })
62
62
  end
@@ -64,6 +64,7 @@ shared_examples_for "Hiera indirection" do |test_klass, fixture_dir|
64
64
  end
65
65
 
66
66
  describe "the behavior of the find method", :if => Puppet.features.hiera? do
67
+
67
68
  let(:data_binder) { test_klass.new }
68
69
 
69
70
  it "should support looking up an integer" do
@@ -1,3 +1,4 @@
1
+
1
2
  shared_examples_for 'all iterative functions hash handling' do |func|
2
3
  it 'passes a hash entry as an array of the key and value' do
3
4
  catalog = compile_to_catalog(<<-MANIFEST)
@@ -10,8 +10,8 @@ shared_examples_for "A Memory Terminus" do
10
10
 
11
11
  it "should replace existing saved instances when a new instance with the same name is saved" do
12
12
  @searcher.save(@request)
13
- two = double('second', :name => @name)
14
- trequest = double('request', :key => @name, :instance => two)
13
+ two = stub 'second', :name => @name
14
+ trequest = stub 'request', :key => @name, :instance => two
15
15
  @searcher.save(trequest)
16
16
  expect(@searcher.find(@request)).to equal(two)
17
17
  end
@@ -1,5 +1,6 @@
1
1
  shared_examples "RHEL package provider" do |provider_class, provider_name|
2
2
  describe provider_name do
3
+
3
4
  let(:name) { 'mypackage' }
4
5
  let(:resource) do
5
6
  Puppet::Type.type(:package).new(
@@ -46,13 +47,12 @@ shared_examples "RHEL package provider" do |provider_class, provider_name|
46
47
  end
47
48
 
48
49
  before do
49
- allow(provider_class).to receive(:command).with(:cmd).and_return("/usr/bin/#{provider_name}")
50
- allow(provider).to receive(:rpm).and_return('rpm')
51
- allow(provider).to receive(:get).with(:version).and_return('1')
52
- allow(provider).to receive(:get).with(:release).and_return('1')
53
- allow(provider).to receive(:get).with(:arch).and_return('i386')
50
+ provider_class.stubs(:command).with(:cmd).returns("/usr/bin/#{provider_name}")
51
+ provider.stubs(:rpm).returns 'rpm'
52
+ provider.stubs(:get).with(:version).returns '1'
53
+ provider.stubs(:get).with(:release).returns '1'
54
+ provider.stubs(:get).with(:arch).returns 'i386'
54
55
  end
55
-
56
56
  describe 'provider features' do
57
57
  it { is_expected.to be_versionable }
58
58
  it { is_expected.to be_install_options }
@@ -66,174 +66,154 @@ shared_examples "RHEL package provider" do |provider_class, provider_name|
66
66
  end
67
67
  describe 'when installing' do
68
68
  before(:each) do
69
- allow(Puppet::Util).to receive(:which).with("rpm").and_return("/bin/rpm")
70
- allow(provider).to receive(:which).with("rpm").and_return("/bin/rpm")
71
- expect(Puppet::Util::Execution).to receive(:execute).with(["/bin/rpm", "--version"], {:combine => true, :custom_environment => {}, :failonfail => true}).and_return(Puppet::Util::Execution::ProcessOutput.new("4.10.1\n", 0)).at_most(:once)
72
- allow(Facter).to receive(:value).with(:operatingsystemmajrelease).and_return('6')
69
+ Puppet::Util.stubs(:which).with("rpm").returns("/bin/rpm")
70
+ provider.stubs(:which).with("rpm").returns("/bin/rpm")
71
+ Puppet::Util::Execution.expects(:execute).with(["/bin/rpm", "--version"], {:combine => true, :custom_environment => {}, :failonfail => true}).returns(Puppet::Util::Execution::ProcessOutput.new("4.10.1\n", 0)).at_most_once
72
+ Facter.stubs(:value).with(:operatingsystemmajrelease).returns('6')
73
73
  end
74
-
75
74
  it "should call #{provider_name} install for :installed" do
76
- allow(resource).to receive(:should).with(:ensure).and_return(:installed)
77
- expect(Puppet::Util::Execution).to receive(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', :install, 'mypackage'])
75
+ resource.stubs(:should).with(:ensure).returns :installed
76
+ Puppet::Util::Execution.expects(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', :install, 'mypackage'])
78
77
  provider.install
79
78
  end
80
79
 
81
80
  if provider_name == 'yum'
82
81
  context 'on el-5' do
83
82
  before(:each) do
84
- allow(Facter).to receive(:value).with(:operatingsystemmajrelease).and_return('5')
83
+ Facter.stubs(:value).with(:operatingsystemmajrelease).returns('5')
85
84
  end
86
-
87
85
  it "should catch #{provider_name} install failures when status code is wrong" do
88
- allow(resource).to receive(:should).with(:ensure).and_return(:installed)
89
- expect(Puppet::Util::Execution).to receive(:execute).with(["/usr/bin/#{provider_name}", '-e', error_level, '-y', :install, name]).and_return(Puppet::Util::Execution::ProcessOutput.new("No package #{name} available.", 0))
86
+ resource.stubs(:should).with(:ensure).returns :installed
87
+ Puppet::Util::Execution.expects(:execute).with(["/usr/bin/#{provider_name}", '-e', error_level, '-y', :install, name]).returns(Puppet::Util::Execution::ProcessOutput.new("No package #{name} available.", 0))
90
88
  expect {
91
89
  provider.install
92
90
  }.to raise_error(Puppet::Error, "Could not find package #{name}")
93
91
  end
94
92
  end
95
93
  end
96
-
97
94
  it 'should use :install to update' do
98
- expect(provider).to receive(:install)
95
+ provider.expects(:install)
99
96
  provider.update
100
97
  end
101
-
102
98
  it 'should be able to set version' do
103
99
  version = '1.2'
104
100
  resource[:ensure] = version
105
- expect(Puppet::Util::Execution).to receive(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', :install, "#{name}-#{version}"])
106
- allow(provider).to receive(:query).and_return(:ensure => version)
101
+ Puppet::Util::Execution.expects(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', :install, "#{name}-#{version}"])
102
+ provider.stubs(:query).returns :ensure => version
107
103
  provider.install
108
104
  end
109
105
  it 'should handle partial versions specified' do
110
106
  version = '1.3.4'
111
107
  resource[:ensure] = version
112
- expect(Puppet::Util::Execution).to receive(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', :install, 'mypackage-1.3.4'])
113
- allow(provider).to receive(:query).and_return(:ensure => '1.3.4-1.el6')
108
+ Puppet::Util::Execution.expects(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', :install, 'mypackage-1.3.4'])
109
+ provider.stubs(:query).returns :ensure => '1.3.4-1.el6'
114
110
  provider.install
115
111
  end
116
-
117
112
  it 'should be able to downgrade' do
118
113
  current_version = '1.2'
119
114
  version = '1.0'
120
115
  resource[:ensure] = '1.0'
121
- expect(Puppet::Util::Execution).to receive(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', :downgrade, "#{name}-#{version}"])
122
- allow(provider).to receive(:query).and_return({:ensure => current_version}, {:ensure => version})
116
+ Puppet::Util::Execution.expects(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', :downgrade, "#{name}-#{version}"])
117
+ provider.stubs(:query).returns(:ensure => current_version).then.returns(:ensure => version)
123
118
  provider.install
124
119
  end
125
-
126
120
  it 'should be able to upgrade' do
127
121
  current_version = '1.0'
128
122
  version = '1.2'
129
123
  resource[:ensure] = '1.2'
130
- expect(Puppet::Util::Execution).to receive(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', upgrade_command, "#{name}-#{version}"])
131
- allow(provider).to receive(:query).and_return({:ensure => current_version}, {:ensure => version})
124
+ Puppet::Util::Execution.expects(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', upgrade_command, "#{name}-#{version}"])
125
+ provider.stubs(:query).returns(:ensure => current_version).then.returns(:ensure => version)
132
126
  provider.install
133
127
  end
134
-
135
128
  it 'should not run upgrade command if absent and ensure latest' do
136
129
  current_version = ''
137
130
  version = '1.2'
138
131
  resource[:ensure] = :latest
139
- expect(Puppet::Util::Execution).to receive(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', :install, name])
140
- allow(provider).to receive(:query).and_return({:ensure => current_version}, {:ensure => version})
132
+ Puppet::Util::Execution.expects(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', :install, name])
133
+ provider.stubs(:query).returns(:ensure => current_version).then.returns(:ensure => version)
141
134
  provider.install
142
135
  end
143
-
144
136
  it 'should run upgrade command if present and ensure latest' do
145
137
  current_version = '1.0'
146
138
  version = '1.2'
147
139
  resource[:ensure] = :latest
148
- expect(Puppet::Util::Execution).to receive(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', upgrade_command, name])
149
- allow(provider).to receive(:query).and_return({:ensure => current_version}, {:ensure => version})
140
+ Puppet::Util::Execution.expects(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', upgrade_command, name])
141
+ provider.stubs(:query).returns(:ensure => current_version).then.returns(:ensure => version)
150
142
  provider.install
151
143
  end
152
-
153
144
  it 'should accept install options' do
154
145
  resource[:ensure] = :installed
155
146
  resource[:install_options] = ['-t', {'-x' => 'expackage'}]
156
- expect(Puppet::Util::Execution).to receive(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', ['-t', '-x=expackage'], :install, name])
147
+ Puppet::Util::Execution.expects(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', ['-t', '-x=expackage'], :install, name])
157
148
  provider.install
158
149
  end
159
-
160
150
  it 'allow virtual packages' do
161
151
  resource[:ensure] = :installed
162
152
  resource[:allow_virtual] = true
163
- expect(Puppet::Util::Execution).not_to receive(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', :list, name])
164
- expect(Puppet::Util::Execution).to receive(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', :install, name])
153
+ Puppet::Util::Execution.expects(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', :list, name]).never
154
+ Puppet::Util::Execution.expects(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', :install, name])
165
155
  provider.install
166
156
  end
167
-
168
157
  it 'moves architecture to end of version' do
169
158
  version = '1.2.3'
170
159
  arch_resource[:ensure] = version
171
- expect(Puppet::Util::Execution).to receive(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', :install, "#{name}-#{version}.#{arch}"])
172
- allow(arch_provider).to receive(:query).and_return(:ensure => version)
160
+ Puppet::Util::Execution.expects(:execute).with(["/usr/bin/#{provider_name}", '-d', '0', '-e', error_level, '-y', :install, "#{name}-#{version}.#{arch}"])
161
+ arch_provider.stubs(:query).returns :ensure => version
173
162
  arch_provider.install
174
163
  end
175
164
  end
176
-
177
165
  describe 'when uninstalling' do
178
166
  it 'should use erase to purge' do
179
- expect(Puppet::Util::Execution).to receive(:execute).with(["/usr/bin/#{provider_name}", '-y', :erase, name])
167
+ Puppet::Util::Execution.expects(:execute).with(["/usr/bin/#{provider_name}", '-y', :erase, name])
180
168
  provider.purge
181
169
  end
182
170
  end
183
-
184
171
  it 'should be versionable' do
185
172
  expect(provider).to be_versionable
186
173
  end
187
-
188
174
  describe 'determining the latest version available for a package' do
189
175
  it "passes the value of enablerepo install_options when querying" do
190
176
  resource[:install_options] = [
191
177
  {'--enablerepo' => 'contrib'},
192
178
  {'--enablerepo' => 'centosplus'},
193
179
  ]
194
- allow(provider).to receive(:properties).and_return({:ensure => '3.4.5'})
195
- expect(described_class).to receive(:latest_package_version).with(name, [], ['contrib', 'centosplus'], [])
180
+ provider.stubs(:properties).returns({:ensure => '3.4.5'})
181
+ described_class.expects(:latest_package_version).with(name, [], ['contrib', 'centosplus'], [])
196
182
  provider.latest
197
183
  end
198
-
199
184
  it "passes the value of disablerepo install_options when querying" do
200
185
  resource[:install_options] = [
201
186
  {'--disablerepo' => 'updates'},
202
187
  {'--disablerepo' => 'centosplus'},
203
188
  ]
204
- allow(provider).to receive(:properties).and_return({:ensure => '3.4.5'})
205
- expect(described_class).to receive(:latest_package_version).with(name, ['updates', 'centosplus'], [], [])
189
+ provider.stubs(:properties).returns({:ensure => '3.4.5'})
190
+ described_class.expects(:latest_package_version).with(name, ['updates', 'centosplus'], [], [])
206
191
  provider.latest
207
192
  end
208
-
209
193
  it "passes the value of disableexcludes install_options when querying" do
210
194
  resource[:install_options] = [
211
195
  {'--disableexcludes' => 'main'},
212
196
  {'--disableexcludes' => 'centosplus'},
213
197
  ]
214
- allow(provider).to receive(:properties).and_return({:ensure => '3.4.5'})
215
- expect(described_class).to receive(:latest_package_version).with(name, [], [], ['main', 'centosplus'])
198
+ provider.stubs(:properties).returns({:ensure => '3.4.5'})
199
+ described_class.expects(:latest_package_version).with(name, [], [], ['main', 'centosplus'])
216
200
  provider.latest
217
201
  end
218
-
219
202
  describe 'and a newer version is not available' do
220
203
  before :each do
221
- allow(described_class).to receive(:latest_package_version).with(name, [], [], []).and_return(nil)
204
+ described_class.stubs(:latest_package_version).with(name, [], [], []).returns nil
222
205
  end
223
-
224
206
  it 'raises an error the package is not installed' do
225
- allow(provider).to receive(:properties).and_return({:ensure => :absent})
207
+ provider.stubs(:properties).returns({:ensure => :absent})
226
208
  expect {
227
209
  provider.latest
228
210
  }.to raise_error(Puppet::DevError, 'Tried to get latest on a missing package')
229
211
  end
230
-
231
212
  it 'returns version of the currently installed package' do
232
- allow(provider).to receive(:properties).and_return({:ensure => '3.4.5'})
213
+ provider.stubs(:properties).returns({:ensure => '3.4.5'})
233
214
  expect(provider.latest).to eq('3.4.5')
234
215
  end
235
216
  end
236
-
237
217
  describe 'and a newer version is available' do
238
218
  let(:latest_version) do
239
219
  {
@@ -244,14 +224,12 @@ shared_examples "RHEL package provider" do |provider_class, provider_name|
244
224
  :arch => 'i686',
245
225
  }
246
226
  end
247
-
248
227
  it 'includes the epoch in the version string' do
249
- allow(described_class).to receive(:latest_package_version).with(name, [], [], []).and_return(latest_version)
228
+ described_class.stubs(:latest_package_version).with(name, [], [], []).returns(latest_version)
250
229
  expect(provider.latest).to eq('1:2.3.4-5')
251
230
  end
252
231
  end
253
232
  end
254
-
255
233
  describe "lazy loading of latest package versions" do
256
234
  before { described_class.clear }
257
235
  after { described_class.clear }
@@ -275,30 +253,26 @@ shared_examples "RHEL package provider" do |provider_class, provider_name|
275
253
  end
276
254
  let(:latest_versions) { {name => [mypackage_version]} }
277
255
  let(:enabled_versions) { {name => [mypackage_newerversion]} }
278
-
279
256
  it "returns the version hash if the package was found" do
280
- expect(described_class).to receive(:check_updates).with([], [], []).once.and_return(latest_versions)
257
+ described_class.expects(:check_updates).with([], [], []).once.returns(latest_versions)
281
258
  version = described_class.latest_package_version(name, [], [], [])
282
259
  expect(version).to eq(mypackage_version)
283
260
  end
284
-
285
261
  it "is nil if the package was not found in the query" do
286
- expect(described_class).to receive(:check_updates).with([], [], []).once.and_return(latest_versions)
262
+ described_class.expects(:check_updates).with([], [], []).once.returns(latest_versions)
287
263
  version = described_class.latest_package_version('nopackage', [], [], [])
288
264
  expect(version).to be_nil
289
265
  end
290
-
291
266
  it "caches the package list and reuses that for subsequent queries" do
292
- expect(described_class).to receive(:check_updates).with([], [], []).once.and_return(latest_versions)
267
+ described_class.expects(:check_updates).with([], [], []).once.returns(latest_versions)
293
268
  2.times {
294
269
  version = described_class.latest_package_version(name, [], [], [])
295
270
  expect(version).to eq mypackage_version
296
271
  }
297
272
  end
298
-
299
273
  it "caches separate lists for each combination of 'disablerepo' and 'enablerepo' and 'disableexcludes'" do
300
- expect(described_class).to receive(:check_updates).with([], [], []).once.and_return(latest_versions)
301
- expect(described_class).to receive(:check_updates).with(['disabled'], ['enabled'], ['disableexcludes']).once.and_return(enabled_versions)
274
+ described_class.expects(:check_updates).with([], [], []).once.returns(latest_versions)
275
+ described_class.expects(:check_updates).with(['disabled'], ['enabled'], ['disableexcludes']).once.returns(enabled_versions)
302
276
  2.times {
303
277
  version = described_class.latest_package_version(name, [], [], [])
304
278
  expect(version).to eq mypackage_version
@@ -309,67 +283,53 @@ shared_examples "RHEL package provider" do |provider_class, provider_name|
309
283
  }
310
284
  end
311
285
  end
312
-
313
286
  describe "executing #{provider_name} check-update" do
314
287
  it "passes repos to enable to '#{provider_name} check-update'" do
315
- expect(Puppet::Util::Execution).to receive(:execute).with(
316
- %W[/usr/bin/#{provider_name} check-update --enablerepo=updates --enablerepo=centosplus],
317
- any_args
318
- ).and_return(double(:exitstatus => 0))
288
+ Puppet::Util::Execution.expects(:execute).with do |args, *rest|
289
+ expect(args).to eq %W[/usr/bin/#{provider_name} check-update --enablerepo=updates --enablerepo=centosplus]
290
+ end.returns(stub(:exitstatus => 0))
319
291
  described_class.check_updates([], %W[updates centosplus], [])
320
292
  end
321
-
322
293
  it "passes repos to disable to '#{provider_name} check-update'" do
323
- expect(Puppet::Util::Execution).to receive(:execute).with(
324
- %W[/usr/bin/#{provider_name} check-update --disablerepo=updates --disablerepo=centosplus],
325
- any_args
326
- ).and_return(double(:exitstatus => 0))
294
+ Puppet::Util::Execution.expects(:execute).with do |args, *rest|
295
+ expect(args).to eq %W[/usr/bin/#{provider_name} check-update --disablerepo=updates --disablerepo=centosplus]
296
+ end.returns(stub(:exitstatus => 0))
327
297
  described_class.check_updates(%W[updates centosplus], [], [])
328
298
  end
329
-
330
299
  it "passes a combination of repos to enable and disable to '#{provider_name} check-update'" do
331
- expect(Puppet::Util::Execution).to receive(:execute).with(
332
- %W[/usr/bin/#{provider_name} check-update --disablerepo=updates --disablerepo=centosplus --enablerepo=os --enablerepo=contrib ],
333
- any_args
334
- ).and_return(double(:exitstatus => 0))
300
+ Puppet::Util::Execution.expects(:execute).with do |args, *rest|
301
+ expect(args).to eq %W[/usr/bin/#{provider_name} check-update --disablerepo=updates --disablerepo=centosplus --enablerepo=os --enablerepo=contrib ]
302
+ end.returns(stub(:exitstatus => 0))
335
303
  described_class.check_updates(%W[updates centosplus], %W[os contrib], [])
336
304
  end
337
-
338
305
  it "passes disableexcludes to '#{provider_name} check-update'" do
339
- expect(Puppet::Util::Execution).to receive(:execute).with(
340
- %W[/usr/bin/#{provider_name} check-update --disableexcludes=main --disableexcludes=centosplus],
341
- any_args
342
- ).and_return(double(:exitstatus => 0))
306
+ Puppet::Util::Execution.expects(:execute).with do |args, *rest|
307
+ expect(args).to eq %W[/usr/bin/#{provider_name} check-update --disableexcludes=main --disableexcludes=centosplus]
308
+ end.returns(stub(:exitstatus => 0))
343
309
  described_class.check_updates([], [], %W[main centosplus])
344
310
  end
345
-
346
311
  it "passes all options to '#{provider_name} check-update'" do
347
- expect(Puppet::Util::Execution).to receive(:execute).with(
348
- %W[/usr/bin/#{provider_name} check-update --disablerepo=a --disablerepo=b --enablerepo=c --enablerepo=d --disableexcludes=e --disableexcludes=f],
349
- any_args
350
- ).and_return(double(:exitstatus => 0))
312
+ Puppet::Util::Execution.expects(:execute).with do |args, *rest|
313
+ expect(args).to eq %W[/usr/bin/#{provider_name} check-update --disablerepo=a --disablerepo=b --enablerepo=c --enablerepo=d --disableexcludes=e --disableexcludes=f]
314
+ end.returns(stub(:exitstatus => 0))
351
315
  described_class.check_updates(%W[a b], %W[c d], %W[e f])
352
316
  end
353
-
354
317
  it "returns an empty hash if '#{provider_name} check-update' returned 0" do
355
- expect(Puppet::Util::Execution).to receive(:execute).and_return(double(:exitstatus => 0))
318
+ Puppet::Util::Execution.expects(:execute).returns(stub :exitstatus => 0)
356
319
  expect(described_class.check_updates([], [], [])).to be_empty
357
320
  end
358
-
359
321
  it "returns a populated hash if '#{provider_name} check-update returned 100'" do
360
- output = double(:exitstatus => 100)
361
- expect(Puppet::Util::Execution).to receive(:execute).and_return(output)
362
- expect(described_class).to receive(:parse_updates).with(output).and_return({:has => :updates})
322
+ output = stub(:exitstatus => 100)
323
+ Puppet::Util::Execution.expects(:execute).returns(output)
324
+ described_class.expects(:parse_updates).with(output).returns({:has => :updates})
363
325
  expect(described_class.check_updates([], [], [])).to eq({:has => :updates})
364
326
  end
365
-
366
327
  it "returns an empty hash if '#{provider_name} check-update' returned an exit code that was not 0 or 100" do
367
- expect(Puppet::Util::Execution).to receive(:execute).and_return(double(:exitstatus => 1))
368
- expect(described_class).to receive(:warning).with("Could not check for updates, \'/usr/bin/#{provider_name} check-update\' exited with 1")
328
+ Puppet::Util::Execution.expects(:execute).returns(stub(:exitstatus => 1))
329
+ described_class.expects(:warning).with("Could not check for updates, \'/usr/bin/#{provider_name} check-update\' exited with 1")
369
330
  expect(described_class.check_updates([], [], [])).to eq({})
370
331
  end
371
332
  end
372
-
373
333
  describe "parsing a line from #{provider_name} check-update" do
374
334
  it "splits up the package name and architecture fields" do
375
335
  checkupdate = %W[curl.i686 7.32.0-10.fc20]
@@ -377,7 +337,6 @@ shared_examples "RHEL package provider" do |provider_class, provider_name|
377
337
  expect(parsed[:name]).to eq 'curl'
378
338
  expect(parsed[:arch]).to eq 'i686'
379
339
  end
380
-
381
340
  it "splits up the epoch, version, and release fields" do
382
341
  checkupdate = %W[dhclient.i686 12:4.1.1-38.P1.el6.centos]
383
342
  parsed = described_class.update_to_hash(*checkupdate)
@@ -385,7 +344,6 @@ shared_examples "RHEL package provider" do |provider_class, provider_name|
385
344
  expect(parsed[:version]).to eq '4.1.1'
386
345
  expect(parsed[:release]).to eq '38.P1.el6.centos'
387
346
  end
388
-
389
347
  it "sets the epoch to 0 when an epoch is not specified" do
390
348
  checkupdate = %W[curl.i686 7.32.0-10.fc20]
391
349
  parsed = described_class.update_to_hash(*checkupdate)