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

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

Potentially problematic release.


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

Files changed (748) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/Gemfile.lock +31 -27
  4. data/Guardfile.example +76 -0
  5. data/LICENSE +189 -4
  6. data/MAINTAINERS +47 -0
  7. data/README.md +3 -3
  8. data/lib/hiera/scope.rb +0 -7
  9. data/lib/puppet.rb +6 -5
  10. data/lib/puppet/application.rb +3 -3
  11. data/lib/puppet/application/cert.rb +2 -2
  12. data/lib/puppet/application/device.rb +83 -109
  13. data/lib/puppet/application/filebucket.rb +1 -10
  14. data/lib/puppet/application/ssl.rb +0 -2
  15. data/lib/puppet/configurer.rb +9 -10
  16. data/lib/puppet/confine/false.rb +1 -7
  17. data/lib/puppet/confine/true.rb +1 -7
  18. data/lib/puppet/defaults.rb +39 -51
  19. data/lib/puppet/forge.rb +1 -4
  20. data/lib/puppet/functions/abs.rb +1 -1
  21. data/lib/puppet/functions/call.rb +1 -2
  22. data/lib/puppet/functions/new.rb +1 -1
  23. data/lib/puppet/indirector/request.rb +15 -26
  24. data/lib/puppet/network/http/connection.rb +12 -32
  25. data/lib/puppet/network/http/factory.rb +0 -5
  26. data/lib/puppet/pal/catalog_compiler.rb +96 -0
  27. data/lib/puppet/pal/compiler.rb +221 -0
  28. data/lib/puppet/pal/function_signature.rb +52 -0
  29. data/lib/puppet/pal/json_catalog_encoder.rb +67 -0
  30. data/lib/puppet/pal/pal_api.rb +15 -0
  31. data/lib/puppet/pal/pal_impl.rb +523 -0
  32. data/lib/puppet/pal/plan_signature.rb +71 -0
  33. data/lib/puppet/pal/script_compiler.rb +71 -0
  34. data/lib/puppet/pal/task_signature.rb +58 -0
  35. data/lib/puppet/parser/functions/generate.rb +7 -6
  36. data/lib/puppet/plugins/configuration.rb +5 -1
  37. data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -1
  38. data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -3
  39. data/lib/puppet/pops/issues.rb +0 -4
  40. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +4 -60
  41. data/lib/puppet/pops/model/factory.rb +4 -38
  42. data/lib/puppet/pops/model/pn_transformer.rb +0 -5
  43. data/lib/puppet/pops/parser/egrammar.ra +2 -2
  44. data/lib/puppet/pops/parser/heredoc_support.rb +7 -17
  45. data/lib/puppet/pops/parser/lexer2.rb +1 -6
  46. data/lib/puppet/pops/parser/locator.rb +86 -106
  47. data/lib/puppet/pops/parser/parser_support.rb +2 -11
  48. data/lib/puppet/pops/types/string_converter.rb +7 -2
  49. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  50. data/lib/puppet/pops/types/types.rb +3 -5
  51. data/lib/puppet/pops/validation/checker4_0.rb +13 -0
  52. data/lib/puppet/provider.rb +2 -1
  53. data/lib/puppet/provider/exec.rb +6 -1
  54. data/lib/puppet/provider/file/windows.rb +1 -49
  55. data/lib/puppet/provider/group/windows_adsi.rb +1 -4
  56. data/lib/puppet/provider/package.rb +0 -2
  57. data/lib/puppet/provider/package/dpkg.rb +2 -15
  58. data/lib/puppet/provider/package/gem.rb +42 -102
  59. data/lib/puppet/provider/package/pip.rb +111 -135
  60. data/lib/puppet/provider/package/pip3.rb +1 -1
  61. data/lib/puppet/provider/package/pkgng.rb +37 -21
  62. data/lib/puppet/provider/package/puppet_gem.rb +1 -1
  63. data/lib/puppet/provider/package/rpm.rb +16 -27
  64. data/lib/puppet/provider/package/windows.rb +1 -5
  65. data/lib/puppet/provider/package/yum.rb +1 -2
  66. data/lib/puppet/provider/service/systemd.rb +17 -0
  67. data/lib/puppet/provider/service/upstart.rb +5 -17
  68. data/lib/puppet/provider/service/windows.rb +8 -3
  69. data/lib/puppet/provider/user/directoryservice.rb +4 -16
  70. data/lib/puppet/provider/user/useradd.rb +13 -16
  71. data/lib/puppet/resource.rb +3 -1
  72. data/lib/puppet/rest/client.rb +83 -0
  73. data/lib/puppet/rest/route.rb +1 -1
  74. data/lib/puppet/settings.rb +5 -10
  75. data/lib/puppet/settings/server_list_setting.rb +0 -9
  76. data/lib/puppet/ssl/host.rb +11 -0
  77. data/lib/puppet/ssl/validator/default_validator.rb +0 -31
  78. data/lib/puppet/syntax_checkers/epp.rb +34 -0
  79. data/lib/puppet/syntax_checkers/pp.rb +34 -0
  80. data/lib/puppet/transaction.rb +7 -12
  81. data/lib/puppet/transaction/event_manager.rb +5 -1
  82. data/lib/puppet/transaction/resource_harness.rb +0 -1
  83. data/lib/puppet/type.rb +6 -0
  84. data/lib/puppet/type/exec.rb +5 -27
  85. data/lib/puppet/type/file/mode.rb +1 -6
  86. data/lib/puppet/type/file/source.rb +1 -0
  87. data/lib/puppet/type/filebucket.rb +8 -12
  88. data/lib/puppet/type/package.rb +11 -44
  89. data/lib/puppet/type/schedule.rb +0 -4
  90. data/lib/puppet/type/service.rb +12 -0
  91. data/lib/puppet/type/user.rb +1 -1
  92. data/lib/puppet/util/command_line.rb +1 -5
  93. data/lib/puppet/util/connection.rb +6 -15
  94. data/lib/puppet/util/http_proxy.rb +2 -3
  95. data/lib/puppet/util/log.rb +2 -7
  96. data/lib/puppet/util/pidlock.rb +1 -15
  97. data/lib/puppet/util/windows/process.rb +5 -73
  98. data/lib/puppet/util/windows/registry.rb +1 -7
  99. data/lib/puppet/util/windows/security.rb +8 -29
  100. data/lib/puppet/util/windows/service.rb +33 -27
  101. data/lib/puppet/util/windows/user.rb +4 -14
  102. data/lib/puppet/version.rb +1 -1
  103. data/lib/puppet_pal.rb +5 -1132
  104. data/locales/ja/puppet.po +297 -363
  105. data/locales/puppet.pot +445 -517
  106. data/man/man5/puppet.conf.5 +12 -20
  107. data/man/man8/puppet-agent.8 +1 -1
  108. data/man/man8/puppet-apply.8 +1 -1
  109. data/man/man8/puppet-catalog.8 +1 -1
  110. data/man/man8/puppet-config.8 +1 -1
  111. data/man/man8/puppet-describe.8 +1 -1
  112. data/man/man8/puppet-device.8 +1 -1
  113. data/man/man8/puppet-doc.8 +1 -1
  114. data/man/man8/puppet-epp.8 +1 -1
  115. data/man/man8/puppet-facts.8 +1 -1
  116. data/man/man8/puppet-filebucket.8 +2 -6
  117. data/man/man8/puppet-generate.8 +1 -1
  118. data/man/man8/puppet-help.8 +1 -1
  119. data/man/man8/puppet-key.8 +1 -1
  120. data/man/man8/puppet-lookup.8 +1 -1
  121. data/man/man8/puppet-man.8 +1 -1
  122. data/man/man8/puppet-module.8 +1 -1
  123. data/man/man8/puppet-node.8 +1 -1
  124. data/man/man8/puppet-parser.8 +1 -1
  125. data/man/man8/puppet-plugin.8 +1 -1
  126. data/man/man8/puppet-report.8 +1 -1
  127. data/man/man8/puppet-resource.8 +1 -1
  128. data/man/man8/puppet-script.8 +1 -1
  129. data/man/man8/puppet-ssl.8 +1 -1
  130. data/man/man8/puppet-status.8 +1 -1
  131. data/man/man8/puppet.8 +2 -2
  132. data/spec/fixtures/unit/provider/package/pkgng/pkg.query +7 -1
  133. data/spec/fixtures/unit/provider/package/pkgng/pkg.query.zsh +1 -0
  134. data/spec/integration/agent/logging_spec.rb +7 -5
  135. data/spec/integration/application/apply_spec.rb +16 -18
  136. data/spec/integration/application/doc_spec.rb +2 -1
  137. data/spec/integration/application/lookup_spec.rb +5 -5
  138. data/spec/integration/configurer_spec.rb +6 -5
  139. data/spec/integration/defaults_spec.rb +6 -5
  140. data/spec/integration/directory_environments_spec.rb +1 -1
  141. data/spec/integration/faces/config_spec.rb +4 -3
  142. data/spec/integration/faces/documentation_spec.rb +1 -0
  143. data/spec/integration/faces/plugin_spec.rb +1 -1
  144. data/spec/integration/file_bucket/file_spec.rb +4 -2
  145. data/spec/integration/file_serving/content_spec.rb +1 -0
  146. data/spec/integration/file_serving/fileset_spec.rb +1 -0
  147. data/spec/integration/file_serving/metadata_spec.rb +1 -0
  148. data/spec/integration/file_serving/terminus_helper_spec.rb +1 -0
  149. data/spec/integration/indirector/catalog/compiler_spec.rb +11 -10
  150. data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
  151. data/spec/integration/indirector/facts/facter_spec.rb +5 -4
  152. data/spec/integration/indirector/file_content/file_server_spec.rb +8 -7
  153. data/spec/integration/indirector/file_metadata/file_server_spec.rb +8 -7
  154. data/spec/integration/network/authconfig_spec.rb +24 -23
  155. data/spec/integration/network/formats_spec.rb +1 -0
  156. data/spec/integration/node/environment_spec.rb +1 -0
  157. data/spec/integration/node/facts_spec.rb +10 -9
  158. data/spec/integration/node_spec.rb +7 -6
  159. data/spec/integration/parser/catalog_spec.rb +5 -1
  160. data/spec/integration/parser/collection_spec.rb +2 -1
  161. data/spec/integration/parser/compiler_spec.rb +6 -6
  162. data/spec/integration/parser/scope_spec.rb +1 -1
  163. data/spec/integration/parser/undef_param_spec.rb +1 -1
  164. data/spec/integration/provider/service/init_spec.rb +5 -4
  165. data/spec/integration/provider/service/systemd_spec.rb +2 -0
  166. data/spec/integration/provider/service/windows_spec.rb +2 -1
  167. data/spec/integration/reference/providers_spec.rb +2 -1
  168. data/spec/integration/reports_spec.rb +2 -1
  169. data/spec/integration/resource/catalog_spec.rb +17 -14
  170. data/spec/integration/resource/type_collection_spec.rb +5 -4
  171. data/spec/integration/ssl/certificate_request_spec.rb +1 -0
  172. data/spec/integration/ssl/host_spec.rb +2 -1
  173. data/spec/integration/ssl/key_spec.rb +1 -0
  174. data/spec/integration/test/test_helper_spec.rb +1 -0
  175. data/spec/integration/transaction/report_spec.rb +11 -6
  176. data/spec/integration/transaction_spec.rb +19 -18
  177. data/spec/integration/type/exec_spec.rb +1 -0
  178. data/spec/integration/type/file_spec.rb +33 -13
  179. data/spec/integration/type/package_spec.rb +24 -20
  180. data/spec/integration/type/tidy_spec.rb +2 -1
  181. data/spec/integration/type_spec.rb +1 -0
  182. data/spec/integration/util/autoload_spec.rb +2 -1
  183. data/spec/integration/util/rdoc/parser_spec.rb +1 -0
  184. data/spec/integration/util/settings_spec.rb +1 -0
  185. data/spec/integration/util/windows/adsi_spec.rb +5 -3
  186. data/spec/integration/util/windows/principal_spec.rb +1 -0
  187. data/spec/integration/util/windows/process_spec.rb +6 -4
  188. data/spec/integration/util/windows/registry_spec.rb +51 -93
  189. data/spec/integration/util/windows/security_spec.rb +4 -2
  190. data/spec/integration/util/windows/user_spec.rb +20 -37
  191. data/spec/integration/util_spec.rb +7 -4
  192. data/spec/lib/puppet_spec/compiler.rb +1 -1
  193. data/spec/lib/puppet_spec/files.rb +1 -0
  194. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
  195. data/spec/lib/puppet_spec/scope.rb +2 -1
  196. data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
  197. data/spec/shared_behaviours/file_server_terminus.rb +9 -8
  198. data/spec/shared_behaviours/file_serving.rb +8 -6
  199. data/spec/shared_behaviours/file_serving_model.rb +5 -3
  200. data/spec/shared_behaviours/hiera_indirections.rb +4 -3
  201. data/spec/shared_behaviours/iterative_functions.rb +1 -0
  202. data/spec/shared_behaviours/memory_terminus.rb +2 -2
  203. data/spec/shared_examples/rhel_package_provider.rb +70 -112
  204. data/spec/spec_helper.rb +2 -11
  205. data/spec/unit/agent/disabler_spec.rb +5 -4
  206. data/spec/unit/agent/locker_spec.rb +13 -12
  207. data/spec/unit/agent_spec.rb +85 -80
  208. data/spec/unit/application/agent_spec.rb +93 -88
  209. data/spec/unit/application/apply_spec.rb +83 -82
  210. data/spec/unit/application/config_spec.rb +1 -0
  211. data/spec/unit/application/describe_spec.rb +7 -6
  212. data/spec/unit/application/device_spec.rb +419 -395
  213. data/spec/unit/application/doc_spec.rb +46 -44
  214. data/spec/unit/application/face_base_spec.rb +62 -61
  215. data/spec/unit/application/facts_spec.rb +4 -3
  216. data/spec/unit/application/filebucket_spec.rb +74 -66
  217. data/spec/unit/application/indirection_base_spec.rb +6 -8
  218. data/spec/unit/application/lookup_spec.rb +26 -26
  219. data/spec/unit/application/resource_spec.rb +48 -42
  220. data/spec/unit/application/ssl_spec.rb +3 -8
  221. data/spec/unit/application_spec.rb +98 -86
  222. data/spec/unit/capability_spec.rb +6 -6
  223. data/spec/unit/certificate_factory_spec.rb +5 -3
  224. data/spec/unit/configurer/downloader_spec.rb +21 -20
  225. data/spec/unit/configurer/fact_handler_spec.rb +3 -2
  226. data/spec/unit/configurer/plugin_handler_spec.rb +8 -41
  227. data/spec/unit/configurer_spec.rb +198 -194
  228. data/spec/unit/confine/exists_spec.rb +15 -17
  229. data/spec/unit/confine/false_spec.rb +6 -32
  230. data/spec/unit/confine/feature_spec.rb +5 -7
  231. data/spec/unit/confine/true_spec.rb +6 -32
  232. data/spec/unit/confine/variable_spec.rb +15 -14
  233. data/spec/unit/confine_collection_spec.rb +29 -28
  234. data/spec/unit/confine_spec.rb +14 -13
  235. data/spec/unit/confiner_spec.rb +11 -10
  236. data/spec/unit/context/trusted_information_spec.rb +1 -1
  237. data/spec/unit/daemon_spec.rb +36 -35
  238. data/spec/unit/data_providers/function_data_provider_spec.rb +1 -0
  239. data/spec/unit/data_providers/hiera_data_provider_spec.rb +1 -0
  240. data/spec/unit/datatypes_spec.rb +4 -3
  241. data/spec/unit/defaults_spec.rb +27 -18
  242. data/spec/unit/environments_spec.rb +7 -7
  243. data/spec/unit/etc_spec.rb +32 -30
  244. data/spec/unit/external/pson_spec.rb +1 -0
  245. data/spec/unit/face/catalog_spec.rb +1 -0
  246. data/spec/unit/face/config_spec.rb +35 -31
  247. data/spec/unit/face/epp_face_spec.rb +4 -3
  248. data/spec/unit/face/facts_spec.rb +6 -5
  249. data/spec/unit/face/generate_spec.rb +5 -4
  250. data/spec/unit/face/help_spec.rb +8 -7
  251. data/spec/unit/face/key_spec.rb +1 -0
  252. data/spec/unit/face/man_spec.rb +2 -1
  253. data/spec/unit/face/module/install_spec.rb +5 -3
  254. data/spec/unit/face/module/list_spec.rb +12 -2
  255. data/spec/unit/face/module/search_spec.rb +9 -11
  256. data/spec/unit/face/module/uninstall_spec.rb +8 -4
  257. data/spec/unit/face/node_spec.rb +24 -23
  258. data/spec/unit/face/parser_spec.rb +18 -3
  259. data/spec/unit/face/plugin_spec.rb +9 -36
  260. data/spec/unit/face/status_spec.rb +1 -0
  261. data/spec/unit/file_bucket/dipper_spec.rb +20 -24
  262. data/spec/unit/file_bucket/file_spec.rb +2 -0
  263. data/spec/unit/file_serving/base_spec.rb +15 -14
  264. data/spec/unit/file_serving/configuration/parser_spec.rb +28 -27
  265. data/spec/unit/file_serving/configuration_spec.rb +66 -63
  266. data/spec/unit/file_serving/content_spec.rb +11 -10
  267. data/spec/unit/file_serving/fileset_spec.rb +58 -63
  268. data/spec/unit/file_serving/http_metadata_spec.rb +7 -8
  269. data/spec/unit/file_serving/metadata_spec.rb +36 -36
  270. data/spec/unit/file_serving/mount/file_spec.rb +32 -31
  271. data/spec/unit/file_serving/mount/locales_spec.rb +24 -23
  272. data/spec/unit/file_serving/mount/modules_spec.rb +15 -14
  273. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +24 -23
  274. data/spec/unit/file_serving/mount/plugins_spec.rb +24 -23
  275. data/spec/unit/file_serving/mount/tasks_spec.rb +15 -14
  276. data/spec/unit/file_serving/mount_spec.rb +1 -0
  277. data/spec/unit/file_serving/terminus_helper_spec.rb +42 -37
  278. data/spec/unit/file_serving/terminus_selector_spec.rb +13 -12
  279. data/spec/unit/file_system/uniquefile_spec.rb +4 -4
  280. data/spec/unit/file_system_spec.rb +2 -2
  281. data/spec/unit/forge/errors_spec.rb +1 -1
  282. data/spec/unit/forge/forge_spec.rb +16 -17
  283. data/spec/unit/forge/module_release_spec.rb +18 -18
  284. data/spec/unit/forge/repository_spec.rb +30 -29
  285. data/spec/unit/forge_spec.rb +11 -15
  286. data/spec/unit/functions/binary_file_spec.rb +3 -3
  287. data/spec/unit/functions/contain_spec.rb +2 -0
  288. data/spec/unit/functions/defined_spec.rb +1 -0
  289. data/spec/unit/functions/epp_spec.rb +2 -2
  290. data/spec/unit/functions/find_file_spec.rb +7 -7
  291. data/spec/unit/functions/include_spec.rb +4 -0
  292. data/spec/unit/functions/lookup_fixture_spec.rb +1 -0
  293. data/spec/unit/functions/lookup_spec.rb +2 -1
  294. data/spec/unit/functions/module_directory_spec.rb +12 -12
  295. data/spec/unit/functions/new_spec.rb +0 -15
  296. data/spec/unit/functions/require_spec.rb +3 -0
  297. data/spec/unit/functions/shared.rb +8 -5
  298. data/spec/unit/functions/versioncmp_spec.rb +2 -1
  299. data/spec/unit/functions4_spec.rb +10 -9
  300. data/spec/unit/gettext/config_spec.rb +4 -4
  301. data/spec/unit/gettext/module_loading_spec.rb +7 -7
  302. data/spec/unit/graph/rb_tree_map_spec.rb +2 -0
  303. data/spec/unit/graph/relationship_graph_spec.rb +2 -1
  304. data/spec/unit/graph/simple_graph_spec.rb +10 -9
  305. data/spec/unit/hiera/scope_spec.rb +0 -7
  306. data/spec/unit/hiera_puppet_spec.rb +20 -20
  307. data/spec/unit/indirector/catalog/compiler_spec.rb +149 -147
  308. data/spec/unit/indirector/catalog/json_spec.rb +2 -1
  309. data/spec/unit/indirector/catalog/msgpack_spec.rb +1 -0
  310. data/spec/unit/indirector/catalog/rest_spec.rb +1 -0
  311. data/spec/unit/indirector/catalog/store_configs_spec.rb +1 -0
  312. data/spec/unit/indirector/catalog/yaml_spec.rb +1 -0
  313. data/spec/unit/indirector/certificate/file_spec.rb +1 -0
  314. data/spec/unit/indirector/certificate/rest_spec.rb +10 -8
  315. data/spec/unit/indirector/certificate_request/file_spec.rb +1 -0
  316. data/spec/unit/indirector/certificate_request/rest_spec.rb +1 -0
  317. data/spec/unit/indirector/direct_file_server_spec.rb +18 -17
  318. data/spec/unit/indirector/envelope_spec.rb +2 -1
  319. data/spec/unit/indirector/exec_spec.rb +5 -4
  320. data/spec/unit/indirector/face_spec.rb +9 -9
  321. data/spec/unit/indirector/facts/facter_spec.rb +43 -37
  322. data/spec/unit/indirector/facts/network_device_spec.rb +9 -8
  323. data/spec/unit/indirector/facts/rest_spec.rb +8 -7
  324. data/spec/unit/indirector/facts/store_configs_spec.rb +1 -0
  325. data/spec/unit/indirector/facts/yaml_spec.rb +1 -0
  326. data/spec/unit/indirector/file_bucket_file/file_spec.rb +4 -3
  327. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +1 -0
  328. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +5 -4
  329. data/spec/unit/indirector/file_content/file_server_spec.rb +1 -0
  330. data/spec/unit/indirector/file_content/file_spec.rb +1 -0
  331. data/spec/unit/indirector/file_content/rest_spec.rb +1 -0
  332. data/spec/unit/indirector/file_content/selector_spec.rb +1 -0
  333. data/spec/unit/indirector/file_metadata/file_server_spec.rb +1 -0
  334. data/spec/unit/indirector/file_metadata/file_spec.rb +13 -12
  335. data/spec/unit/indirector/file_metadata/rest_spec.rb +1 -0
  336. data/spec/unit/indirector/file_metadata/selector_spec.rb +1 -0
  337. data/spec/unit/indirector/file_server_spec.rb +87 -87
  338. data/spec/unit/indirector/indirection_spec.rb +226 -242
  339. data/spec/unit/indirector/json_spec.rb +9 -7
  340. data/spec/unit/indirector/key/file_spec.rb +22 -21
  341. data/spec/unit/indirector/memory_spec.rb +7 -6
  342. data/spec/unit/indirector/msgpack_spec.rb +9 -7
  343. data/spec/unit/indirector/node/exec_spec.rb +3 -2
  344. data/spec/unit/indirector/node/memory_spec.rb +4 -2
  345. data/spec/unit/indirector/node/msgpack_spec.rb +1 -0
  346. data/spec/unit/indirector/node/plain_spec.rb +4 -2
  347. data/spec/unit/indirector/node/rest_spec.rb +1 -0
  348. data/spec/unit/indirector/node/store_configs_spec.rb +1 -0
  349. data/spec/unit/indirector/node/yaml_spec.rb +1 -0
  350. data/spec/unit/indirector/none_spec.rb +5 -5
  351. data/spec/unit/indirector/plain_spec.rb +8 -7
  352. data/spec/unit/indirector/report/msgpack_spec.rb +1 -0
  353. data/spec/unit/indirector/report/processor_spec.rb +22 -21
  354. data/spec/unit/indirector/report/rest_spec.rb +12 -11
  355. data/spec/unit/indirector/report/yaml_spec.rb +1 -0
  356. data/spec/unit/indirector/request_spec.rb +12 -11
  357. data/spec/unit/indirector/resource/ral_spec.rb +54 -47
  358. data/spec/unit/indirector/resource/store_configs_spec.rb +1 -0
  359. data/spec/unit/indirector/rest_spec.rb +110 -113
  360. data/spec/unit/indirector/ssl_file_spec.rb +65 -64
  361. data/spec/unit/indirector/status/local_spec.rb +1 -0
  362. data/spec/unit/indirector/status/rest_spec.rb +1 -0
  363. data/spec/unit/indirector/store_configs_spec.rb +1 -0
  364. data/spec/unit/indirector/terminus_spec.rb +27 -27
  365. data/spec/unit/indirector/yaml_spec.rb +6 -5
  366. data/spec/unit/indirector_spec.rb +2 -1
  367. data/spec/unit/info_service_spec.rb +1 -1
  368. data/spec/unit/interface/action_builder_spec.rb +1 -0
  369. data/spec/unit/interface/action_manager_spec.rb +1 -0
  370. data/spec/unit/interface/action_spec.rb +3 -2
  371. data/spec/unit/interface/documentation_spec.rb +1 -0
  372. data/spec/unit/interface/face_collection_spec.rb +12 -19
  373. data/spec/unit/interface_spec.rb +3 -3
  374. data/spec/unit/man_spec.rb +4 -3
  375. data/spec/unit/module_spec.rb +51 -46
  376. data/spec/unit/module_tool/applications/installer_spec.rb +11 -10
  377. data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
  378. data/spec/unit/module_tool/applications/uninstaller_spec.rb +2 -1
  379. data/spec/unit/module_tool/applications/unpacker_spec.rb +13 -13
  380. data/spec/unit/module_tool/applications/upgrader_spec.rb +5 -5
  381. data/spec/unit/module_tool/install_directory_spec.rb +8 -8
  382. data/spec/unit/module_tool/installed_modules_spec.rb +3 -3
  383. data/spec/unit/module_tool/tar/gnu_spec.rb +6 -6
  384. data/spec/unit/module_tool/tar/mini_spec.rb +12 -12
  385. data/spec/unit/module_tool/tar_spec.rb +13 -12
  386. data/spec/unit/module_tool_spec.rb +12 -7
  387. data/spec/unit/network/auth_config_parser_spec.rb +13 -11
  388. data/spec/unit/network/authconfig_spec.rb +18 -17
  389. data/spec/unit/network/authorization_spec.rb +5 -4
  390. data/spec/unit/network/authstore_spec.rb +1 -0
  391. data/spec/unit/network/format_handler_spec.rb +1 -0
  392. data/spec/unit/network/format_spec.rb +10 -9
  393. data/spec/unit/network/format_support_spec.rb +29 -28
  394. data/spec/unit/network/formats_spec.rb +5 -4
  395. data/spec/unit/network/http/api/indirected_routes_spec.rb +29 -24
  396. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +2 -2
  397. data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -1
  398. data/spec/unit/network/http/api/master/v3/environments_spec.rb +7 -6
  399. data/spec/unit/network/http/api_spec.rb +2 -0
  400. data/spec/unit/network/http/compression_spec.rb +22 -21
  401. data/spec/unit/network/http/connection_spec.rb +121 -30
  402. data/spec/unit/network/http/factory_spec.rb +6 -11
  403. data/spec/unit/network/http/handler_spec.rb +18 -9
  404. data/spec/unit/network/http/nocache_pool_spec.rb +7 -6
  405. data/spec/unit/network/http/pool_spec.rb +29 -28
  406. data/spec/unit/network/http/request_spec.rb +2 -0
  407. data/spec/unit/network/http/response_spec.rb +13 -11
  408. data/spec/unit/network/http/route_spec.rb +1 -0
  409. data/spec/unit/network/http/session_spec.rb +2 -1
  410. data/spec/unit/network/http/site_spec.rb +1 -0
  411. data/spec/unit/network/http_pool_spec.rb +9 -18
  412. data/spec/unit/network/http_spec.rb +1 -0
  413. data/spec/unit/network/resolver_spec.rb +26 -25
  414. data/spec/unit/network/rights_spec.rb +53 -52
  415. data/spec/unit/node/environment_spec.rb +15 -14
  416. data/spec/unit/node/facts_spec.rb +7 -5
  417. data/spec/unit/node_spec.rb +10 -4
  418. data/spec/unit/other/selinux_spec.rb +1 -0
  419. data/spec/unit/parameter/boolean_spec.rb +2 -1
  420. data/spec/unit/parameter/package_options_spec.rb +2 -1
  421. data/spec/unit/parameter/path_spec.rb +1 -0
  422. data/spec/unit/parameter/value_collection_spec.rb +1 -0
  423. data/spec/unit/parameter/value_spec.rb +1 -0
  424. data/spec/unit/parameter_spec.rb +9 -9
  425. data/spec/unit/parser/ast/block_expression_spec.rb +8 -6
  426. data/spec/unit/parser/ast/leaf_spec.rb +21 -20
  427. data/spec/unit/parser/compiler_spec.rb +96 -84
  428. data/spec/unit/parser/environment_compiler_spec.rb +8 -7
  429. data/spec/unit/parser/files_spec.rb +1 -0
  430. data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
  431. data/spec/unit/parser/functions/digest_spec.rb +1 -0
  432. data/spec/unit/parser/functions/fail_spec.rb +2 -1
  433. data/spec/unit/parser/functions/file_spec.rb +14 -13
  434. data/spec/unit/parser/functions/fqdn_rand_spec.rb +6 -5
  435. data/spec/unit/parser/functions/generate_spec.rb +8 -7
  436. data/spec/unit/parser/functions/inline_template_spec.rb +1 -0
  437. data/spec/unit/parser/functions/regsubst_spec.rb +1 -0
  438. data/spec/unit/parser/functions/scanf_spec.rb +1 -0
  439. data/spec/unit/parser/functions/shellquote_spec.rb +1 -0
  440. data/spec/unit/parser/functions/split_spec.rb +1 -0
  441. data/spec/unit/parser/functions/sprintf_spec.rb +1 -0
  442. data/spec/unit/parser/functions/tag_spec.rb +2 -1
  443. data/spec/unit/parser/functions/tagged_spec.rb +3 -2
  444. data/spec/unit/parser/functions/template_spec.rb +13 -13
  445. data/spec/unit/parser/functions/versioncmp_spec.rb +2 -1
  446. data/spec/unit/parser/functions_spec.rb +7 -6
  447. data/spec/unit/parser/relationship_spec.rb +1 -0
  448. data/spec/unit/parser/resource_spec.rb +42 -42
  449. data/spec/unit/parser/scope_spec.rb +35 -39
  450. data/spec/unit/parser/templatewrapper_spec.rb +12 -11
  451. data/spec/unit/parser/type_loader_spec.rb +19 -17
  452. data/spec/unit/pops/adaptable_spec.rb +1 -0
  453. data/spec/unit/pops/benchmark_spec.rb +1 -0
  454. data/spec/unit/pops/evaluator/access_ops_spec.rb +1 -0
  455. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +1 -0
  456. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -0
  457. data/spec/unit/pops/evaluator/collections_ops_spec.rb +1 -0
  458. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +1 -0
  459. data/spec/unit/pops/evaluator/conditionals_spec.rb +1 -0
  460. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +47 -10
  461. data/spec/unit/pops/evaluator/logical_ops_spec.rb +1 -0
  462. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +1 -0
  463. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +1 -0
  464. data/spec/unit/pops/evaluator/variables_spec.rb +1 -0
  465. data/spec/unit/pops/factory_spec.rb +4 -3
  466. data/spec/unit/pops/issues_spec.rb +20 -19
  467. data/spec/unit/pops/loaders/loader_spec.rb +4 -8
  468. data/spec/unit/pops/loaders/loaders_spec.rb +31 -101
  469. data/spec/unit/pops/lookup/context_spec.rb +1 -0
  470. data/spec/unit/pops/lookup/interpolation_spec.rb +3 -2
  471. data/spec/unit/pops/merge_strategy_spec.rb +1 -0
  472. data/spec/unit/pops/migration_spec.rb +5 -3
  473. data/spec/unit/pops/model/model_spec.rb +1 -0
  474. data/spec/unit/pops/model/pn_transformer_spec.rb +1 -4
  475. data/spec/unit/pops/parser/locator_spec.rb +6 -48
  476. data/spec/unit/pops/parser/parse_application_spec.rb +1 -0
  477. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +1 -0
  478. data/spec/unit/pops/parser/parse_calls_spec.rb +1 -0
  479. data/spec/unit/pops/parser/parse_capabilities_spec.rb +1 -0
  480. data/spec/unit/pops/parser/parse_conditionals_spec.rb +1 -0
  481. data/spec/unit/pops/parser/parse_containers_spec.rb +1 -0
  482. data/spec/unit/pops/parser/parse_heredoc_spec.rb +15 -111
  483. data/spec/unit/pops/parser/parse_plan_spec.rb +1 -0
  484. data/spec/unit/pops/parser/parse_resource_spec.rb +1 -0
  485. data/spec/unit/pops/parser/parse_site_spec.rb +1 -0
  486. data/spec/unit/pops/parser/pn_parser_spec.rb +1 -0
  487. data/spec/unit/pops/pn_spec.rb +1 -0
  488. data/spec/unit/pops/resource/resource_type_impl_spec.rb +1 -0
  489. data/spec/unit/pops/serialization/serialization_spec.rb +1 -1
  490. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  491. data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
  492. data/spec/unit/pops/types/ruby_generator_spec.rb +2 -2
  493. data/spec/unit/pops/types/string_converter_spec.rb +5 -1
  494. data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
  495. data/spec/unit/pops/types/type_calculator_spec.rb +30 -30
  496. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +0 -9
  497. data/spec/unit/pops/types/type_parser_spec.rb +13 -13
  498. data/spec/unit/pops/validator/validator_spec.rb +2 -1
  499. data/spec/unit/pops/visitor_spec.rb +1 -0
  500. data/spec/unit/property/boolean_spec.rb +1 -1
  501. data/spec/unit/property/ensure_spec.rb +1 -0
  502. data/spec/unit/property/keyvalue_spec.rb +34 -32
  503. data/spec/unit/property/list_spec.rb +27 -26
  504. data/spec/unit/property/ordered_list_spec.rb +14 -10
  505. data/spec/unit/property_spec.rb +43 -42
  506. data/spec/unit/provider/aix_object_spec.rb +45 -47
  507. data/spec/unit/provider/command_spec.rb +9 -9
  508. data/spec/unit/provider/exec/posix_spec.rb +31 -6
  509. data/spec/unit/provider/exec/shell_spec.rb +1 -0
  510. data/spec/unit/provider/exec/windows_spec.rb +4 -2
  511. data/spec/unit/provider/exec_spec.rb +1 -0
  512. data/spec/unit/provider/file/posix_spec.rb +24 -22
  513. data/spec/unit/provider/file/windows_spec.rb +17 -15
  514. data/spec/unit/provider/group/aix_spec.rb +2 -3
  515. data/spec/unit/provider/group/groupadd_spec.rb +26 -30
  516. data/spec/unit/provider/group/ldap_spec.rb +18 -18
  517. data/spec/unit/provider/group/pw_spec.rb +11 -11
  518. data/spec/unit/provider/group/windows_adsi_spec.rb +53 -59
  519. data/spec/unit/provider/ldap_spec.rb +62 -61
  520. data/spec/unit/provider/nameservice/directoryservice_spec.rb +36 -35
  521. data/spec/unit/provider/nameservice_spec.rb +40 -38
  522. data/spec/unit/provider/package/aix_spec.rb +15 -15
  523. data/spec/unit/provider/package/appdmg_spec.rb +13 -13
  524. data/spec/unit/provider/package/apt_spec.rb +27 -44
  525. data/spec/unit/provider/package/aptitude_spec.rb +7 -6
  526. data/spec/unit/provider/package/aptrpm_spec.rb +12 -7
  527. data/spec/unit/provider/package/base_spec.rb +4 -4
  528. data/spec/unit/provider/package/dnf_spec.rb +20 -18
  529. data/spec/unit/provider/package/dpkg_spec.rb +53 -70
  530. data/spec/unit/provider/package/freebsd_spec.rb +11 -11
  531. data/spec/unit/provider/package/gem_spec.rb +55 -132
  532. data/spec/unit/provider/package/hpux_spec.rb +8 -8
  533. data/spec/unit/provider/package/macports_spec.rb +42 -46
  534. data/spec/unit/provider/package/nim_spec.rb +39 -30
  535. data/spec/unit/provider/package/openbsd_spec.rb +39 -36
  536. data/spec/unit/provider/package/opkg_spec.rb +26 -23
  537. data/spec/unit/provider/package/pacman_spec.rb +118 -97
  538. data/spec/unit/provider/package/pip3_spec.rb +0 -17
  539. data/spec/unit/provider/package/pip_spec.rb +106 -95
  540. data/spec/unit/provider/package/pkg_spec.rb +109 -109
  541. data/spec/unit/provider/package/pkgdmg_spec.rb +63 -65
  542. data/spec/unit/provider/package/pkgin_spec.rb +8 -10
  543. data/spec/unit/provider/package/pkgng_spec.rb +31 -22
  544. data/spec/unit/provider/package/pkgutil_spec.rb +49 -45
  545. data/spec/unit/provider/package/portage_spec.rb +74 -70
  546. data/spec/unit/provider/package/puppet_gem_spec.rb +13 -37
  547. data/spec/unit/provider/package/rpm_spec.rb +76 -154
  548. data/spec/unit/provider/package/sun_spec.rb +18 -16
  549. data/spec/unit/provider/package/tdnf_spec.rb +2 -2
  550. data/spec/unit/provider/package/up2date_spec.rb +4 -2
  551. data/spec/unit/provider/package/urpmi_spec.rb +17 -15
  552. data/spec/unit/provider/package/windows/exe_package_spec.rb +15 -12
  553. data/spec/unit/provider/package/windows/msi_package_spec.rb +22 -19
  554. data/spec/unit/provider/package/windows/package_spec.rb +42 -37
  555. data/spec/unit/provider/package/windows_spec.rb +32 -47
  556. data/spec/unit/provider/package/yum_spec.rb +7 -7
  557. data/spec/unit/provider/package/zypper_spec.rb +87 -87
  558. data/spec/unit/provider/parsedfile_spec.rb +45 -44
  559. data/spec/unit/provider/service/base_spec.rb +5 -4
  560. data/spec/unit/provider/service/bsd_spec.rb +29 -27
  561. data/spec/unit/provider/service/daemontools_spec.rb +35 -35
  562. data/spec/unit/provider/service/debian_spec.rb +38 -38
  563. data/spec/unit/provider/service/freebsd_spec.rb +18 -18
  564. data/spec/unit/provider/service/gentoo_spec.rb +55 -50
  565. data/spec/unit/provider/service/init_spec.rb +52 -53
  566. data/spec/unit/provider/service/launchd_spec.rb +116 -138
  567. data/spec/unit/provider/service/openbsd_spec.rb +50 -50
  568. data/spec/unit/provider/service/openrc_spec.rb +45 -43
  569. data/spec/unit/provider/service/openwrt_spec.rb +31 -26
  570. data/spec/unit/provider/service/rcng_spec.rb +14 -14
  571. data/spec/unit/provider/service/redhat_spec.rb +43 -45
  572. data/spec/unit/provider/service/runit_spec.rb +27 -29
  573. data/spec/unit/provider/service/smf_spec.rb +66 -74
  574. data/spec/unit/provider/service/src_spec.rb +47 -46
  575. data/spec/unit/provider/service/systemd_spec.rb +136 -109
  576. data/spec/unit/provider/service/upstart_spec.rb +93 -77
  577. data/spec/unit/provider/service/windows_spec.rb +41 -33
  578. data/spec/unit/provider/user/aix_spec.rb +31 -31
  579. data/spec/unit/provider/user/directoryservice_spec.rb +114 -146
  580. data/spec/unit/provider/user/hpux_spec.rb +16 -16
  581. data/spec/unit/provider/user/ldap_spec.rb +57 -57
  582. data/spec/unit/provider/user/openbsd_spec.rb +12 -10
  583. data/spec/unit/provider/user/pw_spec.rb +35 -37
  584. data/spec/unit/provider/user/user_role_add_spec.rb +93 -93
  585. data/spec/unit/provider/user/useradd_spec.rb +92 -93
  586. data/spec/unit/provider/user/windows_adsi_spec.rb +60 -59
  587. data/spec/unit/provider_spec.rb +35 -35
  588. data/spec/unit/puppet_pal_2pec.rb +5 -4
  589. data/spec/unit/puppet_pal_spec.rb +1 -0
  590. data/spec/unit/puppet_spec.rb +7 -6
  591. data/spec/unit/relationship_spec.rb +1 -0
  592. data/spec/unit/reports/http_spec.rb +23 -21
  593. data/spec/unit/reports/store_spec.rb +4 -3
  594. data/spec/unit/reports_spec.rb +14 -12
  595. data/spec/unit/resource/capability_finder_spec.rb +17 -15
  596. data/spec/unit/resource/catalog_spec.rb +68 -72
  597. data/spec/unit/resource/status_spec.rb +8 -6
  598. data/spec/unit/resource/type_collection_spec.rb +18 -17
  599. data/spec/unit/resource/type_spec.rb +35 -34
  600. data/spec/unit/resource_spec.rb +63 -36
  601. data/spec/unit/rest/client_spec.rb +135 -0
  602. data/spec/unit/rest/route_spec.rb +6 -6
  603. data/spec/unit/scheduler/job_spec.rb +1 -0
  604. data/spec/unit/scheduler/scheduler_spec.rb +1 -0
  605. data/spec/unit/scheduler/splay_job_spec.rb +2 -1
  606. data/spec/unit/settings/array_setting_spec.rb +1 -1
  607. data/spec/unit/settings/autosign_setting_spec.rb +9 -9
  608. data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
  609. data/spec/unit/settings/config_file_spec.rb +1 -0
  610. data/spec/unit/settings/directory_setting_spec.rb +7 -2
  611. data/spec/unit/settings/duration_setting_spec.rb +2 -1
  612. data/spec/unit/settings/enum_setting_spec.rb +1 -1
  613. data/spec/unit/settings/environment_conf_spec.rb +6 -4
  614. data/spec/unit/settings/file_setting_spec.rb +46 -44
  615. data/spec/unit/settings/path_setting_spec.rb +2 -1
  616. data/spec/unit/settings/priority_setting_spec.rb +2 -1
  617. data/spec/unit/settings/string_setting_spec.rb +15 -14
  618. data/spec/unit/settings/terminus_setting_spec.rb +2 -1
  619. data/spec/unit/settings/value_translator_spec.rb +1 -0
  620. data/spec/unit/settings_spec.rb +224 -253
  621. data/spec/unit/ssl/base_spec.rb +15 -14
  622. data/spec/unit/ssl/certificate_request_spec.rb +58 -62
  623. data/spec/unit/ssl/certificate_spec.rb +25 -23
  624. data/spec/unit/ssl/digest_spec.rb +1 -0
  625. data/spec/unit/ssl/host_spec.rb +149 -166
  626. data/spec/unit/ssl/key_spec.rb +31 -30
  627. data/spec/unit/ssl/validator_spec.rb +39 -40
  628. data/spec/unit/task_spec.rb +45 -44
  629. data/spec/unit/transaction/additional_resource_generator_spec.rb +5 -3
  630. data/spec/unit/transaction/event_manager_spec.rb +88 -87
  631. data/spec/unit/transaction/event_spec.rb +15 -16
  632. data/spec/unit/transaction/persistence_spec.rb +17 -16
  633. data/spec/unit/transaction/report_spec.rb +12 -11
  634. data/spec/unit/transaction/resource_harness_spec.rb +31 -52
  635. data/spec/unit/transaction_spec.rb +87 -140
  636. data/spec/unit/type/component_spec.rb +1 -0
  637. data/spec/unit/type/exec_spec.rb +50 -101
  638. data/spec/unit/type/file/checksum_spec.rb +10 -9
  639. data/spec/unit/type/file/checksum_value_spec.rb +32 -31
  640. data/spec/unit/type/file/content_spec.rb +61 -58
  641. data/spec/unit/type/file/ctime_spec.rb +1 -0
  642. data/spec/unit/type/file/ensure_spec.rb +13 -12
  643. data/spec/unit/type/file/group_spec.rb +7 -5
  644. data/spec/unit/type/file/mode_spec.rb +6 -4
  645. data/spec/unit/type/file/mtime_spec.rb +1 -0
  646. data/spec/unit/type/file/owner_spec.rb +8 -6
  647. data/spec/unit/type/file/selinux_spec.rb +19 -17
  648. data/spec/unit/type/file/source_spec.rb +101 -104
  649. data/spec/unit/type/file/type_spec.rb +1 -0
  650. data/spec/unit/type/file_spec.rb +185 -195
  651. data/spec/unit/type/filebucket_spec.rb +10 -11
  652. data/spec/unit/type/group_spec.rb +8 -6
  653. data/spec/unit/type/noop_metaparam_spec.rb +2 -1
  654. data/spec/unit/type/package/package_settings_spec.rb +23 -44
  655. data/spec/unit/type/package_spec.rb +57 -56
  656. data/spec/unit/type/resources_spec.rb +74 -72
  657. data/spec/unit/type/schedule_spec.rb +26 -24
  658. data/spec/unit/type/service_spec.rb +75 -49
  659. data/spec/unit/type/stage_spec.rb +1 -0
  660. data/spec/unit/type/tidy_spec.rb +62 -61
  661. data/spec/unit/type/user_spec.rb +25 -24
  662. data/spec/unit/type/whit_spec.rb +1 -0
  663. data/spec/unit/type_spec.rb +54 -55
  664. data/spec/unit/util/at_fork_spec.rb +19 -18
  665. data/spec/unit/util/autoload_spec.rb +56 -55
  666. data/spec/unit/util/backups_spec.rb +35 -34
  667. data/spec/unit/util/character_encoding_spec.rb +5 -5
  668. data/spec/unit/util/checksums_spec.rb +39 -38
  669. data/spec/unit/util/colors_spec.rb +2 -1
  670. data/spec/unit/util/command_line_spec.rb +20 -40
  671. data/spec/unit/util/constant_inflector_spec.rb +1 -0
  672. data/spec/unit/util/diff_spec.rb +8 -7
  673. data/spec/unit/util/errors_spec.rb +1 -0
  674. data/spec/unit/util/execution_spec.rb +163 -187
  675. data/spec/unit/util/execution_stub_spec.rb +1 -0
  676. data/spec/unit/util/feature_spec.rb +14 -21
  677. data/spec/unit/util/filetype_spec.rb +49 -49
  678. data/spec/unit/util/http_proxy_spec.rb +12 -12
  679. data/spec/unit/util/inifile_spec.rb +31 -26
  680. data/spec/unit/util/json_lockfile_spec.rb +5 -3
  681. data/spec/unit/util/ldap/connection_spec.rb +25 -26
  682. data/spec/unit/util/ldap/generator_spec.rb +1 -0
  683. data/spec/unit/util/ldap/manager_spec.rb +101 -102
  684. data/spec/unit/util/lockfile_spec.rb +1 -0
  685. data/spec/unit/util/log/destinations_spec.rb +33 -30
  686. data/spec/unit/util/log_spec.rb +34 -48
  687. data/spec/unit/util/logging_spec.rb +72 -58
  688. data/spec/unit/util/metric_spec.rb +1 -0
  689. data/spec/unit/util/monkey_patches_spec.rb +9 -7
  690. data/spec/unit/util/multi_match_spec.rb +1 -0
  691. data/spec/unit/util/network_device/config_spec.rb +1 -0
  692. data/spec/unit/util/network_device/transport/base_spec.rb +6 -5
  693. data/spec/unit/util/network_device_spec.rb +9 -7
  694. data/spec/unit/util/package_spec.rb +1 -0
  695. data/spec/unit/util/pidlock_spec.rb +15 -60
  696. data/spec/unit/util/plist_spec.rb +33 -40
  697. data/spec/unit/util/posix_spec.rb +51 -54
  698. data/spec/unit/util/rdoc_spec.rb +10 -9
  699. data/spec/unit/util/reference_spec.rb +1 -0
  700. data/spec/unit/util/resource_template_spec.rb +20 -20
  701. data/spec/unit/util/retry_action_spec.rb +8 -7
  702. data/spec/unit/util/rubygems_spec.rb +8 -7
  703. data/spec/unit/util/run_mode_spec.rb +4 -3
  704. data/spec/unit/util/selinux_spec.rb +72 -79
  705. data/spec/unit/util/splayer_spec.rb +9 -8
  706. data/spec/unit/util/ssl_spec.rb +1 -0
  707. data/spec/unit/util/storage_spec.rb +23 -22
  708. data/spec/unit/util/suidmanager_spec.rb +54 -45
  709. data/spec/unit/util/symbolic_file_mode_spec.rb +1 -0
  710. data/spec/unit/util/tag_set_spec.rb +1 -0
  711. data/spec/unit/util/tagging_spec.rb +1 -0
  712. data/spec/unit/util/terminal_spec.rb +10 -9
  713. data/spec/unit/util/user_attr_spec.rb +2 -1
  714. data/spec/unit/util/warnings_spec.rb +4 -3
  715. data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
  716. data/spec/unit/util/watcher_spec.rb +21 -51
  717. data/spec/unit/util/windows/access_control_entry_spec.rb +1 -0
  718. data/spec/unit/util/windows/access_control_list_spec.rb +1 -0
  719. data/spec/unit/util/windows/adsi_spec.rb +138 -136
  720. data/spec/unit/util/windows/api_types_spec.rb +1 -0
  721. data/spec/unit/util/windows/eventlog_spec.rb +12 -9
  722. data/spec/unit/util/windows/file_spec.rb +1 -0
  723. data/spec/unit/util/windows/root_certs_spec.rb +1 -0
  724. data/spec/unit/util/windows/security_descriptor_spec.rb +2 -0
  725. data/spec/unit/util/windows/service_spec.rb +103 -100
  726. data/spec/unit/util/windows/sid_spec.rb +13 -11
  727. data/spec/unit/util/windows/string_spec.rb +1 -0
  728. data/spec/unit/util_spec.rb +57 -55
  729. data/spec/unit/version_spec.rb +6 -6
  730. metadata +20 -32
  731. data/CODEOWNERS +0 -30
  732. data/ext/autotest/Rakefile +0 -8
  733. data/ext/autotest/config +0 -43
  734. data/ext/autotest/readme.rst +0 -16
  735. data/lib/puppet/confine/boolean.rb +0 -45
  736. data/lib/puppet/provider/package_targetable.rb +0 -68
  737. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load2.rb +0 -11
  738. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load3.rb +0 -11
  739. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load4.rb +0 -11
  740. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load5.rb +0 -12
  741. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/good_func_load.rb +0 -9
  742. data/spec/fixtures/unit/provider/package/pkgng/pkg.info +0 -7
  743. data/spec/fixtures/unit/provider/package/pkgng/pkg.query_absent +0 -1
  744. data/spec/integration/network/http_pool_spec.rb +0 -120
  745. data/spec/integration/provider/file/windows_spec.rb +0 -162
  746. data/spec/lib/puppet_spec/https.rb +0 -166
  747. data/spec/unit/settings/server_list_setting_spec.rb +0 -21
  748. data/spec/watchr.rb +0 -137
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
 
3
4
  require 'puppet/network/formats'
@@ -101,14 +102,14 @@ describe "Puppet Network Format" do
101
102
  end
102
103
 
103
104
  it "should render by calling 'to_yaml' on the instance" do
104
- instance = double('instance')
105
- expect(instance).to receive(:to_yaml).and_return("foo")
105
+ instance = mock 'instance'
106
+ instance.expects(:to_yaml).returns "foo"
106
107
  expect(yaml.render(instance)).to eq("foo")
107
108
  end
108
109
 
109
110
  it "should render multiple instances by calling 'to_yaml' on the array" do
110
- instances = [double('instance')]
111
- expect(instances).to receive(:to_yaml).and_return("foo")
111
+ instances = [mock('instance')]
112
+ instances.expects(:to_yaml).returns "foo"
112
113
  expect(yaml.render_multiple(instances)).to eq("foo")
113
114
  end
114
115
 
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
 
3
4
  require 'puppet/network/http'
@@ -5,8 +6,6 @@ require 'puppet/network/http/api/indirected_routes'
5
6
  require 'puppet/indirector_testing'
6
7
  require 'puppet_spec/network'
7
8
 
8
- RSpec::Matchers.define_negated_matcher :excluding, :include
9
-
10
9
  describe Puppet::Network::HTTP::API::IndirectedRoutes do
11
10
  include PuppetSpec::Network
12
11
 
@@ -17,7 +16,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
17
16
  before do
18
17
  Puppet::IndirectorTesting.indirection.terminus_class = :memory
19
18
  Puppet::IndirectorTesting.indirection.terminus.clear
20
- allow(handler).to receive(:warn_if_near_expiration)
19
+ handler.stubs(:warn_if_near_expiration)
21
20
  end
22
21
 
23
22
  describe "when converting a URI into a request" do
@@ -26,7 +25,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
26
25
  let(:params) { { :environment => "env" } }
27
26
 
28
27
  before do
29
- allow(handler).to receive(:handler).and_return("foo")
28
+ handler.stubs(:handler).returns "foo"
30
29
  end
31
30
 
32
31
  around do |example|
@@ -140,22 +139,28 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
140
139
  it "should not unescape the URI passed through in a call to check_authorization" do
141
140
  key_escaped = Puppet::Util.uri_encode("foo bar")
142
141
  uri_escaped = "#{master_url_prefix}/node/#{key_escaped}"
143
- expect(handler).to receive(:check_authorization).with(anything, uri_escaped, anything)
144
- handler.uri2indirection("GET", uri_escaped, params)
142
+ handler.expects(:check_authorization).with(anything, uri_escaped, anything)
143
+ _, _, _, _ = handler.uri2indirection("GET", uri_escaped, params)
145
144
  end
146
145
 
147
146
  it "when the environment is unknown should remove :environment from params passed to check_authorization and therefore fail" do
148
- expect(handler).to receive(:check_authorization).with(anything,
149
- anything,
150
- excluding(:environment))
147
+ handler.expects(:check_authorization).with(anything,
148
+ anything,
149
+ Not(has_key(:environment)))
151
150
  expect(lambda { handler.uri2indirection("GET",
152
151
  "#{master_url_prefix}/node/bar",
153
152
  {:environment => 'bogus'}) }).to raise_error(not_found_error)
154
153
  end
155
154
 
156
155
  it "should not URI unescape the indirection key as passed through to a call to check_authorization" do
157
- expect(handler).to receive(:check_authorization).with(anything, anything, hash_including(environment: be_a(Puppet::Node::Environment).and(have_attributes(name: :env))))
158
-
156
+ handler.expects(:check_authorization).with(anything,
157
+ anything,
158
+ all_of(
159
+ has_entry(:environment,
160
+ is_a(Puppet::Node::Environment)),
161
+ has_entry(:environment,
162
+ responds_with(:name,
163
+ :env))))
159
164
  handler.uri2indirection("GET", "#{master_url_prefix}/node/bar", params)
160
165
  end
161
166
 
@@ -166,7 +171,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
166
171
  let(:request) { Puppet::Indirector::Request.new(:foo, :find, "with spaces", nil, :foo => :bar, :environment => environment) }
167
172
 
168
173
  before do
169
- allow(handler).to receive(:handler).and_return("foo")
174
+ handler.stubs(:handler).returns "foo"
170
175
  end
171
176
 
172
177
  it "should include the environment in the query string of the URI" do
@@ -174,17 +179,17 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
174
179
  end
175
180
 
176
181
  it "should include the correct url prefix if it is a ca request" do
177
- allow(request).to receive(:indirection_name).and_return("certificate")
182
+ request.stubs(:indirection_name).returns("certificate")
178
183
  expect(handler.class.request_to_uri(request)).to eq("#{ca_url_prefix}/certificate/with%20spaces?environment=myenv&foo=bar")
179
184
  end
180
185
 
181
186
  it "should pluralize the indirection name if the method is 'search'" do
182
- allow(request).to receive(:method).and_return(:search)
187
+ request.stubs(:method).returns :search
183
188
  expect(handler.class.request_to_uri(request).split("/")[3]).to eq("foos")
184
189
  end
185
190
 
186
191
  it "should add the query string to the URI" do
187
- expect(request).to receive(:query_string).and_return("query")
192
+ request.expects(:query_string).returns "query"
188
193
  expect(handler.class.request_to_uri(request)).to match(/\&query$/)
189
194
  end
190
195
  end
@@ -207,7 +212,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
207
212
  end
208
213
 
209
214
  it "should include the correct url prefix if it is a ca request" do
210
- allow(request).to receive(:indirection_name).and_return("certificate")
215
+ request.stubs(:indirection_name).returns("certificate")
211
216
  expect(handler.class.request_to_uri_and_body(request).first).to eq("#{ca_url_prefix}/certificate/with%20spaces")
212
217
  end
213
218
 
@@ -222,7 +227,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
222
227
  indirection.save(data, "my data")
223
228
  request = a_request_that_heads(data)
224
229
 
225
- expect(handler).to receive(:check_authorization).and_raise(Puppet::Network::AuthorizationError.new("forbidden"))
230
+ handler.expects(:check_authorization).raises(Puppet::Network::AuthorizationError.new("forbidden"))
226
231
 
227
232
  expect {
228
233
  handler.call(request, response)
@@ -232,7 +237,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
232
237
  it "should raise not_found_error if the indirection does not support remote requests" do
233
238
  request = a_request_that_heads(Puppet::IndirectorTesting.new("my data"))
234
239
 
235
- expect(indirection).to receive(:allow_remote_requests?).and_return(false)
240
+ indirection.expects(:allow_remote_requests?).returns(false)
236
241
 
237
242
  expect {
238
243
  handler.call(request, response)
@@ -266,7 +271,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
266
271
  data = Puppet::IndirectorTesting.new("my data")
267
272
  indirection.save(data, "my data")
268
273
  request = a_request_that_finds(data, :accept_header => "application/json, text/pson")
269
- allow(data).to receive(:to_json).and_raise(Puppet::Network::FormatHandler::FormatError, 'Could not render to Puppet::Network::Format[json]: source sequence is illegal/malformed utf-8')
274
+ data.stubs(:to_json).raises(Puppet::Network::FormatHandler::FormatError, 'Could not render to Puppet::Network::Format[json]: source sequence is illegal/malformed utf-8')
270
275
 
271
276
  handler.call(request, response)
272
277
 
@@ -278,7 +283,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
278
283
  data = Puppet::IndirectorTesting.new("my data")
279
284
  data_string = "my data string"
280
285
  request = a_request_that_finds(data, :accept_header => "application/json")
281
- expect(indirection).to receive(:find).and_return(data_string)
286
+ indirection.expects(:find).returns(data_string)
282
287
 
283
288
  handler.call(request, response)
284
289
 
@@ -312,7 +317,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
312
317
  data = Puppet::IndirectorTesting.new("my data")
313
318
  indirection.save(data, "my data")
314
319
  request = a_request_that_searches(Puppet::IndirectorTesting.new("my"), :accept_header => "application/json, text/pson")
315
- allow(data).to receive(:to_json).and_raise(Puppet::Network::FormatHandler::FormatError, 'Could not render to Puppet::Network::Format[json]: source sequence is illegal/malformed utf-8')
320
+ data.stubs(:to_json).raises(Puppet::Network::FormatHandler::FormatError, 'Could not render to Puppet::Network::Format[json]: source sequence is illegal/malformed utf-8')
316
321
 
317
322
  handler.call(request, response)
318
323
 
@@ -324,8 +329,8 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
324
329
  data = Puppet::IndirectorTesting.new("my data")
325
330
  indirection.save(data, "my data")
326
331
  request = a_request_that_searches(Puppet::IndirectorTesting.new("my"), :accept_header => "application/json, text/pson")
327
- allow(data).to receive(:to_json).and_raise(Puppet::Network::FormatHandler::FormatError, 'Could not render to Puppet::Network::Format[json]: source sequence is illegal/malformed utf-8')
328
- allow(data).to receive(:to_pson).and_raise(Puppet::Network::FormatHandler::FormatError, 'Could not render to Puppet::Network::Format[pson]: source sequence is illegal/malformed utf-8')
332
+ data.stubs(:to_json).raises(Puppet::Network::FormatHandler::FormatError, 'Could not render to Puppet::Network::Format[json]: source sequence is illegal/malformed utf-8')
333
+ data.stubs(:to_pson).raises(Puppet::Network::FormatHandler::FormatError, 'Could not render to Puppet::Network::Format[pson]: source sequence is illegal/malformed utf-8')
329
334
 
330
335
  expect {
331
336
  handler.call(request, response)
@@ -343,7 +348,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
343
348
 
344
349
  it "should raise not_found_error when searching returns nil" do
345
350
  request = a_request_that_searches(Puppet::IndirectorTesting.new("nothing"), :accept_header => "unknown, application/json")
346
- expect(indirection).to receive(:search).and_return(nil)
351
+ indirection.expects(:search).returns(nil)
347
352
 
348
353
  expect {
349
354
  handler.call(request, response)
@@ -17,7 +17,7 @@ describe Puppet::Network::HTTP::API::Master::V3::Authorization do
17
17
  :params => { :authenticated => true, :node => "testing", :ip => "127.0.0.1" }
18
18
  })
19
19
 
20
- allow(authz).to receive(:authconfig).and_return(Puppet::Network::AuthConfigParser.new(<<-AUTH).parse)
20
+ authz.stubs(:authconfig).returns(Puppet::Network::AuthConfigParser.new(<<-AUTH).parse)
21
21
  path /v3/environments
22
22
  method find
23
23
  allow *
@@ -39,7 +39,7 @@ allow *
39
39
  :params => { :authenticated => true, :node => "testing", :ip => "127.0.0.1" }
40
40
  })
41
41
 
42
- allow(authz).to receive(:authconfig).and_return(Puppet::Network::AuthConfigParser.new(<<-AUTH).parse)
42
+ authz.stubs(:authconfig).returns(Puppet::Network::AuthConfigParser.new(<<-AUTH).parse)
43
43
  path /v3/environments
44
44
  method find
45
45
  auth any
@@ -175,7 +175,7 @@ describe Puppet::Network::HTTP::API::Master::V3::Environment do
175
175
  it "uses code_id from the catalog if it differs from the request" do
176
176
  request = Puppet::Network::HTTP::Request.from_hash(:params => {:code_id => '12345'}, :routing_path => "environment/production")
177
177
 
178
- allow_any_instance_of(Puppet::Resource::Catalog).to receive(:code_id).and_return('67890')
178
+ Puppet::Resource::Catalog.any_instance.stubs(:code_id).returns('67890')
179
179
 
180
180
  subject.call(request, response)
181
181
 
@@ -33,11 +33,11 @@ describe Puppet::Network::HTTP::API::Master::V3::Environments do
33
33
  end
34
34
 
35
35
  it "the response conforms to the environments schema for unlimited timeout" do
36
- conf_stub = double('conf_stub')
37
- expect(conf_stub).to receive(:environment_timeout).and_return(Float::INFINITY)
36
+ conf_stub = stub 'conf_stub'
37
+ conf_stub.expects(:environment_timeout).returns(Float::INFINITY)
38
38
  environment = Puppet::Node::Environment.create(:production, [])
39
39
  env_loader = Puppet::Environments::Static.new(environment)
40
- expect(env_loader).to receive(:get_conf).with(:production).and_return(conf_stub)
40
+ env_loader.expects(:get_conf).with(:production).returns(conf_stub)
41
41
  handler = Puppet::Network::HTTP::API::Master::V3::Environments.new(env_loader)
42
42
  response = Puppet::Network::HTTP::MemoryResponse.new
43
43
 
@@ -47,11 +47,11 @@ describe Puppet::Network::HTTP::API::Master::V3::Environments do
47
47
  end
48
48
 
49
49
  it "the response conforms to the environments schema for integer timeout" do
50
- conf_stub = double('conf_stub')
51
- expect(conf_stub).to receive(:environment_timeout).and_return(1)
50
+ conf_stub = stub 'conf_stub'
51
+ conf_stub.expects(:environment_timeout).returns(1)
52
52
  environment = Puppet::Node::Environment.create(:production, [])
53
53
  env_loader = Puppet::Environments::Static.new(environment)
54
- expect(env_loader).to receive(:get_conf).with(:production).and_return(conf_stub)
54
+ env_loader.expects(:get_conf).with(:production).returns(conf_stub)
55
55
  handler = Puppet::Network::HTTP::API::Master::V3::Environments.new(env_loader)
56
56
  response = Puppet::Network::HTTP::MemoryResponse.new
57
57
 
@@ -59,4 +59,5 @@ describe Puppet::Network::HTTP::API::Master::V3::Environments do
59
59
 
60
60
  expect(response.body).to validate_against('api/schemas/environments.json')
61
61
  end
62
+
62
63
  end
@@ -1,3 +1,5 @@
1
+ #! /usr/bin/env ruby
2
+
1
3
  require 'spec_helper'
2
4
  require 'puppet_spec/handler'
3
5
  require 'puppet/network/http'
@@ -1,8 +1,9 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
 
3
4
  describe "http compression" do
4
5
  let(:data) { "uncompresseddata" }
5
- let(:response) { double('response') }
6
+ let(:response) { stub 'response' }
6
7
  let(:compressed_zlib) { Zlib::Deflate.deflate(data) }
7
8
  let(:compressed_gzip) do
8
9
  str = StringIO.new
@@ -13,13 +14,13 @@ describe "http compression" do
13
14
  end
14
15
 
15
16
  def stubs_response_with(response, content_encoding, body)
16
- allow(response).to receive(:[]).with('content-encoding').and_return(content_encoding)
17
- allow(response).to receive(:body).and_return(body)
17
+ response.stubs(:[]).with('content-encoding').returns(content_encoding)
18
+ response.stubs(:body).returns(body)
18
19
  end
19
20
 
20
21
  describe "when zlib is not available" do
21
22
  before(:each) do
22
- allow(Puppet.features).to receive(:zlib?).and_return(false)
23
+ Puppet.features.stubs(:zlib?).returns false
23
24
 
24
25
  require 'puppet/network/http/compression'
25
26
  class HttpUncompressor
@@ -38,12 +39,12 @@ describe "http compression" do
38
39
  end
39
40
 
40
41
  it "should not tamper the body" do
41
- response = double('response', :body => data)
42
+ response = stub 'response', :body => data
42
43
  expect(@uncompressor.uncompress_body(response)).to eq(data)
43
44
  end
44
45
 
45
46
  it "should yield an identity uncompressor" do
46
- response = double('response')
47
+ response = stub 'response'
47
48
  @uncompressor.uncompress(response) { |u|
48
49
  expect(u).to be_instance_of(Puppet::Network::HTTP::Compression::IdentityAdapter)
49
50
  }
@@ -168,19 +169,19 @@ describe "http compression" do
168
169
 
169
170
  it "should close the underlying adapter" do
170
171
  stubs_response_with(response, 'identity', data)
171
- adapter = double('adapter')
172
- expect(Puppet::Network::HTTP::Compression::IdentityAdapter).to receive(:new).and_return(adapter)
172
+ adapter = stub_everything 'adapter'
173
+ Puppet::Network::HTTP::Compression::IdentityAdapter.expects(:new).returns(adapter)
173
174
 
174
- expect(adapter).to receive(:close)
175
+ adapter.expects(:close)
175
176
  uncompressor.uncompress(response) { |u| }
176
177
  end
177
178
 
178
179
  it "should close the underlying adapter if the yielded block raises" do
179
180
  stubs_response_with(response, 'identity', data)
180
- adapter = double('adapter')
181
- expect(Puppet::Network::HTTP::Compression::IdentityAdapter).to receive(:new).and_return(adapter)
181
+ adapter = stub_everything 'adapter'
182
+ Puppet::Network::HTTP::Compression::IdentityAdapter.expects(:new).returns(adapter)
182
183
 
183
- expect(adapter).to receive(:close)
184
+ adapter.expects(:close)
184
185
  expect {
185
186
  uncompressor.uncompress(response) { |u| raise ArgumentError, "whoops" }
186
187
  }.to raise_error(ArgumentError, "whoops")
@@ -189,7 +190,7 @@ describe "http compression" do
189
190
 
190
191
  describe "zlib adapter" do
191
192
  it "should initialize the underlying inflater with gzip/zlib header parsing" do
192
- expect(Zlib::Inflate).to receive(:new).with(15 + 32)
193
+ Zlib::Inflate.expects(:new).with(15+32)
193
194
 
194
195
  Puppet::Network::HTTP::Compression::Active::ZlibAdapter.new
195
196
  end
@@ -202,7 +203,7 @@ describe "http compression" do
202
203
 
203
204
  it "should try a 'regular' inflater on Zlib::DataError" do
204
205
  inflater = Zlib::Inflate.new(15 + 32)
205
- expect(inflater).to receive(:inflate).and_raise(Zlib::DataError.new("not a zlib stream"))
206
+ inflater.expects(:inflate).raises(Zlib::DataError.new("not a zlib stream"))
206
207
  adapter = Puppet::Network::HTTP::Compression::Active::ZlibAdapter.new(inflater)
207
208
 
208
209
  expect(adapter.uncompress(compressed_zlib)).to eq(data)
@@ -210,25 +211,25 @@ describe "http compression" do
210
211
 
211
212
  it "should raise the error the second time" do
212
213
  inflater = Zlib::Inflate.new(15 + 32)
213
- expect(inflater).to receive(:inflate).and_raise(Zlib::DataError.new("not a zlib stream"))
214
+ inflater.expects(:inflate).raises(Zlib::DataError.new("not a zlib stream"))
214
215
  adapter = Puppet::Network::HTTP::Compression::Active::ZlibAdapter.new(inflater)
215
216
 
216
217
  expect { adapter.uncompress("this is not compressed data") }.to raise_error(Zlib::DataError, /incorrect header check/)
217
218
  end
218
219
 
219
220
  it "should finish and close the stream" do
220
- inflater = double('inflater')
221
- expect(inflater).to receive(:finish)
222
- expect(inflater).to receive(:close)
221
+ inflater = stub 'inflater'
222
+ inflater.expects(:finish)
223
+ inflater.expects(:close)
223
224
  adapter = Puppet::Network::HTTP::Compression::Active::ZlibAdapter.new(inflater)
224
225
 
225
226
  adapter.close
226
227
  end
227
228
 
228
229
  it "should close the stream even if finish raises" do
229
- inflater = double('inflater')
230
- expect(inflater).to receive(:finish).and_raise(Zlib::BufError)
231
- expect(inflater).to receive(:close)
230
+ inflater = stub 'inflater'
231
+ inflater.expects(:finish).raises(Zlib::BufError)
232
+ inflater.expects(:close)
232
233
 
233
234
  adapter = Puppet::Network::HTTP::Compression::Active::ZlibAdapter.new(inflater)
234
235
  expect {
@@ -1,9 +1,11 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
  require 'puppet/network/http/connection'
3
4
  require 'puppet_spec/validators'
4
5
  require 'puppet/test_ca'
5
6
 
6
7
  describe Puppet::Network::HTTP::Connection do
8
+
7
9
  let (:host) { "me" }
8
10
  let (:port) { 54321 }
9
11
  subject { Puppet::Network::HTTP::Connection.new(host, port, :verify => Puppet::SSL::Validator.no_validator) }
@@ -62,6 +64,94 @@ describe Puppet::Network::HTTP::Connection do
62
64
  end
63
65
  end
64
66
 
67
+ shared_examples_for 'ssl verifier' do
68
+ include PuppetSpec::Files
69
+
70
+ let (:host) { "my_server" }
71
+ let (:port) { 8140 }
72
+
73
+ before :all do
74
+ WebMock.disable!
75
+ end
76
+
77
+ after :all do
78
+ WebMock.enable!
79
+ end
80
+
81
+ it "should provide a useful error message when one is available and certificate validation fails", :unless => Puppet::Util::Platform.windows? do
82
+ connection = Puppet::Network::HTTP::Connection.new(
83
+ host, port,
84
+ :verify => ConstantErrorValidator.new(:fails_with => 'certificate verify failed',
85
+ :error_string => 'shady looking signature'))
86
+
87
+ expect do
88
+ connection.get('request')
89
+ end.to raise_error(Puppet::Error, "certificate verify failed: [shady looking signature]")
90
+ end
91
+
92
+ it "should provide a helpful error message when hostname was not match with server certificate", :unless => Puppet::Util::Platform.windows? || RUBY_PLATFORM == 'java' do
93
+ Puppet[:confdir] = tmpdir('conf')
94
+
95
+ connection = Puppet::Network::HTTP::Connection.new(
96
+ host, port,
97
+ :verify => ConstantErrorValidator.new(
98
+ :fails_with => 'hostname was not match with server certificate',
99
+ :peer_certs => [Puppet::TestCa.new.generate('not_my_server',
100
+ :subject_alt_names => 'DNS:foo,DNS:bar,DNS:baz,DNS:not_my_server')[:cert]]))
101
+
102
+ expect do
103
+ connection.get('request')
104
+ end.to raise_error(Puppet::Error) do |error|
105
+ error.message =~ /\AServer hostname 'my_server' did not match server certificate; expected one of (.+)/
106
+ expect($1.split(', ')).to match_array(%w[DNS:foo DNS:bar DNS:baz DNS:not_my_server not_my_server])
107
+ end
108
+ end
109
+
110
+ it "should pass along the error message otherwise" do
111
+ connection = Puppet::Network::HTTP::Connection.new(
112
+ host, port,
113
+ :verify => ConstantErrorValidator.new(:fails_with => 'some other message'))
114
+
115
+ expect do
116
+ connection.get('request')
117
+ end.to raise_error(/some other message/)
118
+ end
119
+
120
+ it "should check all peer certificates for upcoming expiration", :unless => Puppet::Util::Platform.windows? || RUBY_PLATFORM == 'java' do
121
+ Puppet[:confdir] = tmpdir('conf')
122
+ cert = Puppet::TestCa.new.generate('server',
123
+ :subject_alt_names => 'DNS:foo,DNS:bar,DNS:baz,DNS:server')[:cert]
124
+
125
+ connection = Puppet::Network::HTTP::Connection.new(
126
+ host, port,
127
+ :verify => NoProblemsValidator.new(cert))
128
+
129
+ Net::HTTP.any_instance.stubs(:start)
130
+ Net::HTTP.any_instance.stubs(:request).returns(httpok)
131
+ Puppet::Network::HTTP::Pool.any_instance.stubs(:setsockopts)
132
+
133
+ connection.get('request')
134
+ end
135
+ end
136
+
137
+ context "when using single use HTTPS connections", :unless => RUBY_PLATFORM == 'java' do
138
+ it_behaves_like 'ssl verifier' do
139
+ end
140
+ end
141
+
142
+ context "when using persistent HTTPS connections", :unless => RUBY_PLATFORM == 'java' do
143
+ around :each do |example|
144
+ pool = Puppet::Network::HTTP::Pool.new
145
+ Puppet.override(:http_pool => pool) do
146
+ example.run
147
+ end
148
+ pool.close
149
+ end
150
+
151
+ it_behaves_like 'ssl verifier' do
152
+ end
153
+ end
154
+
65
155
  context "when response is a redirect" do
66
156
  let (:site) { Puppet::Network::HTTP::Site.new('http', 'my_server', 8140) }
67
157
  let (:other_site) { Puppet::Network::HTTP::Site.new('http', 'redirected', 9292) }
@@ -71,7 +161,7 @@ describe Puppet::Network::HTTP::Connection do
71
161
  let (:httpredirection) do
72
162
  response = Net::HTTPFound.new('1.1', 302, 'Moved Temporarily')
73
163
  response['location'] = "#{other_site.addr}/#{other_path}"
74
- allow(response).to receive(:read_body).and_return("This resource has moved")
164
+ response.stubs(:read_body).returns("This resource has moved")
75
165
  response
76
166
  end
77
167
 
@@ -81,23 +171,24 @@ describe Puppet::Network::HTTP::Connection do
81
171
  end
82
172
 
83
173
  it "should redirect to the final resource location" do
84
- http = double('http')
85
- allow(http).to receive(:request).and_return(httpredirection, httpok)
174
+ http = stub('http')
175
+ http.stubs(:request).returns(httpredirection).then.returns(httpok)
86
176
 
177
+ seq = sequence('redirection')
87
178
  pool = Puppet.lookup(:http_pool)
88
- expect(pool).to receive(:with_connection).with(site, anything).and_yield(http).ordered
89
- expect(pool).to receive(:with_connection).with(other_site, anything).and_yield(http).ordered
179
+ pool.expects(:with_connection).with(site, anything).yields(http).in_sequence(seq)
180
+ pool.expects(:with_connection).with(other_site, anything).yields(http).in_sequence(seq)
90
181
 
91
182
  conn = create_connection(site, :verify => verify)
92
183
  conn.get('/foo')
93
184
  end
94
185
 
95
186
  def expects_redirection(conn, &block)
96
- http = double('http')
97
- allow(http).to receive(:request).and_return(httpredirection)
187
+ http = stub('http')
188
+ http.stubs(:request).returns(httpredirection)
98
189
 
99
190
  pool = Puppet.lookup(:http_pool)
100
- expect(pool).to receive(:with_connection).with(site, anything).and_yield(http)
191
+ pool.expects(:with_connection).with(site, anything).yields(http)
101
192
  pool
102
193
  end
103
194
 
@@ -111,7 +202,7 @@ describe Puppet::Network::HTTP::Connection do
111
202
  conn = create_connection(site, :verify => verify, :redirect_limit => 0)
112
203
 
113
204
  pool = expects_redirection(conn)
114
- expect(pool).not_to receive(:with_connection).with(other_site, anything)
205
+ pool.expects(:with_connection).with(other_site, anything).never
115
206
 
116
207
  expects_limit_exceeded(conn)
117
208
  end
@@ -120,7 +211,7 @@ describe Puppet::Network::HTTP::Connection do
120
211
  conn = create_connection(site, :verify => verify, :redirect_limit => 1)
121
212
 
122
213
  pool = expects_redirection(conn)
123
- expect(pool).to receive(:with_connection).with(other_site, anything).once
214
+ pool.expects(:with_connection).with(other_site, anything).once
124
215
 
125
216
  expects_limit_exceeded(conn)
126
217
  end
@@ -129,14 +220,14 @@ describe Puppet::Network::HTTP::Connection do
129
220
  conn = create_connection(site, :verify => verify, :redirect_limit => 3)
130
221
 
131
222
  pool = expects_redirection(conn)
132
- expect(pool).to receive(:with_connection).with(other_site, anything).exactly(3).times
223
+ pool.expects(:with_connection).with(other_site, anything).times(3)
133
224
 
134
225
  expects_limit_exceeded(conn)
135
226
  end
136
227
  end
137
228
 
138
229
  context "when response indicates an overloaded server" do
139
- let(:http) { double('http') }
230
+ let(:http) { stub('http') }
140
231
  let(:site) { Puppet::Network::HTTP::Site.new('http', 'my_server', 8140) }
141
232
  let(:verify) { Puppet::SSL::Validator.no_validator }
142
233
  let(:httpunavailable) { Net::HTTPServiceUnavailable.new('1.1', 503, 'Service Unavailable') }
@@ -155,10 +246,10 @@ describe Puppet::Network::HTTP::Connection do
155
246
  end
156
247
 
157
248
  it "should return a 503 response if Retry-After is not set" do
158
- allow(http).to receive(:request).and_return(httpunavailable)
249
+ http.stubs(:request).returns(httpunavailable)
159
250
 
160
251
  pool = Puppet.lookup(:http_pool)
161
- expect(pool).to receive(:with_connection).with(site, anything).and_yield(http)
252
+ pool.expects(:with_connection).with(site, anything).yields(http)
162
253
 
163
254
  result = subject.get('/foo')
164
255
 
@@ -167,10 +258,10 @@ describe Puppet::Network::HTTP::Connection do
167
258
 
168
259
  it "should return a 503 response if Retry-After is not convertible to an Integer or RFC 2822 Date" do
169
260
  httpunavailable['Retry-After'] = 'foo'
170
- allow(http).to receive(:request).and_return(httpunavailable)
261
+ http.stubs(:request).returns(httpunavailable)
171
262
 
172
263
  pool = Puppet.lookup(:http_pool)
173
- expect(pool).to receive(:with_connection).with(site, anything).and_yield(http)
264
+ pool.expects(:with_connection).with(site, anything).yields(http)
174
265
 
175
266
  result = subject.get('/foo')
176
267
 
@@ -179,12 +270,12 @@ describe Puppet::Network::HTTP::Connection do
179
270
 
180
271
  it "should sleep and retry if Retry-After is an Integer" do
181
272
  httpunavailable['Retry-After'] = '42'
182
- allow(http).to receive(:request).and_return(httpunavailable, httpok)
273
+ http.stubs(:request).returns(httpunavailable).then.returns(httpok)
183
274
 
184
275
  pool = Puppet.lookup(:http_pool)
185
- expect(pool).to receive(:with_connection).with(site, anything).twice.and_yield(http)
276
+ pool.expects(:with_connection).with(site, anything).twice.yields(http)
186
277
 
187
- expect(::Kernel).to receive(:sleep).with(42)
278
+ ::Kernel.expects(:sleep).with(42)
188
279
 
189
280
  result = subject.get('/foo')
190
281
 
@@ -193,15 +284,15 @@ describe Puppet::Network::HTTP::Connection do
193
284
 
194
285
  it "should sleep and retry if Retry-After is an RFC 2822 Date" do
195
286
  httpunavailable['Retry-After'] = 'Wed, 13 Apr 2005 15:18:05 GMT'
196
- allow(http).to receive(:request).and_return(httpunavailable, httpok)
287
+ http.stubs(:request).returns(httpunavailable).then.returns(httpok)
197
288
 
198
289
  now = DateTime.new(2005, 4, 13, 8, 17, 5, '-07:00')
199
- allow(DateTime).to receive(:now).and_return(now)
290
+ DateTime.stubs(:now).returns(now)
200
291
 
201
292
  pool = Puppet.lookup(:http_pool)
202
- expect(pool).to receive(:with_connection).with(site, anything).twice.and_yield(http)
293
+ pool.expects(:with_connection).with(site, anything).twice.yields(http)
203
294
 
204
- expect(::Kernel).to receive(:sleep).with(60)
295
+ ::Kernel.expects(:sleep).with(60)
205
296
 
206
297
  result = subject.get('/foo')
207
298
 
@@ -210,13 +301,13 @@ describe Puppet::Network::HTTP::Connection do
210
301
 
211
302
  it "should sleep for no more than the Puppet runinterval" do
212
303
  httpunavailable['Retry-After'] = '60'
213
- allow(http).to receive(:request).and_return(httpunavailable, httpok)
304
+ http.stubs(:request).returns(httpunavailable).then.returns(httpok)
214
305
  Puppet[:runinterval] = 30
215
306
 
216
307
  pool = Puppet.lookup(:http_pool)
217
- expect(pool).to receive(:with_connection).with(site, anything).twice.and_yield(http)
308
+ pool.expects(:with_connection).with(site, anything).twice.yields(http)
218
309
 
219
- expect(::Kernel).to receive(:sleep).with(30)
310
+ ::Kernel.expects(:sleep).with(30)
220
311
 
221
312
  subject.get('/foo')
222
313
  end
@@ -253,17 +344,17 @@ describe Puppet::Network::HTTP::Connection do
253
344
  end
254
345
 
255
346
  def expect_request_with_basic_auth
256
- expect_any_instance_of(Net::HTTP).to receive(:request) do |_, request|
347
+ Net::HTTP.any_instance.expects(:request).with do |request|
257
348
  expect(request['authorization']).to match(/^Basic/)
258
- end.and_return(httpok)
349
+ end.returns(httpok)
259
350
  end
260
351
 
261
352
  it "sets HTTP User-Agent header" do
262
353
  puppet_ua = "Puppet/#{Puppet.version} Ruby/#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL} (#{RUBY_PLATFORM})"
263
354
 
264
- expect_any_instance_of(Net::HTTP).to receive(:request) do |_, request|
355
+ Net::HTTP.any_instance.expects(:request).with do |request|
265
356
  expect(request['User-Agent']).to eq(puppet_ua)
266
- end.and_return(httpok)
357
+ end.returns(httpok)
267
358
 
268
359
  subject.get('/path')
269
360
  end