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/ssl/certificate'
@@ -14,23 +15,23 @@ describe Puppet::SSL::Certificate do
14
15
 
15
16
  describe "when creating new instances" do
16
17
  it "should fail if given an object that is not an instance of the wrapped class" do
17
- obj = double('obj', :is_a? => false)
18
+ obj = stub 'obj', :is_a? => false
18
19
  expect { @class.from_instance(obj) }.to raise_error(ArgumentError)
19
20
  end
20
21
 
21
22
  it "should fail if a name is not supplied and can't be determined from the object" do
22
- obj = double('obj', :is_a? => true)
23
+ obj = stub 'obj', :is_a? => true
23
24
  expect { @class.from_instance(obj) }.to raise_error(ArgumentError)
24
25
  end
25
26
 
26
27
  it "should determine the name from the object if it has a subject" do
27
- obj = double('obj', :is_a? => true, :subject => '/CN=foo')
28
+ obj = stub 'obj', :is_a? => true, :subject => '/CN=foo'
28
29
 
29
- inst = double('base')
30
- expect(inst).to receive(:content=).with(obj)
30
+ inst = stub 'base'
31
+ inst.expects(:content=).with(obj)
31
32
 
32
- expect(@class).to receive(:new).with('foo').and_return(inst)
33
- expect(@class).to receive(:name_from_subject).with('/CN=foo').and_return('foo')
33
+ @class.expects(:new).with('foo').returns inst
34
+ @class.expects(:name_from_subject).with('/CN=foo').returns('foo')
34
35
 
35
36
  expect(@class.from_instance(obj)).to eq(inst)
36
37
  end
@@ -38,8 +39,8 @@ describe Puppet::SSL::Certificate do
38
39
 
39
40
  describe "when determining a name from a certificate subject" do
40
41
  it "should extract only the CN and not any other components" do
41
- subject = double('sub')
42
- expect(Puppet::Util::SSL).to receive(:cn_from_subject).with(subject).and_return('host.domain.com')
42
+ subject = stub 'sub'
43
+ Puppet::Util::SSL.expects(:cn_from_subject).with(subject).returns 'host.domain.com'
43
44
  expect(@class.name_from_subject(subject)).to eq('host.domain.com')
44
45
  end
45
46
  end
@@ -47,14 +48,14 @@ describe Puppet::SSL::Certificate do
47
48
  describe "when initializing wrapped class from a file with #read" do
48
49
  it "should open the file with ASCII encoding" do
49
50
  path = '/foo/bar/cert'
50
- allow(Puppet::SSL::Base).to receive(:valid_certname).and_return(true)
51
- expect(Puppet::FileSystem).to receive(:read).with(path, :encoding => Encoding::ASCII).and_return("bar")
51
+ Puppet::SSL::Base.stubs(:valid_certname).returns(true)
52
+ Puppet::FileSystem.expects(:read).with(path, :encoding => Encoding::ASCII).returns("bar")
52
53
  @base.read(path)
53
54
  end
54
55
  end
55
56
 
56
57
  describe "#digest_algorithm" do
57
- let(:content) { double('content') }
58
+ let(:content) { stub 'content' }
58
59
  let(:base) {
59
60
  b = Puppet::SSL::Base.new('base')
60
61
  b.content = content
@@ -78,13 +79,13 @@ describe Puppet::SSL::Certificate do
78
79
  'dsaWithSHA1' => 'sha1',
79
80
  }.each do |signature, digest|
80
81
  it "returns '#{digest}' for signature algorithm '#{signature}'" do
81
- allow(content).to receive(:signature_algorithm).and_return(signature)
82
+ content.stubs(:signature_algorithm).returns(signature)
82
83
  expect(base.digest_algorithm).to eq(digest)
83
84
  end
84
85
  end
85
86
 
86
87
  it "raises an error on an unknown signature algorithm" do
87
- allow(content).to receive(:signature_algorithm).and_return("nonsense")
88
+ content.stubs(:signature_algorithm).returns("nonsense")
88
89
  expect {
89
90
  base.digest_algorithm
90
91
  }.to raise_error(Puppet::Error, "Unknown signature algorithm 'nonsense'")
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
 
3
4
  require 'puppet/ssl/certificate_request'
@@ -11,6 +12,7 @@ describe Puppet::SSL::CertificateRequest do
11
12
  k
12
13
  }
13
14
 
15
+
14
16
  it "should be extended with the Indirector module" do
15
17
  expect(described_class.singleton_class).to be_include(Puppet::Indirector)
16
18
  end
@@ -29,15 +31,15 @@ describe Puppet::SSL::CertificateRequest do
29
31
 
30
32
  describe "when converting from a string" do
31
33
  it "should create a CSR instance with its name set to the CSR subject and its content set to the extracted CSR" do
32
- csr = double('csr',
34
+ csr = stub 'csr',
33
35
  :subject => OpenSSL::X509::Name.parse("/CN=Foo.madstop.com"),
34
- :is_a? => true)
35
- expect(OpenSSL::X509::Request).to receive(:new).with("my csr").and_return(csr)
36
+ :is_a? => true
37
+ OpenSSL::X509::Request.expects(:new).with("my csr").returns(csr)
36
38
 
37
- mycsr = double('sslcsr')
38
- expect(mycsr).to receive(:content=).with(csr)
39
+ mycsr = stub 'sslcsr'
40
+ mycsr.expects(:content=).with(csr)
39
41
 
40
- expect(described_class).to receive(:new).with("Foo.madstop.com").and_return(mycsr)
42
+ described_class.expects(:new).with("Foo.madstop.com").returns mycsr
41
43
 
42
44
  described_class.from_s("my csr")
43
45
  end
@@ -58,9 +60,9 @@ describe Puppet::SSL::CertificateRequest do
58
60
 
59
61
  it "should be able to read requests from disk" do
60
62
  path = "/my/path"
61
- expect(Puppet::FileSystem).to receive(:read).with(path, :encoding => Encoding::ASCII).and_return("my request")
62
- my_req = double('request')
63
- expect(OpenSSL::X509::Request).to receive(:new).with("my request").and_return(my_req)
63
+ Puppet::FileSystem.expects(:read).with(path, :encoding => Encoding::ASCII).returns("my request")
64
+ my_req = mock 'request'
65
+ OpenSSL::X509::Request.expects(:new).with("my request").returns(my_req)
64
66
  expect(request.read(path)).to equal(my_req)
65
67
  expect(request.content).to equal(my_req)
66
68
  end
@@ -75,8 +77,8 @@ describe Puppet::SSL::CertificateRequest do
75
77
  end
76
78
 
77
79
  it "should have a :to_text method that it delegates to the actual key" do
78
- real_request = double('request')
79
- expect(real_request).to receive(:to_text).and_return("requesttext")
80
+ real_request = mock 'request'
81
+ real_request.expects(:to_text).returns "requesttext"
80
82
  request.content = real_request
81
83
  expect(request.to_text).to eq("requesttext")
82
84
  end
@@ -300,26 +302,26 @@ describe Puppet::SSL::CertificateRequest do
300
302
 
301
303
  it "should verify the generated request using the public key" do
302
304
  # Stupid keys don't have a competent == method.
303
- expect_any_instance_of(OpenSSL::X509::Request).to receive(:verify) do |public_key|
305
+ OpenSSL::X509::Request.any_instance.expects(:verify).with { |public_key|
304
306
  public_key.to_s == key.content.public_key.to_s
305
- end.and_return(true)
307
+ }.returns true
306
308
  request.generate(key)
307
309
  end
308
310
 
309
311
  it "should fail if verification fails" do
310
- expect_any_instance_of(OpenSSL::X509::Request).to receive(:verify) do |public_key|
312
+ OpenSSL::X509::Request.any_instance.expects(:verify).with { |public_key|
311
313
  public_key.to_s == key.content.public_key.to_s
312
- end.and_return(false)
314
+ }.returns false
313
315
 
314
- expect do
316
+ expect {
315
317
  request.generate(key)
316
- end.to raise_error(Puppet::Error, /CSR sign verification failed/)
318
+ }.to raise_error(Puppet::Error, /CSR sign verification failed/)
317
319
  end
318
320
 
319
321
  it "should log the fingerprint" do
320
- allow_any_instance_of(Puppet::SSL::Digest).to receive(:to_hex).and_return("FINGERPRINT")
321
- allow(Puppet).to receive(:info)
322
- expect(Puppet).to receive(:info).with(/FINGERPRINT/)
322
+ Puppet::SSL::Digest.any_instance.stubs(:to_hex).returns("FINGERPRINT")
323
+ Puppet.stubs(:info)
324
+ Puppet.expects(:info).with { |s| s =~ /FINGERPRINT/ }
323
325
  request.generate(key)
324
326
  end
325
327
 
@@ -331,8 +333,8 @@ describe Puppet::SSL::CertificateRequest do
331
333
 
332
334
  it "should use SHA1 to sign the csr when SHA256 isn't available" do
333
335
  csr = OpenSSL::X509::Request.new
334
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
335
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(true)
336
+ OpenSSL::Digest.expects(:const_defined?).with("SHA256").returns(false)
337
+ OpenSSL::Digest.expects(:const_defined?).with("SHA1").returns(true)
336
338
  signer = Puppet::SSL::CertificateSigner.new
337
339
  signer.sign(csr, key.content)
338
340
  expect(csr.verify(key.content)).to be_truthy
@@ -342,49 +344,46 @@ describe Puppet::SSL::CertificateRequest do
342
344
  # So commenting it out till it is sorted out
343
345
  # The problem seems to be with the ability to sign a CSR when using either of
344
346
  # these hash algorithms
345
- pending "should use SHA512 to sign the csr when SHA256 and SHA1 aren't available" do
346
- csr = OpenSSL::X509::Request.new
347
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
348
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(false)
349
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA512").and_return(true)
350
- signer = Puppet::SSL::CertificateSigner.new
351
- signer.sign(csr, key.content)
352
- expect(csr.verify(key.content)).to be_truthy
353
- end
354
347
 
355
- # Attempts to use SHA512 and SHA384 for signing certificates don't seem to work
356
- # So commenting it out till it is sorted out
357
- # The problem seems to be with the ability to sign a CSR when using either of
358
- # these hash algorithms
359
- pending "should use SHA384 to sign the csr when SHA256/SHA1/SHA512 aren't available" do
360
- csr = OpenSSL::X509::Request.new
361
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
362
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(false)
363
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA512").and_return(false)
364
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA384").and_return(true)
365
- signer = Puppet::SSL::CertificateSigner.new
366
- signer.sign(csr, key.content)
367
- expect(csr.verify(key.content)).to be_truthy
368
- end
348
+ # it "should use SHA512 to sign the csr when SHA256 and SHA1 aren't available" do
349
+ # csr = OpenSSL::X509::Request.new
350
+ # OpenSSL::Digest.expects(:const_defined?).with("SHA256").returns(false)
351
+ # OpenSSL::Digest.expects(:const_defined?).with("SHA1").returns(false)
352
+ # OpenSSL::Digest.expects(:const_defined?).with("SHA512").returns(true)
353
+ # signer = Puppet::SSL::CertificateSigner.new
354
+ # signer.sign(csr, key.content)
355
+ # expect(csr.verify(key.content)).to be_truthy
356
+ # end
357
+
358
+ # it "should use SHA384 to sign the csr when SHA256/SHA1/SHA512 aren't available" do
359
+ # csr = OpenSSL::X509::Request.new
360
+ # OpenSSL::Digest.expects(:const_defined?).with("SHA256").returns(false)
361
+ # OpenSSL::Digest.expects(:const_defined?).with("SHA1").returns(false)
362
+ # OpenSSL::Digest.expects(:const_defined?).with("SHA512").returns(false)
363
+ # OpenSSL::Digest.expects(:const_defined?).with("SHA384").returns(true)
364
+ # signer = Puppet::SSL::CertificateSigner.new
365
+ # signer.sign(csr, key.content)
366
+ # expect(csr.verify(key.content)).to be_truthy
367
+ # end
369
368
 
370
369
  it "should use SHA224 to sign the csr when SHA256/SHA1/SHA512/SHA384 aren't available" do
371
370
  csr = OpenSSL::X509::Request.new
372
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
373
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(false)
374
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA512").and_return(false)
375
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA384").and_return(false)
376
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA224").and_return(true)
371
+ OpenSSL::Digest.expects(:const_defined?).with("SHA256").returns(false)
372
+ OpenSSL::Digest.expects(:const_defined?).with("SHA1").returns(false)
373
+ OpenSSL::Digest.expects(:const_defined?).with("SHA512").returns(false)
374
+ OpenSSL::Digest.expects(:const_defined?).with("SHA384").returns(false)
375
+ OpenSSL::Digest.expects(:const_defined?).with("SHA224").returns(true)
377
376
  signer = Puppet::SSL::CertificateSigner.new
378
377
  signer.sign(csr, key.content)
379
378
  expect(csr.verify(key.content)).to be_truthy
380
379
  end
381
380
 
382
381
  it "should raise an error if neither SHA256/SHA1/SHA512/SHA384/SHA224 are available" do
383
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
384
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(false)
385
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA512").and_return(false)
386
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA384").and_return(false)
387
- expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA224").and_return(false)
382
+ OpenSSL::Digest.expects(:const_defined?).with("SHA256").returns(false)
383
+ OpenSSL::Digest.expects(:const_defined?).with("SHA1").returns(false)
384
+ OpenSSL::Digest.expects(:const_defined?).with("SHA512").returns(false)
385
+ OpenSSL::Digest.expects(:const_defined?).with("SHA384").returns(false)
386
+ OpenSSL::Digest.expects(:const_defined?).with("SHA224").returns(false)
388
387
  expect {
389
388
  Puppet::SSL::CertificateSigner.new
390
389
  }.to raise_error(Puppet::Error)
@@ -393,13 +392,10 @@ describe Puppet::SSL::CertificateRequest do
393
392
 
394
393
  it "should save the CSR" do
395
394
  csr = Puppet::SSL::CertificateRequest.new("me")
396
- terminus = double('terminus')
397
- allow(terminus).to receive(:validate)
398
- expect(Puppet::SSL::CertificateRequest.indirection).to receive(:prepare).and_return(terminus)
399
- expect(terminus).to receive(:save) do |request|
400
- expect(request.instance).to eq(csr)
401
- expect(request.key).to eq("me")
402
- end
395
+ terminus = mock 'terminus'
396
+ terminus.stubs(:validate)
397
+ Puppet::SSL::CertificateRequest.indirection.expects(:prepare).returns(terminus)
398
+ terminus.expects(:save).with { |request| request.instance == csr && request.key == "me" }
403
399
  Puppet::SSL::CertificateRequest.indirection.save(csr)
404
400
  end
405
401
  end
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
  require 'puppet/certificate_factory'
3
4
 
@@ -30,26 +31,24 @@ describe Puppet::SSL::Certificate do
30
31
 
31
32
  describe "when converting from a string" do
32
33
  it "should create a certificate instance with its name set to the certificate subject and its content set to the extracted certificate" do
33
- cert = double(
34
- 'certificate',
34
+ cert = stub 'certificate',
35
35
  :subject => OpenSSL::X509::Name.parse("/CN=Foo.madstop.com"),
36
36
  :is_a? => true
37
- )
38
- expect(OpenSSL::X509::Certificate).to receive(:new).with("my certificate").and_return(cert)
37
+ OpenSSL::X509::Certificate.expects(:new).with("my certificate").returns(cert)
39
38
 
40
- mycert = double('sslcert')
41
- expect(mycert).to receive(:content=).with(cert)
39
+ mycert = stub 'sslcert'
40
+ mycert.expects(:content=).with(cert)
42
41
 
43
- expect(@class).to receive(:new).with("Foo.madstop.com").and_return(mycert)
42
+ @class.expects(:new).with("Foo.madstop.com").returns mycert
44
43
 
45
44
  @class.from_s("my certificate")
46
45
  end
47
46
 
48
47
  it "should create multiple certificate instances when asked" do
49
- cert1 = double('cert1')
50
- expect(@class).to receive(:from_s).with("cert1").and_return(cert1)
51
- cert2 = double('cert2')
52
- expect(@class).to receive(:from_s).with("cert2").and_return(cert2)
48
+ cert1 = stub 'cert1'
49
+ @class.expects(:from_s).with("cert1").returns cert1
50
+ cert2 = stub 'cert2'
51
+ @class.expects(:from_s).with("cert2").returns cert2
53
52
 
54
53
  expect(@class.from_multiple_s("cert1\n---\ncert2")).to eq([cert1, cert2])
55
54
  end
@@ -65,15 +64,15 @@ describe Puppet::SSL::Certificate do
65
64
  end
66
65
 
67
66
  it "should convert the certificate to pem format" do
68
- certificate = double('certificate', :to_pem => "pem")
67
+ certificate = mock 'certificate', :to_pem => "pem"
69
68
  @certificate.content = certificate
70
69
  expect(@certificate.to_s).to eq("pem")
71
70
  end
72
71
 
73
72
  it "should be able to convert multiple instances to a string" do
74
73
  cert2 = @class.new("foo")
75
- expect(@certificate).to receive(:to_s).and_return("cert1")
76
- expect(cert2).to receive(:to_s).and_return("cert2")
74
+ @certificate.expects(:to_s).returns "cert1"
75
+ cert2.expects(:to_s).returns "cert2"
77
76
 
78
77
  expect(@class.to_multiple_s([@certificate, cert2])).to eq("cert1\n---\ncert2")
79
78
 
@@ -81,6 +80,7 @@ describe Puppet::SSL::Certificate do
81
80
  end
82
81
 
83
82
  describe "when managing instances" do
83
+
84
84
  def build_cert(opts)
85
85
  key = Puppet::SSL::Key.new('quux')
86
86
  key.generate
@@ -139,35 +139,36 @@ describe Puppet::SSL::Certificate do
139
139
  cert = build_cert(:dns_alt_names => 'foo')
140
140
  expect(cert.custom_extensions).to be_empty
141
141
  end
142
+
142
143
  end
143
144
 
144
145
  it "should return a nil expiration if there is no actual certificate" do
145
- allow(@certificate).to receive(:content).and_return(nil)
146
+ @certificate.stubs(:content).returns nil
146
147
 
147
148
  expect(@certificate.expiration).to be_nil
148
149
  end
149
150
 
150
151
  it "should use the expiration of the certificate as its expiration date" do
151
- cert = double('cert')
152
- allow(@certificate).to receive(:content).and_return(cert)
152
+ cert = stub 'cert'
153
+ @certificate.stubs(:content).returns cert
153
154
 
154
- expect(cert).to receive(:not_after).and_return("sometime")
155
+ cert.expects(:not_after).returns "sometime"
155
156
 
156
157
  expect(@certificate.expiration).to eq("sometime")
157
158
  end
158
159
 
159
160
  it "should be able to read certificates from disk" do
160
161
  path = "/my/path"
161
- expect(Puppet::FileSystem).to receive(:read).with(path, :encoding => Encoding::ASCII).and_return("my certificate")
162
- certificate = double('certificate')
163
- expect(OpenSSL::X509::Certificate).to receive(:new).with("my certificate").and_return(certificate)
162
+ Puppet::FileSystem.expects(:read).with(path, :encoding => Encoding::ASCII).returns("my certificate")
163
+ certificate = mock 'certificate'
164
+ OpenSSL::X509::Certificate.expects(:new).with("my certificate").returns(certificate)
164
165
  expect(@certificate.read(path)).to equal(certificate)
165
166
  expect(@certificate.content).to equal(certificate)
166
167
  end
167
168
 
168
169
  it "should have a :to_text method that it delegates to the actual key" do
169
- real_certificate = double('certificate')
170
- expect(real_certificate).to receive(:to_text).and_return("certificatetext")
170
+ real_certificate = mock 'certificate'
171
+ real_certificate.expects(:to_text).returns "certificatetext"
171
172
  @certificate.content = real_certificate
172
173
  expect(@certificate.to_text).to eq("certificatetext")
173
174
  end
@@ -181,5 +182,6 @@ describe Puppet::SSL::Certificate do
181
182
  expect(exts.find { |ext| ext['oid'] == 'pp_instance_id'}['value']).to eq('i_am_an_id')
182
183
  expect(exts.find { |ext| ext['oid'] == 'pp_image_name'}['value']).to eq('i_am_an_image_name')
183
184
  end
185
+
184
186
  end
185
187
  end
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
 
3
4
  require 'puppet/ssl/digest'
@@ -1,3 +1,4 @@
1
+ #!/usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
  require 'puppet/test_ca'
3
4
 
@@ -36,19 +37,19 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
36
37
  end
37
38
 
38
39
  it "should retrieve its public key from its private key" do
39
- realkey = double('realkey')
40
- key = double('key', :content => realkey)
41
- allow(Puppet::SSL::Key.indirection).to receive(:find).and_return(key)
42
- pubkey = double('public_key')
43
- expect(realkey).to receive(:public_key).and_return(pubkey)
40
+ realkey = mock 'realkey'
41
+ key = stub 'key', :content => realkey
42
+ Puppet::SSL::Key.indirection.stubs(:find).returns(key)
43
+ pubkey = mock 'public_key'
44
+ realkey.expects(:public_key).returns pubkey
44
45
 
45
46
  expect(@host.public_key).to equal(pubkey)
46
47
  end
47
48
 
48
49
  describe 'localhost' do
49
50
  before(:each) do
50
- allow_any_instance_of(Puppet::SSL::Host).to receive(:certificate).and_return(nil)
51
- allow_any_instance_of(Puppet::SSL::Host).to receive(:generate)
51
+ Puppet::SSL::Host.any_instance.stubs(:certificate).returns nil
52
+ Puppet::SSL::Host.any_instance.stubs(:generate)
52
53
  end
53
54
 
54
55
  it "should have a method for producing an instance to manage the local host's keys" do
@@ -62,40 +63,40 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
62
63
  end
63
64
 
64
65
  it "should generate the certificate for the localhost instance if no certificate is available" do
65
- host = double('host', :key => nil)
66
- expect(Puppet::SSL::Host).to receive(:new).and_return(host)
66
+ host = stub 'host', :key => nil
67
+ Puppet::SSL::Host.expects(:new).returns host
67
68
 
68
- expect(host).to receive(:certificate).and_return(nil)
69
- expect(host).to receive(:generate)
69
+ host.expects(:certificate).returns nil
70
+ host.expects(:generate)
70
71
 
71
72
  expect(Puppet::SSL::Host.localhost).to equal(host)
72
73
  end
73
74
 
74
75
  it "should always read the key for the localhost instance in from disk" do
75
- host = double('host', :certificate => "eh")
76
- expect(host).to receive(:key)
77
- expect(Puppet::SSL::Host).to receive(:new).and_return(host)
76
+ host = stub 'host', :certificate => "eh"
77
+ host.expects(:key)
78
+ Puppet::SSL::Host.expects(:new).returns host
78
79
 
79
80
  Puppet::SSL::Host.localhost
80
81
  end
81
82
 
82
83
  it "should cache the localhost instance" do
83
- host = double('host', :certificate => "eh", :key => 'foo')
84
- expect(Puppet::SSL::Host).to receive(:new).once.and_return(host)
84
+ host = stub 'host', :certificate => "eh", :key => 'foo'
85
+ Puppet::SSL::Host.expects(:new).once.returns host
85
86
  expect(Puppet::SSL::Host.localhost).to eq(Puppet::SSL::Host.localhost)
86
87
  end
87
88
  end
88
89
 
89
90
  context "with dns_alt_names" do
90
91
  before :each do
91
- @key = double('key content')
92
- key = double('key', :generate => true, :content => @key)
93
- allow(Puppet::SSL::Key).to receive(:new).and_return(key)
94
- allow(Puppet::SSL::Key.indirection).to receive(:save).with(key)
92
+ @key = stub('key content')
93
+ key = stub('key', :generate => true, :content => @key)
94
+ Puppet::SSL::Key.stubs(:new).returns key
95
+ Puppet::SSL::Key.indirection.stubs(:save).with(key)
95
96
 
96
- @cr = double('certificate request', :render => "csr pem")
97
- allow(Puppet::SSL::CertificateRequest).to receive(:new).and_return(@cr)
98
- allow_any_instance_of(Puppet::SSL::Host).to receive(:submit_certificate_request)
97
+ @cr = stub('certificate request', :render => "csr pem")
98
+ Puppet::SSL::CertificateRequest.stubs(:new).returns @cr
99
+ Puppet::SSL::Host.any_instance.stubs(:submit_certificate_request)
99
100
  end
100
101
 
101
102
  describe "explicitly specified" do
@@ -104,13 +105,13 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
104
105
  end
105
106
 
106
107
  it "should not include subjectAltName if not the local node" do
107
- expect(@cr).to receive(:generate).with(@key, {})
108
+ @cr.expects(:generate).with(@key, {})
108
109
 
109
110
  Puppet::SSL::Host.new('not-the-' + Puppet[:certname]).generate_certificate_request
110
111
  end
111
112
 
112
113
  it "should include subjectAltName if the local node" do
113
- expect(@cr).to receive(:generate).with(@key, { :dns_alt_names => 'one, two' })
114
+ @cr.expects(:generate).with(@key, { :dns_alt_names => 'one, two' })
114
115
 
115
116
  Puppet::SSL::Host.new(Puppet[:certname]).generate_certificate_request
116
117
  end
@@ -123,55 +124,55 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
123
124
 
124
125
  it "should consider the certificate invalid if it cannot find a key" do
125
126
  host = Puppet::SSL::Host.new("foo")
126
- certificate = double('cert', :fingerprint => 'DEADBEEF')
127
- expect(host).to receive(:key).and_return(nil)
127
+ certificate = mock('cert', :fingerprint => 'DEADBEEF')
128
+ host.expects(:key).returns nil
128
129
  expect { host.validate_certificate_with_key(certificate) }.to raise_error(Puppet::Error, "No private key with which to validate certificate with fingerprint: DEADBEEF")
129
130
  end
130
131
 
131
132
  it "should consider the certificate invalid if it cannot find a certificate" do
132
133
  host = Puppet::SSL::Host.new("foo")
133
- expect(host).not_to receive(:key)
134
+ host.expects(:key).never
134
135
  expect { host.validate_certificate_with_key(nil) }.to raise_error(Puppet::Error, "No certificate to validate.")
135
136
  end
136
137
 
137
138
  it "should consider the certificate invalid if the SSL certificate's key verification fails" do
138
139
  host = Puppet::SSL::Host.new("foo")
139
- key = double('key', :content => "private_key")
140
- sslcert = double('sslcert')
141
- certificate = double('cert', {:content => sslcert, :fingerprint => 'DEADBEEF'})
142
- allow(host).to receive(:key).and_return(key)
143
- expect(sslcert).to receive(:check_private_key).with("private_key").and_return(false)
140
+ key = mock 'key', :content => "private_key"
141
+ sslcert = mock 'sslcert'
142
+ certificate = mock 'cert', {:content => sslcert, :fingerprint => 'DEADBEEF'}
143
+ host.stubs(:key).returns key
144
+ sslcert.expects(:check_private_key).with("private_key").returns false
144
145
  expect { host.validate_certificate_with_key(certificate) }.to raise_error(Puppet::Error, /DEADBEEF/)
145
146
  end
146
147
 
147
148
  it "should consider the certificate valid if the SSL certificate's key verification succeeds" do
148
149
  host = Puppet::SSL::Host.new("foo")
149
- key = double('key', :content => "private_key")
150
- sslcert = double('sslcert')
151
- certificate = double('cert', :content => sslcert)
152
- allow(host).to receive(:key).and_return(key)
153
- expect(sslcert).to receive(:check_private_key).with("private_key").and_return(true)
150
+ key = mock 'key', :content => "private_key"
151
+ sslcert = mock 'sslcert'
152
+ certificate = mock 'cert', :content => sslcert
153
+ host.stubs(:key).returns key
154
+ sslcert.expects(:check_private_key).with("private_key").returns true
154
155
  expect{ host.validate_certificate_with_key(certificate) }.not_to raise_error
155
156
  end
156
157
 
157
158
  it "should output agent-specific commands when validation fails" do
158
159
  host = Puppet::SSL::Host.new("foo")
159
- key = double('key', :content => "private_key")
160
- sslcert = double('sslcert')
161
- certificate = double('cert', {:content => sslcert, :fingerprint => 'DEADBEEF'})
162
- allow(host).to receive(:key).and_return(key)
163
- expect(sslcert).to receive(:check_private_key).with("private_key").and_return(false)
160
+ key = mock 'key', :content => "private_key"
161
+ sslcert = mock 'sslcert'
162
+ certificate = mock 'cert', {:content => sslcert, :fingerprint => 'DEADBEEF'}
163
+ host.stubs(:key).returns key
164
+ sslcert.expects(:check_private_key).with("private_key").returns false
164
165
  expect { host.validate_certificate_with_key(certificate) }.to raise_error(Puppet::Error, /puppet ssl clean \n/)
165
166
  end
166
167
 
167
168
  it "should output device-specific commands when validation fails" do
168
169
  Puppet[:certname] = "device.example.com"
169
170
  host = Puppet::SSL::Host.new("device.example.com", true)
170
- key = double('key', :content => "private_key")
171
- sslcert = double('sslcert')
172
- certificate = double('cert', {:content => sslcert, :fingerprint => 'DEADBEEF'})
173
- allow(host).to receive(:key).and_return(key)
174
- expect(sslcert).to receive(:check_private_key).with("private_key").and_return(false)
171
+ key = mock 'key', :content => "private_key"
172
+ sslcert = mock 'sslcert'
173
+ certificate = mock 'cert', {:content => sslcert, :fingerprint => 'DEADBEEF'}
174
+ host.stubs(:key).returns key
175
+ sslcert.expects(:check_private_key).with("private_key").returns false
175
176
  expect { host.validate_certificate_with_key(certificate) }.to raise_error(Puppet::Error, /puppet ssl clean --target device.example.com/)
176
177
  end
177
178
 
@@ -195,37 +196,37 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
195
196
  end
196
197
 
197
198
  it "should return nil if the key is not set and cannot be found" do
198
- expect(Puppet::SSL::Key.indirection).to receive(:find).with("myname").and_return(nil)
199
+ Puppet::SSL::Key.indirection.expects(:find).with("myname").returns(nil)
199
200
  expect(@host.key).to be_nil
200
201
  end
201
202
 
202
203
  it "should find the key in the Key class and return the Puppet instance" do
203
- expect(Puppet::SSL::Key.indirection).to receive(:find).with("myname").and_return(@key)
204
+ Puppet::SSL::Key.indirection.expects(:find).with("myname").returns(@key)
204
205
  expect(@host.key).to equal(@key)
205
206
  end
206
207
 
207
208
  it "should be able to generate and save a new key" do
208
- expect(Puppet::SSL::Key).to receive(:new).with("myname").and_return(@key)
209
+ Puppet::SSL::Key.expects(:new).with("myname").returns(@key)
209
210
 
210
- expect(@key).to receive(:generate)
211
- expect(Puppet::SSL::Key.indirection).to receive(:save)
211
+ @key.expects(:generate)
212
+ Puppet::SSL::Key.indirection.expects(:save)
212
213
 
213
214
  expect(@host.generate_key).to be_truthy
214
215
  expect(@host.key).to equal(@key)
215
216
  end
216
217
 
217
218
  it "should not retain keys that could not be saved" do
218
- expect(Puppet::SSL::Key).to receive(:new).with("myname").and_return(@key)
219
+ Puppet::SSL::Key.expects(:new).with("myname").returns(@key)
219
220
 
220
- expect(@key).to receive(:generate)
221
- expect(Puppet::SSL::Key.indirection).to receive(:save).and_raise("eh")
221
+ @key.stubs(:generate)
222
+ Puppet::SSL::Key.indirection.expects(:save).raises "eh"
222
223
 
223
224
  expect { @host.generate_key }.to raise_error(RuntimeError)
224
225
  expect(@host.key).to be_nil
225
226
  end
226
227
 
227
228
  it "should return any previously found key without requerying" do
228
- expect(Puppet::SSL::Key.indirection).to receive(:find).with("myname").and_return(@key).once
229
+ Puppet::SSL::Key.indirection.expects(:find).with("myname").returns(@key).once
229
230
  expect(@host.key).to equal(@key)
230
231
  expect(@host.key).to equal(@key)
231
232
  end
@@ -243,52 +244,52 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
243
244
  let(:key) { Puppet::SSL::Key.from_s(@pki[:leaf_key].to_s, @host.name) }
244
245
 
245
246
  it "should generate a new key when generating the cert request if no key exists" do
246
- expect(@host).to receive(:key).exactly(2).times.and_return(nil, key)
247
- expect(@host).to receive(:generate_key).and_return(key)
247
+ @host.expects(:key).times(2).returns(nil).then.returns(key)
248
+ @host.expects(:generate_key).returns(key)
248
249
 
249
- allow(@host).to receive(:submit_certificate_request)
250
+ @host.stubs(:submit_certificate_request)
250
251
 
251
252
  @host.generate_certificate_request
252
253
  expect(Puppet::FileSystem.exist?(File.join(Puppet[:requestdir], "#{@host.name}.pem"))).to be true
253
254
  end
254
255
 
255
256
  it "should be able to generate and save a new request using the private key" do
256
- allow(@host).to receive(:key).and_return(key)
257
- allow(@host).to receive(:submit_certificate_request)
257
+ @host.stubs(:key).returns(key)
258
+ @host.stubs(:submit_certificate_request)
258
259
 
259
260
  expect(@host.generate_certificate_request).to be_truthy
260
261
  expect(Puppet::FileSystem.exist?(File.join(Puppet[:requestdir], "#{@host.name}.pem"))).to be true
261
262
  end
262
263
 
263
264
  it "should send a new request to the CA for signing" do
264
- @http = double("http")
265
- allow(@host).to receive(:http_client).and_return(@http)
266
- allow(@host).to receive(:ssl_store).and_return(double("ssl store"))
267
- allow(@host).to receive(:key).and_return(key)
268
- request = double("request")
269
- allow(request).to receive(:generate)
270
- expect(request).to receive(:render).and_return("my request").twice
271
- expect(Puppet::SSL::CertificateRequest).to receive(:new).and_return(request)
272
-
273
- expect(Puppet::Rest::Routes).to receive(:put_certificate_request)
265
+ @http = mock("http")
266
+ @host.stubs(:http_client).returns(@http)
267
+ @host.stubs(:ssl_store).returns(mock("ssl store"))
268
+ @host.stubs(:key).returns(key)
269
+ request = mock("request")
270
+ request.stubs(:generate)
271
+ request.expects(:render).returns("my request").twice
272
+ Puppet::SSL::CertificateRequest.expects(:new).returns(request)
273
+
274
+ Puppet::Rest::Routes.expects(:put_certificate_request)
274
275
  .with("my request", @host.name, anything)
275
- .and_return(nil)
276
+ .returns(nil)
276
277
 
277
278
  expect(@host.generate_certificate_request).to be true
278
279
  end
279
280
 
280
281
  it "should return any previously found request without requerying" do
281
- request = double("request")
282
- expect(@host).to receive(:load_certificate_request_from_file).and_return(request).once
282
+ request = mock("request")
283
+ @host.expects(:load_certificate_request_from_file).returns(request).once
283
284
 
284
285
  expect(@host.certificate_request).to equal(request)
285
286
  expect(@host.certificate_request).to equal(request)
286
287
  end
287
288
 
288
289
  it "should not keep its certificate request in memory if the request cannot be saved" do
289
- allow(@host).to receive(:key).and_return(key)
290
- allow(@host).to receive(:submit_certificate_request)
291
- expect(Puppet::Util).to receive(:replace_file).and_raise(RuntimeError)
290
+ @host.stubs(:key).returns(key)
291
+ @host.stubs(:submit_certificate_request)
292
+ Puppet::Util.expects(:replace_file).raises(RuntimeError)
292
293
 
293
294
  expect { @host.generate_certificate_request }.to raise_error(RuntimeError)
294
295
 
@@ -303,57 +304,57 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
303
304
 
304
305
  before(:each) do
305
306
  Puppet[:certdir] = tmpdir('certs')
306
- allow(@host).to receive(:key).and_return(double("key"))
307
- allow(@host).to receive(:validate_certificate_with_key)
308
- allow(@host).to receive(:http_client).and_return(@http)
309
- allow(@host).to receive(:ssl_store).and_return(double("ssl store"))
307
+ @host.stubs(:key).returns mock("key")
308
+ @host.stubs(:validate_certificate_with_key)
309
+ @host.stubs(:http_client).returns(@http)
310
+ @host.stubs(:ssl_store).returns(mock("ssl store"))
310
311
  end
311
312
 
312
313
  let(:ca_cert_response) { @pki[:ca_bundle] }
313
314
  let(:host_cert_response) { @pki[:unrevoked_leaf_node_cert] }
314
315
 
315
316
  it "should find the CA certificate and save it to disk" do
316
- expect(Puppet::Rest::Routes).to receive(:get_certificate)
317
+ Puppet::Rest::Routes.expects(:get_certificate)
317
318
  .with(Puppet::SSL::CA_NAME, anything)
318
- .and_return(ca_cert_response)
319
- expect(Puppet::Rest::Routes).to receive(:get_certificate)
319
+ .returns(ca_cert_response)
320
+ Puppet::Rest::Routes.expects(:get_certificate)
320
321
  .with(@host.name, anything)
321
- .and_raise(Puppet::Rest::ResponseError.new('no client cert',
322
- double('response', code: '404')))
322
+ .raises(Puppet::Rest::ResponseError.new('no client cert',
323
+ mock('response', code: '404')))
323
324
  @host.certificate
324
325
  actual_ca_bundle = Puppet::FileSystem.read(Puppet[:localcacert])
325
326
  expect(actual_ca_bundle).to match(/BEGIN CERTIFICATE.*END CERTIFICATE.*BEGIN CERTIFICATE/m)
326
327
  end
327
328
 
328
329
  it "should return nil if it cannot find a CA certificate" do
329
- expect(@host).to receive(:ensure_ca_certificate).and_return(false)
330
- expect(@host).not_to receive(:get_host_certificate)
330
+ @host.expects(:ensure_ca_certificate).returns(false)
331
+ @host.expects(:get_host_certificate).never
331
332
 
332
333
  expect(@host.certificate).to be_nil
333
334
  end
334
335
 
335
336
  it "should find the key if it does not have one" do
336
- expect(@host).to receive(:ensure_ca_certificate).and_return(true)
337
- expect(@host).to receive(:get_host_certificate).and_return(nil)
338
- expect(@host).to receive(:key).and_return(double("key"))
337
+ @host.expects(:ensure_ca_certificate).returns(true)
338
+ @host.expects(:get_host_certificate).returns(nil)
339
+ @host.expects(:key).returns mock("key")
339
340
  @host.certificate
340
341
  end
341
342
 
342
343
  it "should generate the key if one cannot be found" do
343
- expect(@host).to receive(:ensure_ca_certificate).and_return(true)
344
- expect(@host).to receive(:get_host_certificate).and_return(nil)
345
- expect(@host).to receive(:key).and_return(nil)
346
- expect(@host).to receive(:generate_key)
344
+ @host.expects(:ensure_ca_certificate).returns(true)
345
+ @host.expects(:get_host_certificate).returns(nil)
346
+ @host.expects(:key).returns nil
347
+ @host.expects(:generate_key)
347
348
  @host.certificate
348
349
  end
349
350
 
350
351
  it "should find the host certificate, write it to file, and return the Puppet certificate instance" do
351
- expect(Puppet::Rest::Routes).to receive(:get_certificate)
352
+ Puppet::Rest::Routes.expects(:get_certificate)
352
353
  .with(Puppet::SSL::CA_NAME, anything)
353
- .and_return(ca_cert_response)
354
- expect(Puppet::Rest::Routes).to receive(:get_certificate)
354
+ .returns(ca_cert_response)
355
+ Puppet::Rest::Routes.expects(:get_certificate)
355
356
  .with(@host.name, anything)
356
- .and_return(host_cert_response)
357
+ .returns(host_cert_response)
357
358
  expected_cert = Puppet::SSL::Certificate.from_s(@pki[:unrevoked_leaf_node_cert])
358
359
  actual_cert = @host.certificate
359
360
  expect(actual_cert).to be_a(Puppet::SSL::Certificate)
@@ -363,9 +364,9 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
363
364
  end
364
365
 
365
366
  it "should return any previously found certificate" do
366
- cert = double('cert')
367
- expect(@host).to receive(:ensure_ca_certificate).and_return(true).once
368
- expect(@host).to receive(:get_host_certificate).and_return(cert).once
367
+ cert = mock 'cert'
368
+ @host.expects(:ensure_ca_certificate).returns(true).once
369
+ @host.expects(:get_host_certificate).returns(cert).once
369
370
 
370
371
  expect(@host.certificate).to equal(cert)
371
372
  expect(@host.certificate).to equal(cert)
@@ -373,19 +374,19 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
373
374
 
374
375
  context 'invalid certificates' do
375
376
  it "should raise if the CA certificate downloaded from CA is invalid" do
376
- expect(Puppet::Rest::Routes).to receive(:get_certificate)
377
+ Puppet::Rest::Routes.expects(:get_certificate)
377
378
  .with(Puppet::SSL::CA_NAME, anything)
378
- .and_return('garbage')
379
+ .returns('garbage')
379
380
  expect { @host.certificate }.to raise_error(Puppet::Error, /did not contain a valid CA certificate/)
380
381
  end
381
382
 
382
383
  it "should warn if the host certificate downloaded from CA is invalid" do
383
- expect(Puppet::Rest::Routes).to receive(:get_certificate)
384
+ Puppet::Rest::Routes.expects(:get_certificate)
384
385
  .with(Puppet::SSL::CA_NAME, anything)
385
- .and_return(ca_cert_response)
386
- expect(Puppet::Rest::Routes).to receive(:get_certificate)
386
+ .returns(ca_cert_response)
387
+ Puppet::Rest::Routes.expects(:get_certificate)
387
388
  .with(@host.name, anything)
388
- .and_return('garbage')
389
+ .returns('garbage')
389
390
  expect { @host.certificate }.to raise_error(Puppet::Error, /did not contain a valid certificate for #{@host.name}/)
390
391
  end
391
392
 
@@ -397,9 +398,9 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
397
398
  end
398
399
 
399
400
  it 'should warn if the host certificate loaded from disk in invalid' do
400
- expect(Puppet::Rest::Routes).to receive(:get_certificate)
401
+ Puppet::Rest::Routes.expects(:get_certificate)
401
402
  .with(Puppet::SSL::CA_NAME, anything)
402
- .and_return(ca_cert_response)
403
+ .returns(ca_cert_response)
403
404
  Puppet::FileSystem.open(File.join(Puppet[:certdir], "#{@host.name}.pem"), nil, "w:ASCII") do |f|
404
405
  f.puts 'garbage'
405
406
  end
@@ -415,22 +416,22 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
415
416
  describe "when generating files" do
416
417
  before do
417
418
  @host = Puppet::SSL::Host.new("me")
418
- allow(@host).to receive(:generate_key)
419
- allow(@host).to receive(:generate_certificate_request)
420
- allow(@host).to receive(:certificate_request)
421
- allow(@host).to receive(:certificate)
419
+ @host.stubs(:generate_key)
420
+ @host.stubs(:generate_certificate_request)
421
+ @host.stubs(:certificate_request)
422
+ @host.stubs(:certificate)
422
423
  end
423
424
 
424
425
  it "should generate a key if one is not present" do
425
- allow(@host).to receive(:key).and_return nil
426
- expect(@host).to receive(:generate_key)
426
+ @host.stubs(:key).returns nil
427
+ @host.expects(:generate_key)
427
428
 
428
429
  @host.generate
429
430
  end
430
431
 
431
432
  it "should generate a certificate request if one is not present" do
432
- expect(@host).to receive(:certificate_request).and_return nil
433
- expect(@host).to receive(:generate_certificate_request)
433
+ @host.expects(:certificate_request).returns nil
434
+ @host.expects(:generate_certificate_request)
434
435
 
435
436
  @host.generate
436
437
  end
@@ -446,9 +447,10 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
446
447
  end
447
448
 
448
449
  it "should accept a purpose" do
449
- store = double('store', :add_file => nil)
450
- expect(OpenSSL::X509::Store).to receive(:new).and_return(store)
451
- expect(store).to receive(:purpose=).with(OpenSSL::X509::PURPOSE_SSL_SERVER)
450
+ store = mock 'store'
451
+ store.stub_everything
452
+ OpenSSL::X509::Store.expects(:new).returns store
453
+ store.expects(:purpose=).with(OpenSSL::X509::PURPOSE_SSL_SERVER)
452
454
  host = Puppet::SSL::Host.new("me")
453
455
  host.crl_usage = false
454
456
 
@@ -461,8 +463,8 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
461
463
  @revoked_cert = @pki[:revoked_root_node_cert]
462
464
  localcacert = Puppet.settings[:localcacert]
463
465
  Puppet::Util.replace_file(localcacert, 0644) {|f| f.write @pki[:ca_bundle] }
464
- @http = double('http')
465
- allow(@host).to receive(:http_client).and_return(@http)
466
+ @http = mock 'http'
467
+ @host.stubs(:http_client).returns(@http)
466
468
  end
467
469
 
468
470
  after do
@@ -471,9 +473,9 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
471
473
  end
472
474
 
473
475
  it "retrieves it from the server" do
474
- expect(Puppet::Rest::Routes).to receive(:get_crls)
476
+ Puppet::Rest::Routes.expects(:get_crls)
475
477
  .with(Puppet::SSL::CA_NAME, anything)
476
- .and_return(@pki[:crl_chain])
478
+ .returns(@pki[:crl_chain])
477
479
 
478
480
  @host.ssl_store
479
481
  expect(Puppet::FileSystem.read(Puppet.settings[:hostcrl], :encoding => Encoding::UTF_8)).to eq(@pki[:crl_chain])
@@ -573,73 +575,54 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
573
575
  end
574
576
 
575
577
  it "should generate its certificate request and attempt to read the certificate again if no certificate is found" do
576
- expect(@host).to receive(:certificate).twice.and_return(nil, "foo")
577
- expect(@host).to receive(:generate)
578
+ @host.expects(:certificate).times(2).returns(nil).then.returns "foo"
579
+ @host.expects(:generate)
578
580
  @host.wait_for_cert(1)
579
581
  end
580
582
 
581
583
  it "should catch and log errors during CSR saving" do
582
- expect(@host).to receive(:certificate).twice.and_return(nil, "foo")
583
- times_generate_called = 0
584
- expect(@host).to receive(:generate) do
585
- times_generate_called += 1
586
- raise RuntimeError if times_generate_called == 1
587
- nil
588
- end
589
- allow(@host).to receive(:sleep)
584
+ @host.expects(:certificate).times(2).returns(nil).then.returns "foo"
585
+ @host.expects(:generate).raises(RuntimeError).then.returns nil
586
+ @host.stubs(:sleep)
590
587
  @host.wait_for_cert(1)
591
588
  end
592
589
 
593
590
  it "should sleep and retry after failures saving the CSR if waitforcert is enabled" do
594
- expect(@host).to receive(:certificate).twice.and_return(nil, "foo")
595
- times_generate_called = 0
596
- expect(@host).to receive(:generate) do
597
- times_generate_called += 1
598
- raise RuntimeError if times_generate_called == 1
599
- nil
600
- end
601
- expect(@host).to receive(:sleep).with(1)
591
+ @host.expects(:certificate).times(2).returns(nil).then.returns "foo"
592
+ @host.expects(:generate).raises(RuntimeError).then.returns nil
593
+ @host.expects(:sleep).with(1)
602
594
  @host.wait_for_cert(1)
603
595
  end
604
596
 
605
597
  it "should exit after failures saving the CSR of waitforcert is disabled" do
606
- expect(@host).to receive(:certificate).and_return(nil)
607
- expect(@host).to receive(:generate).and_raise(RuntimeError)
608
- expect(@host).to receive(:puts)
598
+ @host.expects(:certificate).returns(nil)
599
+ @host.expects(:generate).raises(RuntimeError)
600
+ @host.expects(:puts)
609
601
  expect { @host.wait_for_cert(0) }.to exit_with 1
610
602
  end
611
603
 
612
604
  it "should exit if the wait time is 0 and it can neither find nor retrieve a certificate" do
613
- allow(@host).to receive(:certificate).and_return(nil)
614
- expect(@host).to receive(:generate)
615
- expect(@host).to receive(:puts)
605
+ @host.stubs(:certificate).returns nil
606
+ @host.expects(:generate)
607
+ @host.expects(:puts)
616
608
  expect { @host.wait_for_cert(0) }.to exit_with 1
617
609
  end
618
610
 
619
611
  it "should sleep for the specified amount of time if no certificate is found after generating its certificate request" do
620
- expect(@host).to receive(:certificate).exactly(3).times().and_return(nil, nil, "foo")
621
- expect(@host).to receive(:generate)
612
+ @host.expects(:certificate).times(3).returns(nil).then.returns(nil).then.returns "foo"
613
+ @host.expects(:generate)
622
614
 
623
- expect(@host).to receive(:sleep).with(1)
615
+ @host.expects(:sleep).with(1)
624
616
 
625
617
  @host.wait_for_cert(1)
626
618
  end
627
619
 
628
620
  it "should catch and log exceptions during certificate retrieval" do
629
- times_certificate_called = 0
630
- expect(@host).to receive(:certificate) do
631
- times_certificate_called += 1
632
- if times_certificate_called == 1
633
- return nil
634
- elsif times_certificate_called == 2
635
- raise RuntimeError
636
- end
637
- "foo"
638
- end.exactly(3).times()
639
- allow(@host).to receive(:generate)
640
- allow(@host).to receive(:sleep)
621
+ @host.expects(:certificate).times(3).returns(nil).then.raises(RuntimeError).then.returns("foo")
622
+ @host.stubs(:generate)
623
+ @host.stubs(:sleep)
641
624
 
642
- expect(Puppet).to receive(:log_exception).at_least(:once)
625
+ Puppet.expects(:log_exception)
643
626
 
644
627
  @host.wait_for_cert(1)
645
628
  end