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/ssl/key'
@@ -47,36 +48,36 @@ describe Puppet::SSL::Key do
47
48
 
48
49
  it "should be able to read keys from disk" do
49
50
  path = "/my/path"
50
- expect(Puppet::FileSystem).to receive(:read).with(path, :encoding => Encoding::ASCII).and_return("my key")
51
- key = double('key')
52
- expect(OpenSSL::PKey::RSA).to receive(:new).and_return(key)
51
+ Puppet::FileSystem.expects(:read).with(path, :encoding => Encoding::ASCII).returns("my key")
52
+ key = mock 'key'
53
+ OpenSSL::PKey::RSA.expects(:new).returns(key)
53
54
  expect(@key.read(path)).to equal(key)
54
55
  expect(@key.content).to equal(key)
55
56
  end
56
57
 
57
58
  it "should not try to use the provided password file if the file does not exist" do
58
- allow(Puppet::FileSystem).to receive(:exist?).and_return(false)
59
+ Puppet::FileSystem.stubs(:exist?).returns false
59
60
  @key.password_file = "/path/to/password"
60
61
 
61
62
  path = "/my/path"
62
63
 
63
- allow(Puppet::FileSystem).to receive(:read).with(path, :encoding => Encoding::ASCII).and_return("my key")
64
- expect(OpenSSL::PKey::RSA).to receive(:new).with("my key", nil).and_return(double('key'))
65
- expect(Puppet::FileSystem).not_to receive(:read).with("/path/to/password", :encoding => Encoding::BINARY)
64
+ Puppet::FileSystem.stubs(:read).with(path, :encoding => Encoding::ASCII).returns("my key")
65
+ OpenSSL::PKey::RSA.expects(:new).with("my key", nil).returns(mock('key'))
66
+ Puppet::FileSystem.expects(:read).with("/path/to/password", :encoding => Encoding::BINARY).never
66
67
 
67
68
  @key.read(path)
68
69
  end
69
70
 
70
71
  it "should read the key with the password retrieved from the password file if one is provided" do
71
- allow(Puppet::FileSystem).to receive(:exist?).and_return(true)
72
+ Puppet::FileSystem.stubs(:exist?).returns true
72
73
  @key.password_file = "/path/to/password"
73
74
 
74
75
  path = "/my/path"
75
- expect(Puppet::FileSystem).to receive(:read).with(path, :encoding => Encoding::ASCII).and_return("my key")
76
- expect(Puppet::FileSystem).to receive(:read).with("/path/to/password", :encoding => Encoding::BINARY).and_return("my password")
76
+ Puppet::FileSystem.expects(:read).with(path, :encoding => Encoding::ASCII).returns("my key")
77
+ Puppet::FileSystem.expects(:read).with("/path/to/password", :encoding => Encoding::BINARY).returns("my password")
77
78
 
78
- key = double('key')
79
- expect(OpenSSL::PKey::RSA).to receive(:new).with("my key", "my password").and_return(key)
79
+ key = mock 'key'
80
+ OpenSSL::PKey::RSA.expects(:new).with("my key", "my password").returns(key)
80
81
  expect(@key.read(path)).to equal(key)
81
82
  expect(@key.content).to equal(key)
82
83
  end
@@ -86,14 +87,14 @@ describe Puppet::SSL::Key do
86
87
  end
87
88
 
88
89
  it "should convert the key to pem format when converted to a string" do
89
- key = double('key', :to_pem => "pem")
90
+ key = mock 'key', :to_pem => "pem"
90
91
  @key.content = key
91
92
  expect(@key.to_s).to eq("pem")
92
93
  end
93
94
 
94
95
  it "should have a :to_text method that it delegates to the actual key" do
95
- real_key = double('key')
96
- expect(real_key).to receive(:to_text).and_return("keytext")
96
+ real_key = mock 'key'
97
+ real_key.expects(:to_text).returns "keytext"
97
98
  @key.content = real_key
98
99
  expect(@key.to_text).to eq("keytext")
99
100
  end
@@ -103,43 +104,43 @@ describe Puppet::SSL::Key do
103
104
  before do
104
105
  @instance = @class.new("test")
105
106
 
106
- @key = double('key')
107
+ @key = mock 'key'
107
108
  end
108
109
 
109
110
  it "should create an instance of OpenSSL::PKey::RSA" do
110
- expect(OpenSSL::PKey::RSA).to receive(:new).and_return(@key)
111
+ OpenSSL::PKey::RSA.expects(:new).returns(@key)
111
112
 
112
113
  @instance.generate
113
114
  end
114
115
 
115
116
  it "should create the private key with the keylength specified in the settings" do
116
117
  Puppet[:keylength] = 513
117
- expect(OpenSSL::PKey::RSA).to receive(:new).with(513).and_return(@key)
118
+ OpenSSL::PKey::RSA.expects(:new).with(513).returns(@key)
118
119
 
119
120
  @instance.generate
120
121
  end
121
122
 
122
123
  it "should set the content to the generated key" do
123
- allow(OpenSSL::PKey::RSA).to receive(:new).and_return(@key)
124
+ OpenSSL::PKey::RSA.stubs(:new).returns(@key)
124
125
  @instance.generate
125
126
  expect(@instance.content).to equal(@key)
126
127
  end
127
128
 
128
129
  it "should return the generated key" do
129
- allow(OpenSSL::PKey::RSA).to receive(:new).and_return(@key)
130
+ OpenSSL::PKey::RSA.stubs(:new).returns(@key)
130
131
  expect(@instance.generate).to equal(@key)
131
132
  end
132
133
 
133
134
  it "should return the key in pem format" do
134
135
  @instance.generate
135
- expect(@instance.content).to receive(:to_pem).and_return("my normal key")
136
+ @instance.content.expects(:to_pem).returns "my normal key"
136
137
  expect(@instance.to_s).to eq("my normal key")
137
138
  end
138
139
 
139
140
  describe "with a password file set" do
140
141
  it "should return a nil password if the password file does not exist" do
141
- expect(Puppet::FileSystem).to receive(:exist?).with("/path/to/pass").and_return(false)
142
- expect(Puppet::FileSystem).not_to receive(:read).with("/path/to/pass", :encoding => Encoding::BINARY)
142
+ Puppet::FileSystem.expects(:exist?).with("/path/to/pass").returns false
143
+ Puppet::FileSystem.expects(:read).with("/path/to/pass", :encoding => Encoding::BINARY).never
143
144
 
144
145
  @instance.password_file = "/path/to/pass"
145
146
 
@@ -147,8 +148,8 @@ describe Puppet::SSL::Key do
147
148
  end
148
149
 
149
150
  it "should return the contents of the password file as its password" do
150
- expect(Puppet::FileSystem).to receive(:exist?).with("/path/to/pass").and_return(true)
151
- expect(Puppet::FileSystem).to receive(:read).with("/path/to/pass", :encoding => Encoding::BINARY).and_return("my password")
151
+ Puppet::FileSystem.expects(:exist?).with("/path/to/pass").returns true
152
+ Puppet::FileSystem.expects(:read).with("/path/to/pass", :encoding => Encoding::BINARY).returns "my password"
152
153
 
153
154
  @instance.password_file = "/path/to/pass"
154
155
 
@@ -157,14 +158,14 @@ describe Puppet::SSL::Key do
157
158
 
158
159
  it "should export the private key to text using the password" do
159
160
  @instance.password_file = "/path/to/pass"
160
- allow(@instance).to receive(:password).and_return("my password")
161
+ @instance.stubs(:password).returns "my password"
161
162
 
162
- expect(OpenSSL::PKey::RSA).to receive(:new).and_return(@key)
163
+ OpenSSL::PKey::RSA.expects(:new).returns(@key)
163
164
  @instance.generate
164
165
 
165
- cipher = double('cipher')
166
- expect(OpenSSL::Cipher::DES).to receive(:new).with(:EDE3, :CBC).and_return(cipher)
167
- expect(@key).to receive(:export).with(cipher, "my password").and_return("my encrypted key")
166
+ cipher = mock 'cipher'
167
+ OpenSSL::Cipher::DES.expects(:new).with(:EDE3, :CBC).returns cipher
168
+ @key.expects(:export).with(cipher, "my password").returns "my encrypted key"
168
169
 
169
170
  expect(@instance.to_s).to eq("my encrypted key")
170
171
  end
@@ -5,7 +5,7 @@ require 'puppet_spec/ssl'
5
5
  describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platform.jruby? do
6
6
  include PuppetSpec::Files
7
7
  let(:ssl_context) do
8
- double('OpenSSL::X509::StoreContext')
8
+ mock('OpenSSL::X509::StoreContext')
9
9
  end
10
10
 
11
11
  before(:all) do
@@ -17,10 +17,10 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
17
17
  end
18
18
 
19
19
  let(:ssl_host) do
20
- double('ssl_host',
21
- :ssl_store => nil,
22
- :certificate => double('cert', :content => nil),
23
- :key => double('key', :content => nil))
20
+ stub('ssl_host',
21
+ :ssl_store => nil,
22
+ :certificate => stub('cert', :content => nil),
23
+ :key => stub('key', :content => nil))
24
24
  end
25
25
 
26
26
  subject do
@@ -28,13 +28,13 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
28
28
  end
29
29
 
30
30
  before :each do
31
- allow(subject).to receive(:read_file).and_return(@pki[:root_cert].to_s)
31
+ subject.stubs(:read_file).returns(@pki[:root_cert].to_s)
32
32
  end
33
33
 
34
34
  describe '#call' do
35
35
  before :each do
36
- allow(ssl_context).to receive(:current_cert).and_return(*cert_chain_in_callback_order)
37
- allow(ssl_context).to receive(:chain).and_return(cert_chain)
36
+ ssl_context.stubs(:current_cert).returns(*cert_chain_in_callback_order)
37
+ ssl_context.stubs(:chain).returns(cert_chain)
38
38
  end
39
39
 
40
40
  context 'When pre-verification is not OK' do
@@ -43,31 +43,31 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
43
43
  let(:code) { OpenSSL::X509::V_ERR_INVALID_CA }
44
44
 
45
45
  it 'rejects the connection' do
46
- allow(ssl_context).to receive(:error_string).and_return("Something went wrong")
47
- allow(ssl_context).to receive(:error).and_return(code)
46
+ ssl_context.stubs(:error_string).returns("Something went wrong")
47
+ ssl_context.stubs(:error).returns(code)
48
48
 
49
49
  expect(subject.call(false, ssl_context)).to eq(false)
50
50
  end
51
51
 
52
52
  it 'makes the error available via #verify_errors' do
53
- allow(ssl_context).to receive(:error_string).and_return("Something went wrong")
54
- allow(ssl_context).to receive(:error).and_return(code)
53
+ ssl_context.stubs(:error_string).returns("Something went wrong")
54
+ ssl_context.stubs(:error).returns(code)
55
55
 
56
56
  subject.call(false, ssl_context)
57
57
  expect(subject.verify_errors).to eq(["Something went wrong for #{root_subject}"])
58
58
  end
59
59
 
60
60
  it 'uses a generic message if error_string is nil' do
61
- allow(ssl_context).to receive(:error_string).and_return(nil)
62
- allow(ssl_context).to receive(:error).and_return(code)
61
+ ssl_context.stubs(:error_string).returns(nil)
62
+ ssl_context.stubs(:error).returns(code)
63
63
 
64
64
  subject.call(false, ssl_context)
65
65
  expect(subject.verify_errors).to eq(["OpenSSL error #{code} for #{root_subject}"])
66
66
  end
67
67
 
68
68
  it 'uses 0 for nil error codes' do
69
- allow(ssl_context).to receive(:error_string).and_return("Something went wrong")
70
- allow(ssl_context).to receive(:error).and_return(nil)
69
+ ssl_context.stubs(:error_string).returns("Something went wrong")
70
+ ssl_context.stubs(:error).returns(nil)
71
71
 
72
72
  subject.call(false, ssl_context)
73
73
  expect(subject.verify_errors).to eq(["Something went wrong for #{root_subject}"])
@@ -75,12 +75,12 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
75
75
 
76
76
  context "when CRL is not yet valid" do
77
77
  before :each do
78
- allow(ssl_context).to receive(:error_string).and_return("CRL is not yet valid")
79
- allow(ssl_context).to receive(:error).and_return(OpenSSL::X509::V_ERR_CRL_NOT_YET_VALID)
78
+ ssl_context.stubs(:error_string).returns("CRL is not yet valid")
79
+ ssl_context.stubs(:error).returns(OpenSSL::X509::V_ERR_CRL_NOT_YET_VALID)
80
80
  end
81
81
 
82
82
  it 'rejects nil CRL' do
83
- allow(ssl_context).to receive(:current_crl).and_return(nil)
83
+ ssl_context.stubs(:current_crl).returns(nil)
84
84
 
85
85
  expect(subject.call(false, ssl_context)).to eq(false)
86
86
  expect(subject.verify_errors).to eq(["CRL is not yet valid"])
@@ -90,7 +90,7 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
90
90
  crl = OpenSSL::X509::CRL.new
91
91
  crl.issuer = OpenSSL::X509::Name.new([['CN','Puppet CA: puppetmaster.example.com']])
92
92
  crl.last_update = Time.now + 24 * 60 * 60
93
- allow(ssl_context).to receive(:current_crl).and_return(crl)
93
+ ssl_context.stubs(:current_crl).returns(crl)
94
94
 
95
95
  subject.call(false, ssl_context)
96
96
  expect(subject.verify_errors).to eq(["CRL is not yet valid for /CN=Puppet CA: puppetmaster.example.com"])
@@ -100,7 +100,7 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
100
100
  crl = OpenSSL::X509::CRL.new
101
101
  crl.issuer = OpenSSL::X509::Name.new([['CN','Puppet CA: puppetmaster.example.com']])
102
102
  crl.last_update = Time.now + 24 * 60 * 60
103
- allow(ssl_context).to receive(:current_crl).and_return(crl)
103
+ ssl_context.stubs(:current_crl).returns(crl)
104
104
 
105
105
  expect(subject.call(false, ssl_context)).to eq(false)
106
106
  end
@@ -109,7 +109,7 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
109
109
  crl = OpenSSL::X509::CRL.new
110
110
  crl.issuer = OpenSSL::X509::Name.new([['CN','Puppet CA: puppetmaster.example.com']])
111
111
  crl.last_update = Time.now + 10
112
- allow(ssl_context).to receive(:current_crl).and_return(crl)
112
+ ssl_context.stubs(:current_crl).returns(crl)
113
113
 
114
114
  expect(subject.call(false, ssl_context)).to eq(true)
115
115
  end
@@ -120,7 +120,7 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
120
120
  context 'When pre-verification is OK' do
121
121
  context 'and the ssl_context is in an error state' do
122
122
  before :each do
123
- allow(ssl_context).to receive(:error_string).and_return("Something went wrong")
123
+ ssl_context.stubs(:error_string).returns("Something went wrong")
124
124
  end
125
125
 
126
126
  it 'does not make the error available via #verify_errors' do
@@ -146,7 +146,7 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
146
146
 
147
147
  context 'and the chain is invalid' do
148
148
  before :each do
149
- allow(subject).to receive(:read_file).and_return(@pki[:unrevoked_leaf_node_cert])
149
+ subject.stubs(:read_file).returns(@pki[:unrevoked_leaf_node_cert])
150
150
  end
151
151
 
152
152
  it 'is true for each CA certificate in the chain' do
@@ -165,7 +165,7 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
165
165
 
166
166
  context 'an error is raised inside of #call' do
167
167
  before :each do
168
- expect(ssl_context).to receive(:current_cert).and_raise(StandardError, "BOOM!")
168
+ ssl_context.expects(:current_cert).raises(StandardError, "BOOM!")
169
169
  end
170
170
 
171
171
  it 'is false' do
@@ -182,27 +182,26 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
182
182
 
183
183
  describe '#setup_connection' do
184
184
  it 'updates the connection for verification' do
185
- allow(subject).to receive(:ssl_certificates_are_present?).and_return(true)
186
- connection = double('Net::HTTP')
185
+ subject.stubs(:ssl_certificates_are_present?).returns(true)
186
+ connection = mock('Net::HTTP')
187
187
 
188
- allow(connection).to receive(:address).and_return('puppet.com')
189
- expect(connection).to receive(:cert_store=).with(ssl_host.ssl_store)
190
- expect(connection).to receive(:ca_file=).with(ca_path)
191
- expect(connection).to receive(:cert=).with(ssl_host.certificate.content)
192
- expect(connection).to receive(:key=).with(ssl_host.key.content)
193
- expect(connection).to receive(:verify_callback=).with(subject)
194
- expect(connection).to receive(:verify_mode=).with(OpenSSL::SSL::VERIFY_PEER)
188
+ connection.expects(:cert_store=).with(ssl_host.ssl_store)
189
+ connection.expects(:ca_file=).with(ca_path)
190
+ connection.expects(:cert=).with(ssl_host.certificate.content)
191
+ connection.expects(:key=).with(ssl_host.key.content)
192
+ connection.expects(:verify_callback=).with(subject)
193
+ connection.expects(:verify_mode=).with(OpenSSL::SSL::VERIFY_PEER)
195
194
 
196
195
  subject.setup_connection(connection, ssl_host)
197
196
  end
198
197
 
199
198
  context 'when no file path is found' do
199
+
200
200
  it 'does not perform verification if certificate files are missing' do
201
- allow(subject).to receive(:ssl_certificates_are_present?).and_return(false)
202
- connection = double('Net::HTTP')
201
+ subject.stubs(:ssl_certificates_are_present?).returns(false)
202
+ connection = mock('Net::HTTP')
203
203
 
204
- allow(connection).to receive(:address).and_return('puppet.com')
205
- expect(connection).to receive(:verify_mode=).with(OpenSSL::SSL::VERIFY_NONE)
204
+ connection.expects(:verify_mode=).with(OpenSSL::SSL::VERIFY_NONE)
206
205
 
207
206
  subject.setup_connection(connection, ssl_host)
208
207
  end
@@ -216,7 +215,7 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
216
215
 
217
216
  context 'when the peer presents a valid chain' do
218
217
  before :each do
219
- allow(subject).to receive(:has_authz_peer_cert).and_return(true)
218
+ subject.stubs(:has_authz_peer_cert).returns(true)
220
219
  end
221
220
 
222
221
  it 'is true' do
@@ -226,7 +225,7 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
226
225
 
227
226
  context 'when the peer presents an invalid chain' do
228
227
  before :each do
229
- allow(subject).to receive(:has_authz_peer_cert).and_return(false)
228
+ subject.stubs(:has_authz_peer_cert).returns(false)
230
229
  end
231
230
 
232
231
  it 'is false' do
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
  require 'puppet_spec/files'
3
4
  require 'puppet_spec/modules'
@@ -23,9 +24,9 @@ describe Puppet::Module::Task do
23
24
 
24
25
  it "constructs tasks as expected when every task has a metadata file with the same name (besides extension)" do
25
26
  task_files = %w{task1.json task1 task2.json task2.exe task3.json task3.sh}.map { |bn| "#{tasks_path}/#{bn}" }
26
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(task_files)
27
+ Dir.expects(:glob).with(tasks_glob).returns(task_files)
27
28
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
28
- allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({})
29
+ Puppet::Module::Task.any_instance.stubs(:metadata).returns({})
29
30
 
30
31
  expect(tasks.count).to eq(3)
31
32
  expect(tasks.map{|t| t.name}).to eq(%w{mymod::task1 mymod::task2 mymod::task3})
@@ -51,8 +52,8 @@ describe Puppet::Module::Task do
51
52
 
52
53
  it "constructs tasks as expected when some tasks don't have a metadata file" do
53
54
  task_files = %w{task1 task2.exe task3.json task3.sh}.map { |bn| "#{tasks_path}/#{bn}" }
54
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(task_files)
55
- allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({})
55
+ Dir.expects(:glob).with(tasks_glob).returns(task_files)
56
+ Puppet::Module::Task.any_instance.stubs(:metadata).returns({})
56
57
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
57
58
 
58
59
  expect(tasks.count).to eq(3)
@@ -65,9 +66,9 @@ describe Puppet::Module::Task do
65
66
 
66
67
  it "constructs a task as expected when a task has implementations" do
67
68
  task_files = %w{task1.elf task1.sh task1.json}.map { |bn| "#{tasks_path}/#{bn}" }
68
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(task_files)
69
+ Dir.expects(:glob).with(tasks_glob).returns(task_files)
69
70
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
70
- allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({'implementations' => [{"name" => "task1.sh"}]})
71
+ Puppet::Module::Task.any_instance.stubs(:metadata).returns({'implementations' => [{"name" => "task1.sh"}]})
71
72
 
72
73
  expect(tasks.count).to eq(1)
73
74
  expect(tasks.map{|t| t.name}).to eq(%w{mymod::task1})
@@ -77,10 +78,10 @@ describe Puppet::Module::Task do
77
78
 
78
79
  it "constructs a task as expected when task metadata declares additional files" do
79
80
  task_files = %w{task1.sh task1.json}.map { |bn| "#{tasks_path}/#{bn}" }
80
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(task_files)
81
- expect(Puppet::Module::Task).to receive(:find_extra_files).and_return([{'name' => 'mymod/lib/file0.elf', 'path' => "/path/to/file0.elf"}])
81
+ Dir.expects(:glob).with(tasks_glob).returns(task_files)
82
+ Puppet::Module::Task.expects(:find_extra_files).returns([{'name' => 'mymod/lib/file0.elf', 'path' => "/path/to/file0.elf"}])
82
83
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
83
- allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({'files' => ["mymod/lib/file0.elf"]})
84
+ Puppet::Module::Task.any_instance.stubs(:metadata).returns({'files' => ["mymod/lib/file0.elf"]})
84
85
 
85
86
  expect(tasks.count).to eq(1)
86
87
  expect(tasks.map{|t| t.name}).to eq(%w{mymod::task1})
@@ -90,10 +91,10 @@ describe Puppet::Module::Task do
90
91
 
91
92
  it "constructs a task as expected when a task implementation declares additional files" do
92
93
  task_files = %w{task1.sh task1.json}.map { |bn| "#{tasks_path}/#{bn}" }
93
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(task_files)
94
- expect(Puppet::Module::Task).to receive(:find_extra_files).and_return([{'name' => 'mymod/lib/file0.elf', 'path' => "/path/to/file0.elf"}])
94
+ Dir.expects(:glob).with(tasks_glob).returns(task_files)
95
+ Puppet::Module::Task.expects(:find_extra_files).returns([{'name' => 'mymod/lib/file0.elf', 'path' => "/path/to/file0.elf"}])
95
96
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
96
- allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({'implementations' => [{"name" => "task1.sh", "files" => ["mymod/lib/file0.elf"]}]})
97
+ Puppet::Module::Task.any_instance.stubs(:metadata).returns({'implementations' => [{"name" => "task1.sh", "files" => ["mymod/lib/file0.elf"]}]})
97
98
 
98
99
  expect(tasks.count).to eq(1)
99
100
  expect(tasks.map{|t| t.name}).to eq(%w{mymod::task1})
@@ -103,13 +104,13 @@ describe Puppet::Module::Task do
103
104
 
104
105
  it "constructs a task as expected when task metadata and a task implementation both declare additional files" do
105
106
  task_files = %w{task1.sh task1.json}.map { |bn| "#{tasks_path}/#{bn}" }
106
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(task_files)
107
- expect(Puppet::Module::Task).to receive(:find_extra_files).and_return([
107
+ Dir.expects(:glob).with(tasks_glob).returns(task_files)
108
+ Puppet::Module::Task.expects(:find_extra_files).returns([
108
109
  {'name' => 'mymod/lib/file0.elf', 'path' => "/path/to/file0.elf"},
109
110
  {'name' => 'yourmod/files/file1.txt', 'path' => "/other/path/to/file1.txt"}
110
111
  ])
111
112
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
112
- allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({'implementations' => [{"name" => "task1.sh", "files" => ["mymod/lib/file0.elf"]}]})
113
+ Puppet::Module::Task.any_instance.stubs(:metadata).returns({'implementations' => [{"name" => "task1.sh", "files" => ["mymod/lib/file0.elf"]}]})
113
114
 
114
115
  expect(tasks.count).to eq(1)
115
116
  expect(tasks.map{|t| t.name}).to eq(%w{mymod::task1})
@@ -123,14 +124,14 @@ describe Puppet::Module::Task do
123
124
 
124
125
  it "constructs a task as expected when a task has files" do
125
126
  og_files = %w{task1.sh task1.json}.map { |bn| "#{tasks_path}/#{bn}" }
126
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(og_files)
127
- expect(File).to receive(:exist?).with(any_args).and_return(true).at_least(:once)
127
+ Dir.expects(:glob).with(tasks_glob).returns(og_files)
128
+ File.expects(:exist?).with(any_parameters).returns(true).at_least(1)
128
129
 
129
- expect(Puppet::Module).to receive(:find).with(othermod.name, "production").and_return(othermod).at_least(:once)
130
+ Puppet::Module.expects(:find).with(othermod.name, "production").returns(othermod).at_least(1)
130
131
  short_files = %w{other_task.sh other_task.json task_2.sh}.map { |bn| "#{othermod.name}/tasks/#{bn}" }
131
132
  long_files = %w{other_task.sh other_task.json task_2.sh}.map { |bn| "#{other_tasks_path}/#{bn}" }
132
133
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
133
- allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({'files' => short_files})
134
+ Puppet::Module::Task.any_instance.stubs(:metadata).returns({'files' => short_files})
134
135
 
135
136
  expect(tasks.count).to eq(1)
136
137
  expect(tasks.map{|t| t.files.map{ |f| f["path"] } }).to eq([["#{tasks_path}/task1.sh"] + long_files])
@@ -138,18 +139,18 @@ describe Puppet::Module::Task do
138
139
 
139
140
  it "fails to load a task if its metadata specifies a non-existent file" do
140
141
  og_files = %w{task1.sh task1.json}.map { |bn| "#{tasks_path}/#{bn}" }
141
- allow(Dir).to receive(:glob).with(tasks_glob).and_return(og_files)
142
- allow(File).to receive(:exist?).with(any_args).and_return(true)
142
+ Dir.stubs(:glob).with(tasks_glob).returns(og_files)
143
+ File.stubs(:exist?).with(any_parameters).returns(true)
143
144
 
144
- expect(Puppet::Module).to receive(:find).with(othermod.name, "production").and_return(nil).at_least(:once)
145
+ Puppet::Module.expects(:find).with(othermod.name, "production").returns(nil).at_least(1)
145
146
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
146
- allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({'files' => ["#{othermod.name}/files/test"]})
147
+ Puppet::Module::Task.any_instance.stubs(:metadata).returns({'files' => ["#{othermod.name}/files/test"]})
147
148
 
148
149
  expect { tasks.first.files }.to raise_error(Puppet::Module::Task::InvalidMetadata, /Could not find module #{othermod.name} containing task file test/)
149
150
  end
150
151
 
151
152
  it "finds files whose names (besides extensions) are valid task names" do
152
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task task_1 xx_t_a_s_k_2_xx})
153
+ Dir.expects(:glob).with(tasks_glob).returns(%w{task task_1 xx_t_a_s_k_2_xx})
153
154
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
154
155
 
155
156
  expect(tasks.count).to eq(3)
@@ -157,7 +158,7 @@ describe Puppet::Module::Task do
157
158
  end
158
159
 
159
160
  it "ignores files that have names (besides extensions) that are not valid task names" do
160
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{.nottask.exe .wat !runme _task 2task2furious def_a_task_PSYCH Fake_task not-a-task realtask})
161
+ Dir.expects(:glob).with(tasks_glob).returns(%w{.nottask.exe .wat !runme _task 2task2furious def_a_task_PSYCH Fake_task not-a-task realtask})
161
162
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
162
163
 
163
164
  expect(tasks.count).to eq(1)
@@ -165,7 +166,7 @@ describe Puppet::Module::Task do
165
166
  end
166
167
 
167
168
  it "ignores files that have names ending in .conf and .md" do
168
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{ginuwine_task task.conf readme.md other_task.md})
169
+ Dir.expects(:glob).with(tasks_glob).returns(%w{ginuwine_task task.conf readme.md other_task.md})
169
170
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
170
171
 
171
172
  expect(tasks.count).to eq(1)
@@ -179,8 +180,8 @@ describe Puppet::Module::Task do
179
180
  describe :metadata do
180
181
  it "loads metadata for a task" do
181
182
  metadata = {'desciption': 'some info'}
182
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.exe task1.json})
183
- allow(Puppet::Module::Task).to receive(:read_metadata).and_return(metadata)
183
+ Dir.expects(:glob).with(tasks_glob).returns(%w{task1.exe task1.json})
184
+ Puppet::Module::Task.stubs(:read_metadata).returns(metadata)
184
185
 
185
186
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
186
187
 
@@ -189,7 +190,7 @@ describe Puppet::Module::Task do
189
190
  end
190
191
 
191
192
  it 'returns nil for metadata if no file is present' do
192
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.exe})
193
+ Dir.expects(:glob).with(tasks_glob).returns(%w{task1.exe})
193
194
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
194
195
 
195
196
  expect(tasks.count).to eq(1)
@@ -212,7 +213,7 @@ describe Puppet::Module::Task do
212
213
 
213
214
  describe :validate do
214
215
  it "validates when there is no metadata" do
215
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.exe})
216
+ Dir.expects(:glob).with(tasks_glob).returns(%w{task1.exe})
216
217
 
217
218
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
218
219
 
@@ -223,8 +224,8 @@ describe Puppet::Module::Task do
223
224
  it "validates when an implementation isn't used" do
224
225
  metadata = {'desciption' => 'some info',
225
226
  'implementations' => [ {"name" => "task1.exe"}, ] }
226
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.exe task1.sh task1.json})
227
- allow(Puppet::Module::Task).to receive(:read_metadata).and_return(metadata)
227
+ Dir.expects(:glob).with(tasks_glob).returns(%w{task1.exe task1.sh task1.json})
228
+ Puppet::Module::Task.stubs(:read_metadata).returns(metadata)
228
229
 
229
230
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
230
231
 
@@ -235,8 +236,8 @@ describe Puppet::Module::Task do
235
236
  it "validates when an implementation is another task" do
236
237
  metadata = {'desciption' => 'some info',
237
238
  'implementations' => [ {"name" => "task2.sh"}, ] }
238
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.exe task2.sh task1.json})
239
- allow(Puppet::Module::Task).to receive(:read_metadata).and_return(metadata)
239
+ Dir.expects(:glob).with(tasks_glob).returns(%w{task1.exe task2.sh task1.json})
240
+ Puppet::Module::Task.stubs(:read_metadata).returns(metadata)
240
241
 
241
242
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
242
243
 
@@ -245,9 +246,9 @@ describe Puppet::Module::Task do
245
246
  end
246
247
 
247
248
  it "fails validation when there is no metadata and multiple task files" do
248
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.elf task1.exe task1.json task2.ps1 task2.sh})
249
+ Dir.expects(:glob).with(tasks_glob).returns(%w{task1.elf task1.exe task1.json task2.ps1 task2.sh})
249
250
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
250
- allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({})
251
+ Puppet::Module::Task.any_instance.stubs(:metadata).returns({})
251
252
 
252
253
  tasks.each do |task|
253
254
  expect {task.validate}.to raise_error(Puppet::Module::Task::InvalidTask)
@@ -255,9 +256,9 @@ describe Puppet::Module::Task do
255
256
  end
256
257
 
257
258
  it "fails validation when an implementation references a non-existant file" do
258
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.elf task1.exe task1.json})
259
+ Dir.expects(:glob).with(tasks_glob).returns(%w{task1.elf task1.exe task1.json})
259
260
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
260
- allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({'implementations' => [ { 'name' => 'task1.sh' } ] })
261
+ Puppet::Module::Task.any_instance.stubs(:metadata).returns({'implementations' => [ { 'name' => 'task1.sh' } ] })
261
262
 
262
263
  tasks.each do |task|
263
264
  expect {task.validate}.to raise_error(Puppet::Module::Task::InvalidTask)
@@ -265,25 +266,25 @@ describe Puppet::Module::Task do
265
266
  end
266
267
 
267
268
  it 'fails validation when there is metadata but no executable' do
268
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.json task2.sh})
269
+ Dir.expects(:glob).with(tasks_glob).returns(%w{task1.json task2.sh})
269
270
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
270
- allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({})
271
+ Puppet::Module::Task.any_instance.stubs(:metadata).returns({})
271
272
 
272
273
  expect { tasks.find { |t| t.name == 'mymod::task1' }.validate }.to raise_error(Puppet::Module::Task::InvalidTask)
273
274
  end
274
275
 
275
276
  it 'fails validation when the implementations are not an array' do
276
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.json task2.sh})
277
+ Dir.expects(:glob).with(tasks_glob).returns(%w{task1.json task2.sh})
277
278
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
278
- allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({"implemenations" => {}})
279
+ Puppet::Module::Task.any_instance.stubs(:metadata).returns({"implemenations" => {}})
279
280
 
280
281
  expect { tasks.find { |t| t.name == 'mymod::task1' }.validate }.to raise_error(Puppet::Module::Task::InvalidTask)
281
282
  end
282
283
 
283
284
  it 'fails validation when the implementation is json' do
284
- expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.json task1.sh})
285
+ Dir.expects(:glob).with(tasks_glob).returns(%w{task1.json task1.sh})
285
286
  tasks = Puppet::Module::Task.tasks_in_module(mymod)
286
- allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({'implementations' => [ { 'name' => 'task1.json' } ] })
287
+ Puppet::Module::Task.any_instance.stubs(:metadata).returns({'implementations' => [ { 'name' => 'task1.json' } ] })
287
288
 
288
289
  expect { tasks.find { |t| t.name == 'mymod::task1' }.validate }.to raise_error(Puppet::Module::Task::InvalidTask)
289
290
  end