puppet 5.5.12 → 5.5.13

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 (733) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -5
  3. data/Gemfile.lock +11 -11
  4. data/lib/puppet/application/filebucket.rb +4 -0
  5. data/lib/puppet/configurer.rb +9 -3
  6. data/lib/puppet/indirector/request.rb +26 -15
  7. data/lib/puppet/indirector/rest.rb +16 -7
  8. data/lib/puppet/network/http/connection.rb +15 -7
  9. data/lib/puppet/transaction/event_manager.rb +1 -5
  10. data/lib/puppet/type/file/source.rb +0 -1
  11. data/lib/puppet/util/http_proxy.rb +3 -2
  12. data/lib/puppet/version.rb +1 -1
  13. data/locales/puppet.pot +108 -36
  14. data/man/man5/puppet.conf.5 +2 -2
  15. data/man/man8/puppet-agent.8 +1 -1
  16. data/man/man8/puppet-apply.8 +1 -1
  17. data/man/man8/puppet-ca.8 +1 -1
  18. data/man/man8/puppet-catalog.8 +1 -1
  19. data/man/man8/puppet-cert.8 +1 -1
  20. data/man/man8/puppet-certificate.8 +1 -1
  21. data/man/man8/puppet-certificate_request.8 +1 -1
  22. data/man/man8/puppet-certificate_revocation_list.8 +1 -1
  23. data/man/man8/puppet-config.8 +1 -1
  24. data/man/man8/puppet-describe.8 +1 -1
  25. data/man/man8/puppet-device.8 +1 -1
  26. data/man/man8/puppet-doc.8 +1 -1
  27. data/man/man8/puppet-epp.8 +1 -1
  28. data/man/man8/puppet-facts.8 +1 -1
  29. data/man/man8/puppet-filebucket.8 +1 -1
  30. data/man/man8/puppet-generate.8 +1 -1
  31. data/man/man8/puppet-help.8 +1 -1
  32. data/man/man8/puppet-key.8 +1 -1
  33. data/man/man8/puppet-lookup.8 +1 -1
  34. data/man/man8/puppet-man.8 +1 -1
  35. data/man/man8/puppet-master.8 +1 -1
  36. data/man/man8/puppet-module.8 +1 -1
  37. data/man/man8/puppet-node.8 +1 -1
  38. data/man/man8/puppet-parser.8 +1 -1
  39. data/man/man8/puppet-plugin.8 +1 -1
  40. data/man/man8/puppet-report.8 +1 -1
  41. data/man/man8/puppet-resource.8 +1 -1
  42. data/man/man8/puppet-script.8 +1 -1
  43. data/man/man8/puppet-status.8 +1 -1
  44. data/man/man8/puppet.8 +2 -2
  45. data/spec/integration/agent/logging_spec.rb +5 -7
  46. data/spec/integration/application/apply_spec.rb +28 -26
  47. data/spec/integration/application/doc_spec.rb +1 -2
  48. data/spec/integration/application/lookup_spec.rb +5 -5
  49. data/spec/integration/configurer_spec.rb +5 -6
  50. data/spec/integration/defaults_spec.rb +5 -6
  51. data/spec/integration/directory_environments_spec.rb +1 -1
  52. data/spec/integration/faces/ca_spec.rb +2 -3
  53. data/spec/integration/faces/config_spec.rb +3 -4
  54. data/spec/integration/faces/documentation_spec.rb +0 -1
  55. data/spec/integration/faces/plugin_spec.rb +1 -1
  56. data/spec/integration/file_bucket/file_spec.rb +3 -5
  57. data/spec/integration/file_serving/content_spec.rb +0 -1
  58. data/spec/integration/file_serving/fileset_spec.rb +0 -1
  59. data/spec/integration/file_serving/metadata_spec.rb +0 -1
  60. data/spec/integration/file_serving/terminus_helper_spec.rb +0 -1
  61. data/spec/integration/indirector/catalog/compiler_spec.rb +10 -11
  62. data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
  63. data/spec/integration/indirector/facts/facter_spec.rb +5 -5
  64. data/spec/integration/indirector/file_content/file_server_spec.rb +7 -8
  65. data/spec/integration/indirector/file_metadata/file_server_spec.rb +7 -8
  66. data/spec/integration/indirector/node/ldap_spec.rb +2 -3
  67. data/spec/integration/network/authconfig_spec.rb +23 -24
  68. data/spec/integration/network/formats_spec.rb +0 -1
  69. data/spec/integration/network/http/api/indirected_routes_spec.rb +0 -1
  70. data/spec/integration/node/environment_spec.rb +0 -1
  71. data/spec/integration/node/facts_spec.rb +9 -10
  72. data/spec/integration/node_spec.rb +6 -7
  73. data/spec/integration/parser/catalog_spec.rb +4 -2
  74. data/spec/integration/parser/collection_spec.rb +1 -2
  75. data/spec/integration/parser/compiler_spec.rb +6 -6
  76. data/spec/integration/parser/scope_spec.rb +1 -1
  77. data/spec/integration/parser/undef_param_spec.rb +1 -1
  78. data/spec/integration/provider/cron/crontab_spec.rb +8 -10
  79. data/spec/integration/provider/mailalias/aliases_spec.rb +0 -1
  80. data/spec/integration/provider/mount_spec.rb +9 -9
  81. data/spec/integration/provider/service/init_spec.rb +4 -5
  82. data/spec/integration/provider/service/systemd_spec.rb +0 -2
  83. data/spec/integration/provider/service/windows_spec.rb +1 -2
  84. data/spec/integration/provider/ssh_authorized_key_spec.rb +6 -8
  85. data/spec/integration/provider/sshkey_spec.rb +6 -12
  86. data/spec/integration/provider/yumrepo_spec.rb +8 -12
  87. data/spec/integration/reference/providers_spec.rb +0 -1
  88. data/spec/integration/reports_spec.rb +1 -2
  89. data/spec/integration/resource/catalog_spec.rb +14 -17
  90. data/spec/integration/resource/type_collection_spec.rb +4 -5
  91. data/spec/integration/ssl/certificate_authority_spec.rb +0 -1
  92. data/spec/integration/ssl/certificate_request_spec.rb +0 -1
  93. data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -1
  94. data/spec/integration/ssl/host_spec.rb +0 -1
  95. data/spec/integration/ssl/key_spec.rb +0 -1
  96. data/spec/integration/test/test_helper_spec.rb +1 -2
  97. data/spec/integration/transaction/report_spec.rb +6 -11
  98. data/spec/integration/transaction_spec.rb +18 -19
  99. data/spec/integration/type/exec_spec.rb +0 -1
  100. data/spec/integration/type/file_spec.rb +13 -14
  101. data/spec/integration/type/nagios_spec.rb +3 -5
  102. data/spec/integration/type/package_spec.rb +19 -23
  103. data/spec/integration/type/tidy_spec.rb +1 -2
  104. data/spec/integration/type/user_spec.rb +0 -1
  105. data/spec/integration/type_spec.rb +0 -1
  106. data/spec/integration/util/autoload_spec.rb +1 -2
  107. data/spec/integration/util/rdoc/parser_spec.rb +0 -1
  108. data/spec/integration/util/settings_spec.rb +0 -1
  109. data/spec/integration/util/windows/adsi_spec.rb +3 -5
  110. data/spec/integration/util/windows/principal_spec.rb +0 -1
  111. data/spec/integration/util/windows/process_spec.rb +4 -6
  112. data/spec/integration/util/windows/registry_spec.rb +41 -51
  113. data/spec/integration/util/windows/security_spec.rb +2 -4
  114. data/spec/integration/util/windows/user_spec.rb +18 -20
  115. data/spec/integration/util_spec.rb +4 -7
  116. data/spec/lib/puppet_spec/compiler.rb +1 -1
  117. data/spec/lib/puppet_spec/files.rb +0 -1
  118. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
  119. data/spec/lib/puppet_spec/scope.rb +1 -2
  120. data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
  121. data/spec/shared_behaviours/file_server_terminus.rb +8 -9
  122. data/spec/shared_behaviours/file_serving.rb +6 -8
  123. data/spec/shared_behaviours/file_serving_model.rb +4 -6
  124. data/spec/shared_behaviours/hiera_indirections.rb +3 -4
  125. data/spec/shared_behaviours/iterative_functions.rb +0 -1
  126. data/spec/shared_behaviours/memory_terminus.rb +2 -2
  127. data/spec/shared_examples/rhel_package_provider.rb +112 -70
  128. data/spec/spec_helper.rb +11 -2
  129. data/spec/unit/agent/disabler_spec.rb +4 -5
  130. data/spec/unit/agent/locker_spec.rb +12 -13
  131. data/spec/unit/agent_spec.rb +80 -85
  132. data/spec/unit/application/agent_spec.rb +88 -93
  133. data/spec/unit/application/apply_spec.rb +78 -79
  134. data/spec/unit/application/cert_spec.rb +42 -49
  135. data/spec/unit/application/certificate_spec.rb +2 -3
  136. data/spec/unit/application/config_spec.rb +0 -1
  137. data/spec/unit/application/describe_spec.rb +6 -7
  138. data/spec/unit/application/device_spec.rb +175 -184
  139. data/spec/unit/application/doc_spec.rb +44 -46
  140. data/spec/unit/application/face_base_spec.rb +61 -62
  141. data/spec/unit/application/facts_spec.rb +3 -4
  142. data/spec/unit/application/filebucket_spec.rb +66 -74
  143. data/spec/unit/application/indirection_base_spec.rb +8 -6
  144. data/spec/unit/application/lookup_spec.rb +26 -26
  145. data/spec/unit/application/master_spec.rb +95 -95
  146. data/spec/unit/application/resource_spec.rb +42 -48
  147. data/spec/unit/application_spec.rb +74 -84
  148. data/spec/unit/capability_spec.rb +9 -6
  149. data/spec/unit/configurer/downloader_spec.rb +20 -21
  150. data/spec/unit/configurer/fact_handler_spec.rb +2 -3
  151. data/spec/unit/configurer/plugin_handler_spec.rb +41 -8
  152. data/spec/unit/configurer_spec.rb +190 -193
  153. data/spec/unit/confine/exists_spec.rb +17 -15
  154. data/spec/unit/confine/false_spec.rb +5 -6
  155. data/spec/unit/confine/feature_spec.rb +7 -5
  156. data/spec/unit/confine/true_spec.rb +5 -6
  157. data/spec/unit/confine/variable_spec.rb +14 -15
  158. data/spec/unit/confine_collection_spec.rb +28 -29
  159. data/spec/unit/confine_spec.rb +13 -14
  160. data/spec/unit/confiner_spec.rb +10 -11
  161. data/spec/unit/context/trusted_information_spec.rb +1 -1
  162. data/spec/unit/daemon_spec.rb +34 -35
  163. data/spec/unit/data_providers/function_data_provider_spec.rb +0 -1
  164. data/spec/unit/data_providers/hiera_data_provider_spec.rb +0 -1
  165. data/spec/unit/datatypes_spec.rb +3 -4
  166. data/spec/unit/defaults_spec.rb +17 -12
  167. data/spec/unit/environments_spec.rb +7 -7
  168. data/spec/unit/etc_spec.rb +30 -32
  169. data/spec/unit/external/pson_spec.rb +0 -1
  170. data/spec/unit/face/ca_spec.rb +0 -1
  171. data/spec/unit/face/catalog_spec.rb +0 -1
  172. data/spec/unit/face/certificate_request_spec.rb +0 -1
  173. data/spec/unit/face/certificate_revocation_list_spec.rb +0 -1
  174. data/spec/unit/face/certificate_spec.rb +7 -10
  175. data/spec/unit/face/config_spec.rb +31 -35
  176. data/spec/unit/face/epp_face_spec.rb +3 -4
  177. data/spec/unit/face/facts_spec.rb +5 -6
  178. data/spec/unit/face/generate_spec.rb +4 -5
  179. data/spec/unit/face/help_spec.rb +7 -8
  180. data/spec/unit/face/key_spec.rb +0 -1
  181. data/spec/unit/face/man_spec.rb +1 -2
  182. data/spec/unit/face/module/build_spec.rb +17 -17
  183. data/spec/unit/face/module/install_spec.rb +3 -5
  184. data/spec/unit/face/module/list_spec.rb +2 -12
  185. data/spec/unit/face/module/search_spec.rb +11 -9
  186. data/spec/unit/face/module/uninstall_spec.rb +4 -8
  187. data/spec/unit/face/node_spec.rb +33 -34
  188. data/spec/unit/face/parser_spec.rb +3 -3
  189. data/spec/unit/face/plugin_spec.rb +36 -9
  190. data/spec/unit/face/status_spec.rb +0 -1
  191. data/spec/unit/file_bucket/dipper_spec.rb +24 -20
  192. data/spec/unit/file_bucket/file_spec.rb +0 -2
  193. data/spec/unit/file_serving/base_spec.rb +16 -17
  194. data/spec/unit/file_serving/configuration/parser_spec.rb +27 -28
  195. data/spec/unit/file_serving/configuration_spec.rb +63 -66
  196. data/spec/unit/file_serving/content_spec.rb +10 -11
  197. data/spec/unit/file_serving/fileset_spec.rb +63 -58
  198. data/spec/unit/file_serving/http_metadata_spec.rb +8 -7
  199. data/spec/unit/file_serving/metadata_spec.rb +36 -36
  200. data/spec/unit/file_serving/mount/file_spec.rb +31 -32
  201. data/spec/unit/file_serving/mount/locales_spec.rb +23 -24
  202. data/spec/unit/file_serving/mount/modules_spec.rb +14 -15
  203. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +23 -24
  204. data/spec/unit/file_serving/mount/plugins_spec.rb +23 -24
  205. data/spec/unit/file_serving/mount/tasks_spec.rb +14 -15
  206. data/spec/unit/file_serving/mount_spec.rb +0 -1
  207. data/spec/unit/file_serving/terminus_helper_spec.rb +37 -42
  208. data/spec/unit/file_serving/terminus_selector_spec.rb +12 -13
  209. data/spec/unit/file_system/uniquefile_spec.rb +4 -4
  210. data/spec/unit/file_system_spec.rb +2 -2
  211. data/spec/unit/forge/errors_spec.rb +1 -1
  212. data/spec/unit/forge/forge_spec.rb +13 -14
  213. data/spec/unit/forge/module_release_spec.rb +18 -18
  214. data/spec/unit/forge/repository_spec.rb +29 -30
  215. data/spec/unit/forge_spec.rb +15 -11
  216. data/spec/unit/functions/binary_file_spec.rb +3 -3
  217. data/spec/unit/functions/contain_spec.rb +0 -2
  218. data/spec/unit/functions/defined_spec.rb +0 -1
  219. data/spec/unit/functions/epp_spec.rb +2 -2
  220. data/spec/unit/functions/find_file_spec.rb +7 -7
  221. data/spec/unit/functions/include_spec.rb +0 -4
  222. data/spec/unit/functions/lookup_fixture_spec.rb +0 -1
  223. data/spec/unit/functions/lookup_spec.rb +1 -2
  224. data/spec/unit/functions/module_directory_spec.rb +12 -12
  225. data/spec/unit/functions/require_spec.rb +0 -3
  226. data/spec/unit/functions/shared.rb +5 -8
  227. data/spec/unit/functions/versioncmp_spec.rb +1 -2
  228. data/spec/unit/functions4_spec.rb +7 -8
  229. data/spec/unit/gettext/config_spec.rb +4 -4
  230. data/spec/unit/gettext/module_loading_spec.rb +7 -7
  231. data/spec/unit/graph/rb_tree_map_spec.rb +0 -2
  232. data/spec/unit/graph/relationship_graph_spec.rb +1 -2
  233. data/spec/unit/graph/simple_graph_spec.rb +8 -9
  234. data/spec/unit/hiera_puppet_spec.rb +20 -20
  235. data/spec/unit/indirector/catalog/compiler_spec.rb +147 -149
  236. data/spec/unit/indirector/catalog/json_spec.rb +1 -2
  237. data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -1
  238. data/spec/unit/indirector/catalog/rest_spec.rb +0 -1
  239. data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -1
  240. data/spec/unit/indirector/catalog/yaml_spec.rb +0 -1
  241. data/spec/unit/indirector/certificate/ca_spec.rb +2 -4
  242. data/spec/unit/indirector/certificate/disabled_ca_spec.rb +1 -2
  243. data/spec/unit/indirector/certificate/file_spec.rb +2 -3
  244. data/spec/unit/indirector/certificate/rest_spec.rb +8 -10
  245. data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -1
  246. data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +1 -2
  247. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -1
  248. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -1
  249. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +1 -2
  250. data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +1 -2
  251. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +1 -2
  252. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +2 -3
  253. data/spec/unit/indirector/certificate_status/file_spec.rb +2 -3
  254. data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -1
  255. data/spec/unit/indirector/code_spec.rb +5 -6
  256. data/spec/unit/indirector/direct_file_server_spec.rb +33 -27
  257. data/spec/unit/indirector/envelope_spec.rb +1 -2
  258. data/spec/unit/indirector/exec_spec.rb +15 -14
  259. data/spec/unit/indirector/face_spec.rb +9 -9
  260. data/spec/unit/indirector/facts/facter_spec.rb +37 -43
  261. data/spec/unit/indirector/facts/network_device_spec.rb +8 -9
  262. data/spec/unit/indirector/facts/rest_spec.rb +7 -8
  263. data/spec/unit/indirector/facts/store_configs_spec.rb +0 -1
  264. data/spec/unit/indirector/facts/yaml_spec.rb +2 -4
  265. data/spec/unit/indirector/file_bucket_file/file_spec.rb +3 -4
  266. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -1
  267. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +4 -5
  268. data/spec/unit/indirector/file_content/file_server_spec.rb +0 -1
  269. data/spec/unit/indirector/file_content/file_spec.rb +0 -1
  270. data/spec/unit/indirector/file_content/rest_spec.rb +0 -1
  271. data/spec/unit/indirector/file_content/selector_spec.rb +0 -1
  272. data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -1
  273. data/spec/unit/indirector/file_metadata/file_spec.rb +12 -13
  274. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -1
  275. data/spec/unit/indirector/file_metadata/selector_spec.rb +0 -1
  276. data/spec/unit/indirector/file_server_spec.rb +99 -93
  277. data/spec/unit/indirector/indirection_spec.rb +242 -226
  278. data/spec/unit/indirector/json_spec.rb +7 -9
  279. data/spec/unit/indirector/key/ca_spec.rb +2 -3
  280. data/spec/unit/indirector/key/disabled_ca_spec.rb +1 -2
  281. data/spec/unit/indirector/key/file_spec.rb +25 -26
  282. data/spec/unit/indirector/ldap_spec.rb +34 -41
  283. data/spec/unit/indirector/memory_spec.rb +6 -7
  284. data/spec/unit/indirector/msgpack_spec.rb +7 -9
  285. data/spec/unit/indirector/node/exec_spec.rb +6 -6
  286. data/spec/unit/indirector/node/ldap_spec.rb +74 -76
  287. data/spec/unit/indirector/node/memory_spec.rb +2 -4
  288. data/spec/unit/indirector/node/msgpack_spec.rb +0 -1
  289. data/spec/unit/indirector/node/plain_spec.rb +2 -4
  290. data/spec/unit/indirector/node/rest_spec.rb +0 -1
  291. data/spec/unit/indirector/node/store_configs_spec.rb +0 -1
  292. data/spec/unit/indirector/node/write_only_yaml_spec.rb +1 -2
  293. data/spec/unit/indirector/node/yaml_spec.rb +0 -1
  294. data/spec/unit/indirector/none_spec.rb +5 -5
  295. data/spec/unit/indirector/plain_spec.rb +7 -8
  296. data/spec/unit/indirector/report/msgpack_spec.rb +0 -1
  297. data/spec/unit/indirector/report/processor_spec.rb +21 -22
  298. data/spec/unit/indirector/report/rest_spec.rb +11 -12
  299. data/spec/unit/indirector/report/yaml_spec.rb +0 -1
  300. data/spec/unit/indirector/request_spec.rb +11 -12
  301. data/spec/unit/indirector/resource/ral_spec.rb +47 -54
  302. data/spec/unit/indirector/resource/store_configs_spec.rb +0 -1
  303. data/spec/unit/indirector/rest_spec.rb +113 -110
  304. data/spec/unit/indirector/ssl_file_spec.rb +74 -77
  305. data/spec/unit/indirector/status/local_spec.rb +0 -1
  306. data/spec/unit/indirector/status/rest_spec.rb +0 -1
  307. data/spec/unit/indirector/store_configs_spec.rb +0 -1
  308. data/spec/unit/indirector/terminus_spec.rb +31 -29
  309. data/spec/unit/indirector/yaml_spec.rb +33 -32
  310. data/spec/unit/indirector_spec.rb +1 -2
  311. data/spec/unit/info_service_spec.rb +3 -1
  312. data/spec/unit/interface/action_builder_spec.rb +0 -1
  313. data/spec/unit/interface/action_manager_spec.rb +0 -1
  314. data/spec/unit/interface/action_spec.rb +2 -3
  315. data/spec/unit/interface/documentation_spec.rb +0 -1
  316. data/spec/unit/interface/face_collection_spec.rb +19 -12
  317. data/spec/unit/interface_spec.rb +3 -3
  318. data/spec/unit/man_spec.rb +3 -4
  319. data/spec/unit/module_spec.rb +46 -51
  320. data/spec/unit/module_tool/applications/builder_spec.rb +5 -5
  321. data/spec/unit/module_tool/applications/installer_spec.rb +10 -11
  322. data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
  323. data/spec/unit/module_tool/applications/uninstaller_spec.rb +1 -2
  324. data/spec/unit/module_tool/applications/unpacker_spec.rb +13 -13
  325. data/spec/unit/module_tool/applications/upgrader_spec.rb +5 -5
  326. data/spec/unit/module_tool/install_directory_spec.rb +8 -8
  327. data/spec/unit/module_tool/installed_modules_spec.rb +3 -3
  328. data/spec/unit/module_tool/tar/gnu_spec.rb +6 -6
  329. data/spec/unit/module_tool/tar/mini_spec.rb +12 -12
  330. data/spec/unit/module_tool/tar_spec.rb +12 -13
  331. data/spec/unit/module_tool_spec.rb +7 -12
  332. data/spec/unit/network/auth_config_parser_spec.rb +11 -13
  333. data/spec/unit/network/authconfig_spec.rb +17 -18
  334. data/spec/unit/network/authorization_spec.rb +4 -5
  335. data/spec/unit/network/authstore_spec.rb +0 -1
  336. data/spec/unit/network/format_handler_spec.rb +0 -1
  337. data/spec/unit/network/format_spec.rb +9 -10
  338. data/spec/unit/network/format_support_spec.rb +28 -29
  339. data/spec/unit/network/formats_spec.rb +4 -5
  340. data/spec/unit/network/http/api/ca/v1_spec.rb +1 -1
  341. data/spec/unit/network/http/api/indirected_routes_spec.rb +22 -29
  342. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +2 -2
  343. data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -1
  344. data/spec/unit/network/http/api/master/v3/environments_spec.rb +6 -7
  345. data/spec/unit/network/http/api_spec.rb +1 -3
  346. data/spec/unit/network/http/compression_spec.rb +21 -22
  347. data/spec/unit/network/http/connection_spec.rb +39 -36
  348. data/spec/unit/network/http/factory_spec.rb +5 -6
  349. data/spec/unit/network/http/handler_spec.rb +9 -18
  350. data/spec/unit/network/http/nocache_pool_spec.rb +6 -7
  351. data/spec/unit/network/http/pool_spec.rb +28 -29
  352. data/spec/unit/network/http/rack/rest_spec.rb +24 -27
  353. data/spec/unit/network/http/rack_spec.rb +5 -6
  354. data/spec/unit/network/http/request_spec.rb +0 -2
  355. data/spec/unit/network/http/response_spec.rb +11 -13
  356. data/spec/unit/network/http/route_spec.rb +0 -1
  357. data/spec/unit/network/http/session_spec.rb +1 -2
  358. data/spec/unit/network/http/site_spec.rb +0 -1
  359. data/spec/unit/network/http/webrick/rest_spec.rb +40 -41
  360. data/spec/unit/network/http/webrick_spec.rb +49 -52
  361. data/spec/unit/network/http_pool_spec.rb +18 -9
  362. data/spec/unit/network/http_spec.rb +0 -1
  363. data/spec/unit/network/resolver_spec.rb +16 -17
  364. data/spec/unit/network/rights_spec.rb +52 -53
  365. data/spec/unit/network/server_spec.rb +12 -13
  366. data/spec/unit/node/environment_spec.rb +16 -14
  367. data/spec/unit/node/facts_spec.rb +5 -7
  368. data/spec/unit/node_spec.rb +4 -10
  369. data/spec/unit/other/selinux_spec.rb +2 -3
  370. data/spec/unit/parameter/boolean_spec.rb +1 -2
  371. data/spec/unit/parameter/package_options_spec.rb +1 -2
  372. data/spec/unit/parameter/path_spec.rb +0 -1
  373. data/spec/unit/parameter/value_collection_spec.rb +0 -1
  374. data/spec/unit/parameter/value_spec.rb +0 -1
  375. data/spec/unit/parameter_spec.rb +9 -9
  376. data/spec/unit/parser/ast/block_expression_spec.rb +6 -8
  377. data/spec/unit/parser/ast/leaf_spec.rb +20 -21
  378. data/spec/unit/parser/compiler_spec.rb +84 -96
  379. data/spec/unit/parser/environment_compiler_spec.rb +11 -9
  380. data/spec/unit/parser/files_spec.rb +0 -1
  381. data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
  382. data/spec/unit/parser/functions/digest_spec.rb +0 -1
  383. data/spec/unit/parser/functions/fail_spec.rb +1 -2
  384. data/spec/unit/parser/functions/file_spec.rb +13 -14
  385. data/spec/unit/parser/functions/fqdn_rand_spec.rb +5 -6
  386. data/spec/unit/parser/functions/generate_spec.rb +7 -8
  387. data/spec/unit/parser/functions/inline_template_spec.rb +0 -1
  388. data/spec/unit/parser/functions/regsubst_spec.rb +0 -1
  389. data/spec/unit/parser/functions/scanf_spec.rb +0 -1
  390. data/spec/unit/parser/functions/shellquote_spec.rb +0 -1
  391. data/spec/unit/parser/functions/split_spec.rb +0 -1
  392. data/spec/unit/parser/functions/sprintf_spec.rb +0 -1
  393. data/spec/unit/parser/functions/tag_spec.rb +1 -2
  394. data/spec/unit/parser/functions/tagged_spec.rb +2 -3
  395. data/spec/unit/parser/functions/template_spec.rb +13 -13
  396. data/spec/unit/parser/functions/versioncmp_spec.rb +1 -2
  397. data/spec/unit/parser/functions_spec.rb +3 -4
  398. data/spec/unit/parser/relationship_spec.rb +0 -1
  399. data/spec/unit/parser/resource_spec.rb +42 -42
  400. data/spec/unit/parser/scope_spec.rb +39 -35
  401. data/spec/unit/parser/templatewrapper_spec.rb +11 -12
  402. data/spec/unit/parser/type_loader_spec.rb +17 -19
  403. data/spec/unit/pops/adaptable_spec.rb +0 -1
  404. data/spec/unit/pops/benchmark_spec.rb +0 -1
  405. data/spec/unit/pops/evaluator/access_ops_spec.rb +0 -1
  406. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +0 -1
  407. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +0 -1
  408. data/spec/unit/pops/evaluator/collections_ops_spec.rb +0 -1
  409. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +0 -1
  410. data/spec/unit/pops/evaluator/conditionals_spec.rb +0 -1
  411. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +6 -6
  412. data/spec/unit/pops/evaluator/logical_ops_spec.rb +0 -1
  413. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -1
  414. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +0 -1
  415. data/spec/unit/pops/evaluator/variables_spec.rb +0 -1
  416. data/spec/unit/pops/factory_spec.rb +3 -4
  417. data/spec/unit/pops/issues_spec.rb +19 -20
  418. data/spec/unit/pops/loaders/loader_spec.rb +8 -4
  419. data/spec/unit/pops/loaders/loaders_spec.rb +30 -27
  420. data/spec/unit/pops/lookup/context_spec.rb +0 -1
  421. data/spec/unit/pops/lookup/interpolation_spec.rb +2 -3
  422. data/spec/unit/pops/merge_strategy_spec.rb +0 -1
  423. data/spec/unit/pops/migration_spec.rb +3 -5
  424. data/spec/unit/pops/model/model_spec.rb +0 -1
  425. data/spec/unit/pops/model/pn_transformer_spec.rb +0 -1
  426. data/spec/unit/pops/parser/locator_spec.rb +3 -6
  427. data/spec/unit/pops/parser/parse_application_spec.rb +0 -1
  428. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  429. data/spec/unit/pops/parser/parse_calls_spec.rb +0 -1
  430. data/spec/unit/pops/parser/parse_capabilities_spec.rb +0 -1
  431. data/spec/unit/pops/parser/parse_conditionals_spec.rb +0 -1
  432. data/spec/unit/pops/parser/parse_containers_spec.rb +0 -1
  433. data/spec/unit/pops/parser/parse_plan_spec.rb +0 -1
  434. data/spec/unit/pops/parser/parse_resource_spec.rb +0 -1
  435. data/spec/unit/pops/parser/parse_site_spec.rb +0 -1
  436. data/spec/unit/pops/parser/pn_parser_spec.rb +0 -1
  437. data/spec/unit/pops/pn_spec.rb +0 -1
  438. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -1
  439. data/spec/unit/pops/serialization/serialization_spec.rb +1 -1
  440. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  441. data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
  442. data/spec/unit/pops/types/ruby_generator_spec.rb +2 -2
  443. data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
  444. data/spec/unit/pops/types/type_calculator_spec.rb +36 -36
  445. data/spec/unit/pops/types/type_parser_spec.rb +13 -13
  446. data/spec/unit/pops/validator/validator_spec.rb +1 -2
  447. data/spec/unit/pops/visitor_spec.rb +0 -1
  448. data/spec/unit/property/boolean_spec.rb +1 -1
  449. data/spec/unit/property/ensure_spec.rb +0 -1
  450. data/spec/unit/property/keyvalue_spec.rb +32 -34
  451. data/spec/unit/property/list_spec.rb +26 -27
  452. data/spec/unit/property/ordered_list_spec.rb +10 -14
  453. data/spec/unit/property_spec.rb +42 -43
  454. data/spec/unit/provider/aix_object_spec.rb +47 -45
  455. data/spec/unit/provider/augeas/augeas_spec.rb +192 -192
  456. data/spec/unit/provider/cisco_spec.rb +1 -2
  457. data/spec/unit/provider/command_spec.rb +9 -9
  458. data/spec/unit/provider/cron/crontab_spec.rb +10 -11
  459. data/spec/unit/provider/cron/parsed_spec.rb +22 -24
  460. data/spec/unit/provider/exec/posix_spec.rb +6 -7
  461. data/spec/unit/provider/exec/shell_spec.rb +0 -1
  462. data/spec/unit/provider/exec/windows_spec.rb +2 -4
  463. data/spec/unit/provider/exec_spec.rb +0 -1
  464. data/spec/unit/provider/file/posix_spec.rb +22 -24
  465. data/spec/unit/provider/file/windows_spec.rb +15 -17
  466. data/spec/unit/provider/group/aix_spec.rb +3 -2
  467. data/spec/unit/provider/group/groupadd_spec.rb +30 -26
  468. data/spec/unit/provider/group/ldap_spec.rb +18 -18
  469. data/spec/unit/provider/group/pw_spec.rb +11 -11
  470. data/spec/unit/provider/group/windows_adsi_spec.rb +54 -54
  471. data/spec/unit/provider/host/parsed_spec.rb +6 -6
  472. data/spec/unit/provider/interface/cisco_spec.rb +20 -24
  473. data/spec/unit/provider/ldap_spec.rb +61 -62
  474. data/spec/unit/provider/macauthorization_spec.rb +26 -47
  475. data/spec/unit/provider/mcx/mcxcontent_spec.rb +45 -47
  476. data/spec/unit/provider/mount/parsed_spec.rb +18 -24
  477. data/spec/unit/provider/mount_spec.rb +57 -66
  478. data/spec/unit/provider/naginator_spec.rb +13 -14
  479. data/spec/unit/provider/nameservice/directoryservice_spec.rb +35 -36
  480. data/spec/unit/provider/nameservice_spec.rb +38 -40
  481. data/spec/unit/provider/network_device_spec.rb +28 -28
  482. data/spec/unit/provider/package/aix_spec.rb +15 -15
  483. data/spec/unit/provider/package/appdmg_spec.rb +13 -13
  484. data/spec/unit/provider/package/apt_spec.rb +44 -27
  485. data/spec/unit/provider/package/aptitude_spec.rb +6 -7
  486. data/spec/unit/provider/package/aptrpm_spec.rb +7 -12
  487. data/spec/unit/provider/package/base_spec.rb +4 -4
  488. data/spec/unit/provider/package/dnf_spec.rb +14 -16
  489. data/spec/unit/provider/package/dpkg_spec.rb +52 -52
  490. data/spec/unit/provider/package/freebsd_spec.rb +11 -11
  491. data/spec/unit/provider/package/gem_spec.rb +51 -43
  492. data/spec/unit/provider/package/hpux_spec.rb +8 -8
  493. data/spec/unit/provider/package/macports_spec.rb +46 -42
  494. data/spec/unit/provider/package/nim_spec.rb +30 -39
  495. data/spec/unit/provider/package/openbsd_spec.rb +36 -39
  496. data/spec/unit/provider/package/opkg_spec.rb +23 -26
  497. data/spec/unit/provider/package/pacman_spec.rb +97 -118
  498. data/spec/unit/provider/package/pip_spec.rb +69 -71
  499. data/spec/unit/provider/package/pkg_spec.rb +109 -109
  500. data/spec/unit/provider/package/pkgdmg_spec.rb +65 -63
  501. data/spec/unit/provider/package/pkgin_spec.rb +10 -8
  502. data/spec/unit/provider/package/pkgng_spec.rb +17 -18
  503. data/spec/unit/provider/package/pkgutil_spec.rb +45 -49
  504. data/spec/unit/provider/package/portage_spec.rb +70 -74
  505. data/spec/unit/provider/package/puppet_gem_spec.rb +28 -8
  506. data/spec/unit/provider/package/rpm_spec.rb +53 -64
  507. data/spec/unit/provider/package/sun_spec.rb +16 -18
  508. data/spec/unit/provider/package/tdnf_spec.rb +2 -2
  509. data/spec/unit/provider/package/up2date_spec.rb +2 -4
  510. data/spec/unit/provider/package/urpmi_spec.rb +15 -17
  511. data/spec/unit/provider/package/windows/exe_package_spec.rb +12 -15
  512. data/spec/unit/provider/package/windows/msi_package_spec.rb +19 -22
  513. data/spec/unit/provider/package/windows/package_spec.rb +37 -42
  514. data/spec/unit/provider/package/windows_spec.rb +36 -32
  515. data/spec/unit/provider/package/yum_spec.rb +4 -4
  516. data/spec/unit/provider/package/zypper_spec.rb +87 -87
  517. data/spec/unit/provider/parsedfile_spec.rb +44 -45
  518. data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +120 -130
  519. data/spec/unit/provider/selboolean_spec.rb +9 -11
  520. data/spec/unit/provider/selmodule_spec.rb +20 -22
  521. data/spec/unit/provider/service/base_spec.rb +4 -5
  522. data/spec/unit/provider/service/bsd_spec.rb +27 -29
  523. data/spec/unit/provider/service/daemontools_spec.rb +35 -35
  524. data/spec/unit/provider/service/debian_spec.rb +37 -37
  525. data/spec/unit/provider/service/freebsd_spec.rb +18 -18
  526. data/spec/unit/provider/service/gentoo_spec.rb +50 -56
  527. data/spec/unit/provider/service/init_spec.rb +55 -55
  528. data/spec/unit/provider/service/launchd_spec.rb +138 -116
  529. data/spec/unit/provider/service/openbsd_spec.rb +50 -50
  530. data/spec/unit/provider/service/openrc_spec.rb +43 -46
  531. data/spec/unit/provider/service/openwrt_spec.rb +26 -32
  532. data/spec/unit/provider/service/rcng_spec.rb +14 -14
  533. data/spec/unit/provider/service/redhat_spec.rb +45 -43
  534. data/spec/unit/provider/service/runit_spec.rb +29 -27
  535. data/spec/unit/provider/service/smf_spec.rb +74 -66
  536. data/spec/unit/provider/service/src_spec.rb +46 -47
  537. data/spec/unit/provider/service/systemd_spec.rb +93 -98
  538. data/spec/unit/provider/service/upstart_spec.rb +74 -72
  539. data/spec/unit/provider/service/windows_spec.rb +33 -41
  540. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +54 -68
  541. data/spec/unit/provider/sshkey/parsed_spec.rb +7 -8
  542. data/spec/unit/provider/user/aix_spec.rb +31 -31
  543. data/spec/unit/provider/user/directoryservice_spec.rb +109 -114
  544. data/spec/unit/provider/user/hpux_spec.rb +15 -15
  545. data/spec/unit/provider/user/ldap_spec.rb +57 -57
  546. data/spec/unit/provider/user/openbsd_spec.rb +10 -12
  547. data/spec/unit/provider/user/pw_spec.rb +37 -35
  548. data/spec/unit/provider/user/user_role_add_spec.rb +93 -93
  549. data/spec/unit/provider/user/useradd_spec.rb +93 -92
  550. data/spec/unit/provider/user/windows_adsi_spec.rb +59 -60
  551. data/spec/unit/provider/vlan/cisco_spec.rb +10 -12
  552. data/spec/unit/provider/yumrepo/inifile_spec.rb +75 -80
  553. data/spec/unit/provider/zfs/zfs_spec.rb +26 -21
  554. data/spec/unit/provider/zone/solaris_spec.rb +56 -42
  555. data/spec/unit/provider/zpool/zpool_spec.rb +19 -20
  556. data/spec/unit/provider_spec.rb +29 -29
  557. data/spec/unit/puppet_pal_2pec.rb +4 -5
  558. data/spec/unit/puppet_pal_spec.rb +0 -1
  559. data/spec/unit/puppet_spec.rb +7 -8
  560. data/spec/unit/relationship_spec.rb +0 -1
  561. data/spec/unit/reports/http_spec.rb +21 -23
  562. data/spec/unit/reports/store_spec.rb +3 -4
  563. data/spec/unit/reports_spec.rb +12 -14
  564. data/spec/unit/resource/capability_finder_spec.rb +18 -16
  565. data/spec/unit/resource/catalog_spec.rb +72 -68
  566. data/spec/unit/resource/status_spec.rb +6 -8
  567. data/spec/unit/resource/type_collection_spec.rb +17 -18
  568. data/spec/unit/resource/type_spec.rb +34 -35
  569. data/spec/unit/resource_spec.rb +36 -32
  570. data/spec/unit/scheduler/job_spec.rb +0 -1
  571. data/spec/unit/scheduler/scheduler_spec.rb +0 -1
  572. data/spec/unit/scheduler/splay_job_spec.rb +1 -2
  573. data/spec/unit/settings/array_setting_spec.rb +1 -1
  574. data/spec/unit/settings/autosign_setting_spec.rb +9 -9
  575. data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
  576. data/spec/unit/settings/config_file_spec.rb +0 -1
  577. data/spec/unit/settings/directory_setting_spec.rb +2 -7
  578. data/spec/unit/settings/duration_setting_spec.rb +1 -2
  579. data/spec/unit/settings/enum_setting_spec.rb +1 -1
  580. data/spec/unit/settings/environment_conf_spec.rb +4 -6
  581. data/spec/unit/settings/file_setting_spec.rb +44 -46
  582. data/spec/unit/settings/path_setting_spec.rb +1 -2
  583. data/spec/unit/settings/priority_setting_spec.rb +1 -2
  584. data/spec/unit/settings/string_setting_spec.rb +14 -15
  585. data/spec/unit/settings/terminus_setting_spec.rb +1 -2
  586. data/spec/unit/settings/value_translator_spec.rb +0 -1
  587. data/spec/unit/settings_spec.rb +226 -233
  588. data/spec/unit/ssl/base_spec.rb +14 -15
  589. data/spec/unit/ssl/certificate_authority/autosign_command_spec.rb +6 -7
  590. data/spec/unit/ssl/certificate_authority/interface_spec.rb +116 -113
  591. data/spec/unit/ssl/certificate_authority_spec.rb +258 -268
  592. data/spec/unit/ssl/certificate_factory_spec.rb +3 -5
  593. data/spec/unit/ssl/certificate_request_attributes_spec.rb +2 -3
  594. data/spec/unit/ssl/certificate_request_spec.rb +66 -67
  595. data/spec/unit/ssl/certificate_revocation_list_spec.rb +3 -4
  596. data/spec/unit/ssl/certificate_spec.rb +23 -25
  597. data/spec/unit/ssl/configuration_spec.rb +1 -4
  598. data/spec/unit/ssl/digest_spec.rb +0 -1
  599. data/spec/unit/ssl/host_spec.rb +217 -188
  600. data/spec/unit/ssl/inventory_spec.rb +25 -21
  601. data/spec/unit/ssl/key_spec.rb +30 -31
  602. data/spec/unit/ssl/validator_spec.rb +40 -40
  603. data/spec/unit/task_spec.rb +6 -7
  604. data/spec/unit/transaction/additional_resource_generator_spec.rb +6 -5
  605. data/spec/unit/transaction/event_manager_spec.rb +88 -88
  606. data/spec/unit/transaction/event_spec.rb +16 -15
  607. data/spec/unit/transaction/persistence_spec.rb +16 -17
  608. data/spec/unit/transaction/report_spec.rb +11 -12
  609. data/spec/unit/transaction/resource_harness_spec.rb +28 -33
  610. data/spec/unit/transaction_spec.rb +98 -100
  611. data/spec/unit/type/augeas_spec.rb +11 -10
  612. data/spec/unit/type/component_spec.rb +0 -1
  613. data/spec/unit/type/computer_spec.rb +7 -10
  614. data/spec/unit/type/cron_spec.rb +3 -7
  615. data/spec/unit/type/exec_spec.rb +60 -56
  616. data/spec/unit/type/file/checksum_spec.rb +9 -10
  617. data/spec/unit/type/file/checksum_value_spec.rb +31 -32
  618. data/spec/unit/type/file/content_spec.rb +58 -61
  619. data/spec/unit/type/file/ctime_spec.rb +0 -1
  620. data/spec/unit/type/file/ensure_spec.rb +12 -13
  621. data/spec/unit/type/file/group_spec.rb +5 -7
  622. data/spec/unit/type/file/mode_spec.rb +4 -6
  623. data/spec/unit/type/file/mtime_spec.rb +0 -1
  624. data/spec/unit/type/file/owner_spec.rb +6 -8
  625. data/spec/unit/type/file/selinux_spec.rb +17 -19
  626. data/spec/unit/type/file/source_spec.rb +104 -101
  627. data/spec/unit/type/file/type_spec.rb +0 -1
  628. data/spec/unit/type/file_spec.rb +195 -185
  629. data/spec/unit/type/filebucket_spec.rb +4 -5
  630. data/spec/unit/type/group_spec.rb +6 -8
  631. data/spec/unit/type/host_spec.rb +2 -3
  632. data/spec/unit/type/interface_spec.rb +2 -3
  633. data/spec/unit/type/k5login_spec.rb +3 -4
  634. data/spec/unit/type/macauthorization_spec.rb +6 -8
  635. data/spec/unit/type/mailalias_spec.rb +2 -3
  636. data/spec/unit/type/maillist_spec.rb +6 -9
  637. data/spec/unit/type/mcx_spec.rb +4 -8
  638. data/spec/unit/type/mount_spec.rb +26 -38
  639. data/spec/unit/type/nagios_spec.rb +0 -1
  640. data/spec/unit/type/noop_metaparam_spec.rb +1 -2
  641. data/spec/unit/type/package/package_settings_spec.rb +44 -23
  642. data/spec/unit/type/package_spec.rb +53 -54
  643. data/spec/unit/type/resources_spec.rb +86 -88
  644. data/spec/unit/type/schedule_spec.rb +24 -26
  645. data/spec/unit/type/scheduled_task_spec.rb +1 -2
  646. data/spec/unit/type/selboolean_spec.rb +5 -6
  647. data/spec/unit/type/selmodule_spec.rb +0 -1
  648. data/spec/unit/type/service_spec.rb +47 -47
  649. data/spec/unit/type/ssh_authorized_key_spec.rb +5 -35
  650. data/spec/unit/type/sshkey_spec.rb +0 -2
  651. data/spec/unit/type/stage_spec.rb +0 -1
  652. data/spec/unit/type/tidy_spec.rb +61 -62
  653. data/spec/unit/type/user_spec.rb +41 -27
  654. data/spec/unit/type/vlan_spec.rb +2 -4
  655. data/spec/unit/type/whit_spec.rb +0 -1
  656. data/spec/unit/type/zfs_spec.rb +6 -7
  657. data/spec/unit/type/zone_spec.rb +14 -4
  658. data/spec/unit/type/zpool_spec.rb +4 -5
  659. data/spec/unit/type_spec.rb +54 -53
  660. data/spec/unit/util/at_fork_spec.rb +18 -19
  661. data/spec/unit/util/autoload_spec.rb +53 -54
  662. data/spec/unit/util/backups_spec.rb +34 -35
  663. data/spec/unit/util/character_encoding_spec.rb +8 -8
  664. data/spec/unit/util/checksums_spec.rb +38 -39
  665. data/spec/unit/util/colors_spec.rb +1 -2
  666. data/spec/unit/util/command_line_spec.rb +24 -25
  667. data/spec/unit/util/constant_inflector_spec.rb +0 -1
  668. data/spec/unit/util/diff_spec.rb +7 -8
  669. data/spec/unit/util/errors_spec.rb +0 -1
  670. data/spec/unit/util/execution_spec.rb +187 -162
  671. data/spec/unit/util/execution_stub_spec.rb +0 -1
  672. data/spec/unit/util/feature_spec.rb +13 -13
  673. data/spec/unit/util/filetype_spec.rb +49 -49
  674. data/spec/unit/util/http_proxy_spec.rb +12 -12
  675. data/spec/unit/util/inifile_spec.rb +26 -31
  676. data/spec/unit/util/json_lockfile_spec.rb +3 -5
  677. data/spec/unit/util/ldap/connection_spec.rb +26 -25
  678. data/spec/unit/util/ldap/generator_spec.rb +0 -1
  679. data/spec/unit/util/ldap/manager_spec.rb +102 -101
  680. data/spec/unit/util/lockfile_spec.rb +0 -1
  681. data/spec/unit/util/log/destinations_spec.rb +30 -33
  682. data/spec/unit/util/log_spec.rb +35 -36
  683. data/spec/unit/util/logging_spec.rb +58 -66
  684. data/spec/unit/util/metric_spec.rb +0 -1
  685. data/spec/unit/util/monkey_patches_spec.rb +7 -9
  686. data/spec/unit/util/multi_match_spec.rb +0 -1
  687. data/spec/unit/util/nagios_maker_spec.rb +35 -36
  688. data/spec/unit/util/network_device/cisco/device_spec.rb +59 -50
  689. data/spec/unit/util/network_device/cisco/facts_spec.rb +4 -5
  690. data/spec/unit/util/network_device/cisco/interface_spec.rb +29 -20
  691. data/spec/unit/util/network_device/config_spec.rb +0 -1
  692. data/spec/unit/util/network_device/ipcalc_spec.rb +0 -1
  693. data/spec/unit/util/network_device/transport/base_spec.rb +5 -6
  694. data/spec/unit/util/network_device/transport/ssh_spec.rb +94 -60
  695. data/spec/unit/util/network_device/transport/telnet_spec.rb +18 -14
  696. data/spec/unit/util/network_device_spec.rb +7 -9
  697. data/spec/unit/util/package_spec.rb +0 -1
  698. data/spec/unit/util/pidlock_spec.rb +13 -14
  699. data/spec/unit/util/plist_spec.rb +40 -33
  700. data/spec/unit/util/posix_spec.rb +54 -51
  701. data/spec/unit/util/rdoc_spec.rb +9 -10
  702. data/spec/unit/util/reference_spec.rb +0 -1
  703. data/spec/unit/util/resource_template_spec.rb +20 -20
  704. data/spec/unit/util/retry_action_spec.rb +7 -8
  705. data/spec/unit/util/rubygems_spec.rb +14 -14
  706. data/spec/unit/util/run_mode_spec.rb +3 -4
  707. data/spec/unit/util/selinux_spec.rb +79 -72
  708. data/spec/unit/util/splayer_spec.rb +8 -9
  709. data/spec/unit/util/ssl_spec.rb +0 -1
  710. data/spec/unit/util/storage_spec.rb +3 -4
  711. data/spec/unit/util/suidmanager_spec.rb +45 -54
  712. data/spec/unit/util/symbolic_file_mode_spec.rb +0 -1
  713. data/spec/unit/util/tag_set_spec.rb +0 -1
  714. data/spec/unit/util/tagging_spec.rb +0 -1
  715. data/spec/unit/util/terminal_spec.rb +9 -10
  716. data/spec/unit/util/user_attr_spec.rb +1 -2
  717. data/spec/unit/util/warnings_spec.rb +3 -4
  718. data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
  719. data/spec/unit/util/watcher_spec.rb +51 -21
  720. data/spec/unit/util/windows/access_control_entry_spec.rb +0 -1
  721. data/spec/unit/util/windows/access_control_list_spec.rb +0 -1
  722. data/spec/unit/util/windows/adsi_spec.rb +136 -138
  723. data/spec/unit/util/windows/api_types_spec.rb +0 -1
  724. data/spec/unit/util/windows/eventlog_spec.rb +9 -12
  725. data/spec/unit/util/windows/file_spec.rb +0 -1
  726. data/spec/unit/util/windows/root_certs_spec.rb +0 -1
  727. data/spec/unit/util/windows/security_descriptor_spec.rb +0 -2
  728. data/spec/unit/util/windows/service_spec.rb +66 -68
  729. data/spec/unit/util/windows/sid_spec.rb +11 -13
  730. data/spec/unit/util/windows/string_spec.rb +0 -1
  731. data/spec/unit/util_spec.rb +55 -59
  732. data/spec/unit/version_spec.rb +6 -6
  733. metadata +2 -2
@@ -1,4 +1,3 @@
1
- #! /usr/bin/env ruby
2
1
  require 'spec_helper'
3
2
  require 'puppet/util/character_encoding'
4
3
  require 'puppet_spec/character_encoding'
@@ -22,7 +21,7 @@ describe Puppet::Util::CharacterEncoding do
22
21
  let(:invalid_utf8_string) { "\xfd\xf1".force_encoding(Encoding::UTF_8) }
23
22
 
24
23
  it "should issue a debug message" do
25
- Puppet.expects(:debug).with(regexp_matches(/encoding is invalid/))
24
+ expect(Puppet).to receive(:debug).with(/encoding is invalid/)
26
25
  Puppet::Util::CharacterEncoding.convert_to_utf_8(invalid_utf8_string)
27
26
  end
28
27
 
@@ -81,7 +80,7 @@ describe Puppet::Util::CharacterEncoding do
81
80
  end
82
81
 
83
82
  it "should issue a debug message that the string was not transcodable" do
84
- Puppet.expects(:debug).with(regexp_matches(/cannot be transcoded/))
83
+ expect(Puppet).to receive(:debug).with(/cannot be transcoded/)
85
84
  PuppetSpec::CharacterEncoding.with_external_encoding(Encoding::Windows_31J) do
86
85
  Puppet::Util::CharacterEncoding.convert_to_utf_8(invalid_win_31j)
87
86
  end
@@ -125,7 +124,7 @@ describe Puppet::Util::CharacterEncoding do
125
124
  let(:euc_kr) { [253, 241].pack('C*').force_encoding(Encoding::ASCII) }
126
125
 
127
126
  it "should issue a debug message" do
128
- Puppet.expects(:debug).with(regexp_matches(/cannot be transcoded/))
127
+ expect(Puppet).to receive(:debug).with(/cannot be transcoded/)
129
128
  Puppet::Util::CharacterEncoding.convert_to_utf_8(euc_kr)
130
129
  end
131
130
 
@@ -167,8 +166,9 @@ describe Puppet::Util::CharacterEncoding do
167
166
  # Invalid in UTF-8 without transcoding
168
167
  let(:oslash) { [216].pack('C*').force_encoding(Encoding::ISO_8859_1) }
169
168
  let(:foo) { 'foo' }
169
+
170
170
  it "should issue a debug message" do
171
- Puppet.expects(:debug).with(regexp_matches(/not valid UTF-8/))
171
+ expect(Puppet).to receive(:debug).with(/not valid UTF-8/)
172
172
  Puppet::Util::CharacterEncoding.override_encoding_to_utf_8(oslash)
173
173
  end
174
174
 
@@ -205,13 +205,13 @@ describe Puppet::Util::CharacterEncoding do
205
205
 
206
206
  context "when String#scrub is not defined" do
207
207
  it "should still issue unicode replacement characters if the string is UTF-8" do
208
- utf_8_string_to_scrub.stubs(:respond_to?).with(:scrub).returns(false)
208
+ allow(utf_8_string_to_scrub).to receive(:respond_to?).with(:scrub).and_return(false)
209
209
  result = Puppet::Util::CharacterEncoding.scrub(utf_8_string_to_scrub)
210
210
  expect(result).to eq("\uFFFDfoo".force_encoding(Encoding::UTF_8))
211
211
  end
212
212
 
213
213
  it "should still issue unicode replacement characters if the string is UTF-16LE" do
214
- utf_16LE_string_to_scrub.stubs(:respond_to?).with(:scrub).returns(false)
214
+ allow(utf_16LE_string_to_scrub).to receive(:respond_to?).with(:scrub).and_return(false)
215
215
  result = Puppet::Util::CharacterEncoding.scrub(utf_16LE_string_to_scrub)
216
216
  # Bytes of replacement character on UTF_16LE are [253, 255]
217
217
  # We just check for bytes because something (ruby?) interprets this array of bytes as:
@@ -220,7 +220,7 @@ describe Puppet::Util::CharacterEncoding do
220
220
  end
221
221
 
222
222
  it "should issue '?' characters if the string is not one of UTF_8 or UTF_16LE" do
223
- invalid_non_utf.stubs(:respond_to?).with(:scrub).returns(false)
223
+ allow(invalid_non_utf).to receive(:respond_to?).with(:scrub).and_return(false)
224
224
  result = Puppet::Util::CharacterEncoding.scrub(invalid_non_utf)
225
225
  expect(result).to eq("foo???".force_encoding(Encoding::EUC_KR))
226
226
  end
@@ -1,4 +1,3 @@
1
- #! /usr/bin/env ruby
2
1
  require 'spec_helper'
3
2
 
4
3
  require 'puppet/util/checksums'
@@ -69,34 +68,34 @@ describe Puppet::Util::Checksums do
69
68
  {:md5 => Digest::MD5, :sha1 => Digest::SHA1, :sha256 => Digest::SHA256, :sha512 => Digest::SHA512, :sha384 => Digest::SHA384}.each do |sum, klass|
70
69
  describe("when using #{sum}") do
71
70
  it "should use #{klass} to calculate string checksums" do
72
- klass.expects(:hexdigest).with("mycontent").returns "whatever"
71
+ expect(klass).to receive(:hexdigest).with("mycontent").and_return("whatever")
73
72
  expect(@summer.send(sum, "mycontent")).to eq("whatever")
74
73
  end
75
74
 
76
75
  it "should use incremental #{klass} sums to calculate file checksums" do
77
- digest = mock 'digest'
78
- klass.expects(:new).returns digest
76
+ digest = double('digest')
77
+ expect(klass).to receive(:new).and_return(digest)
79
78
 
80
79
  file = "/path/to/my/file"
81
80
 
82
- fh = mock 'filehandle'
83
- fh.expects(:read).with(4096).times(3).returns("firstline").then.returns("secondline").then.returns(nil)
81
+ fh = double('filehandle')
82
+ expect(fh).to receive(:read).with(4096).exactly(3).times().and_return("firstline", "secondline", nil)
84
83
 
85
- File.expects(:open).with(file, "rb").yields(fh)
84
+ expect(File).to receive(:open).with(file, "rb").and_yield(fh)
86
85
 
87
- digest.expects(:<<).with "firstline"
88
- digest.expects(:<<).with "secondline"
89
- digest.expects(:hexdigest).returns :mydigest
86
+ expect(digest).to receive(:<<).with("firstline")
87
+ expect(digest).to receive(:<<).with("secondline")
88
+ expect(digest).to receive(:hexdigest).and_return(:mydigest)
90
89
 
91
90
  expect(@summer.send(sum.to_s + "_file", file)).to eq(:mydigest)
92
91
  end
93
92
 
94
93
  it "should behave like #{klass} to calculate stream checksums" do
95
- digest = mock 'digest'
96
- klass.expects(:new).returns digest
97
- digest.expects(:<<).with "firstline"
98
- digest.expects(:<<).with "secondline"
99
- digest.expects(:hexdigest).returns :mydigest
94
+ digest = double('digest')
95
+ expect(klass).to receive(:new).and_return(digest)
96
+ expect(digest).to receive(:<<).with "firstline"
97
+ expect(digest).to receive(:<<).with "secondline"
98
+ expect(digest).to receive(:hexdigest).and_return(:mydigest)
100
99
 
101
100
  expect(@summer.send(sum.to_s + "_stream") do |checksum|
102
101
  checksum << "firstline"
@@ -110,33 +109,33 @@ describe Puppet::Util::Checksums do
110
109
  describe("when using #{sum}") do
111
110
  it "should use #{klass} to calculate string checksums from the first 512 characters of the string" do
112
111
  content = "this is a test" * 100
113
- klass.expects(:hexdigest).with(content[0..511]).returns "whatever"
112
+ expect(klass).to receive(:hexdigest).with(content[0..511]).and_return("whatever")
114
113
  expect(@summer.send(sum, content)).to eq("whatever")
115
114
  end
116
115
 
117
116
  it "should use #{klass} to calculate a sum from the first 512 characters in the file" do
118
- digest = mock 'digest'
119
- klass.expects(:new).returns digest
117
+ digest = double('digest')
118
+ expect(klass).to receive(:new).and_return(digest)
120
119
 
121
120
  file = "/path/to/my/file"
122
121
 
123
- fh = mock 'filehandle'
124
- fh.expects(:read).with(512).returns('my content')
122
+ fh = double('filehandle')
123
+ expect(fh).to receive(:read).with(512).and_return('my content')
125
124
 
126
- File.expects(:open).with(file, "rb").yields(fh)
125
+ expect(File).to receive(:open).with(file, "rb").and_yield(fh)
127
126
 
128
- digest.expects(:<<).with "my content"
129
- digest.expects(:hexdigest).returns :mydigest
127
+ expect(digest).to receive(:<<).with("my content")
128
+ expect(digest).to receive(:hexdigest).and_return(:mydigest)
130
129
 
131
130
  expect(@summer.send(sum.to_s + "_file", file)).to eq(:mydigest)
132
131
  end
133
132
 
134
133
  it "should use #{klass} to calculate a sum from the first 512 characters in a stream" do
135
- digest = mock 'digest'
134
+ digest = double('digest')
136
135
  content = "this is a test" * 100
137
- klass.expects(:new).returns digest
138
- digest.expects(:<<).with content[0..511]
139
- digest.expects(:hexdigest).returns :mydigest
136
+ expect(klass).to receive(:new).and_return(digest)
137
+ expect(digest).to receive(:<<).with(content[0..511])
138
+ expect(digest).to receive(:hexdigest).and_return(:mydigest)
140
139
 
141
140
  expect(@summer.send(sum.to_s + "_stream") do |checksum|
142
141
  checksum << content
@@ -144,13 +143,13 @@ describe Puppet::Util::Checksums do
144
143
  end
145
144
 
146
145
  it "should use #{klass} to calculate a sum from the first 512 characters in a multi-part stream" do
147
- digest = mock 'digest'
146
+ digest = double('digest')
148
147
  content = "this is a test" * 100
149
- klass.expects(:new).returns digest
150
- digest.expects(:<<).with content[0..5]
151
- digest.expects(:<<).with content[6..510]
152
- digest.expects(:<<).with content[511..511]
153
- digest.expects(:hexdigest).returns :mydigest
148
+ expect(klass).to receive(:new).and_return(digest)
149
+ expect(digest).to receive(:<<).with(content[0..5])
150
+ expect(digest).to receive(:<<).with(content[6..510])
151
+ expect(digest).to receive(:<<).with(content[511..511])
152
+ expect(digest).to receive(:hexdigest).and_return(:mydigest)
154
153
 
155
154
  expect(@summer.send(sum.to_s + "_stream") do |checksum|
156
155
  checksum << content[0..5]
@@ -165,15 +164,15 @@ describe Puppet::Util::Checksums do
165
164
  describe("when using #{sum}") do
166
165
  it "should use the '#{sum}' on the file to determine the ctime" do
167
166
  file = "/my/file"
168
- stat = mock 'stat', sum => "mysum"
169
- Puppet::FileSystem.expects(:stat).with(file).returns(stat)
167
+ stat = double('stat', sum => "mysum")
168
+ expect(Puppet::FileSystem).to receive(:stat).with(file).and_return(stat)
170
169
 
171
170
  expect(@summer.send(sum.to_s + "_file", file)).to eq("mysum")
172
171
  end
173
172
 
174
173
  it "should return nil for streams" do
175
- expectation = stub "expectation"
176
- expectation.expects(:do_something!).at_least_once
174
+ expectation = double("expectation")
175
+ expect(expectation).to receive(:do_something!).at_least(:once)
177
176
  expect(@summer.send(sum.to_s + "_stream"){ |checksum| checksum << "anything" ; expectation.do_something! }).to be_nil
178
177
  end
179
178
  end
@@ -185,8 +184,8 @@ describe Puppet::Util::Checksums do
185
184
  end
186
185
 
187
186
  it "should return an empty string for streams" do
188
- expectation = stub "expectation"
189
- expectation.expects(:do_something!).at_least_once
187
+ expectation = double("expectation")
188
+ expect(expectation).to receive(:do_something!).at_least(:once)
190
189
  expect(@summer.none_stream{ |checksum| checksum << "anything" ; expectation.do_something! }).to eq("")
191
190
  end
192
191
  end
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env ruby
2
1
  require 'spec_helper'
3
2
 
4
3
  describe Puppet::Util::Colors do
@@ -31,7 +30,7 @@ describe Puppet::Util::Colors do
31
30
  it "should colorize console output" do
32
31
  Puppet[:color] = true
33
32
 
34
- subject.expects(:console_color).with(color, message)
33
+ expect(subject).to receive(:console_color).with(color, message)
35
34
  subject.colorize(:black, message)
36
35
  end
37
36
 
@@ -1,4 +1,3 @@
1
- #! /usr/bin/env ruby
2
1
  require 'spec_helper'
3
2
 
4
3
  require 'puppet/face'
@@ -70,7 +69,7 @@ describe Puppet::Util::CommandLine do
70
69
  %w{--help -h help}.each do|arg|
71
70
  it "should print help and exit if #{arg} is given" do
72
71
  commandline = Puppet::Util::CommandLine.new("puppet", [arg])
73
- commandline.expects(:exec).never
72
+ expect(commandline).not_to receive(:exec)
74
73
 
75
74
  expect {
76
75
  commandline.execute
@@ -79,18 +78,18 @@ describe Puppet::Util::CommandLine do
79
78
  end
80
79
 
81
80
  it "should fail if the config file isn't readable and we're running a subcommand that requires a readable config file" do
82
- Puppet::FileSystem.stubs(:exist?).with(Puppet[:config]).returns(true)
83
- Puppet::Settings.any_instance.stubs(:read_file).returns('')
84
- Puppet::Settings.any_instance.expects(:read_file).with(Puppet[:config]).raises('Permission denied')
81
+ allow(Puppet::FileSystem).to receive(:exist?).with(Puppet[:config]).and_return(true)
82
+ allow_any_instance_of(Puppet::Settings).to receive(:read_file).and_return('')
83
+ expect_any_instance_of(Puppet::Settings).to receive(:read_file).with(Puppet[:config]).and_raise('Permission denied')
85
84
 
86
85
  expect{ described_class.new("puppet", ['config']).execute }.to raise_error(SystemExit)
87
86
  end
88
87
 
89
88
  it "should not fail if the config file isn't readable and we're running a subcommand that does not require a readable config file" do
90
- Puppet::FileSystem.stubs(:exist?)
91
- Puppet::FileSystem.stubs(:exist?).with(Puppet[:config]).returns(true)
92
- Puppet::Settings.any_instance.stubs(:read_file).returns('')
93
- Puppet::Settings.any_instance.expects(:read_file).with(Puppet[:config]).raises('Permission denied')
89
+ allow(Puppet::FileSystem).to receive(:exist?)
90
+ allow(Puppet::FileSystem).to receive(:exist?).with(Puppet[:config]).and_return(true)
91
+ allow_any_instance_of(Puppet::Settings).to receive(:read_file).and_return('')
92
+ expect_any_instance_of(Puppet::Settings).to receive(:read_file).with(Puppet[:config]).and_raise('Permission denied')
94
93
 
95
94
  commandline = described_class.new("puppet", ['help'])
96
95
 
@@ -109,19 +108,19 @@ describe Puppet::Util::CommandLine do
109
108
  describe "when the subcommand is not implemented" do
110
109
  it "should find and invoke an executable with a hyphenated name" do
111
110
  commandline = Puppet::Util::CommandLine.new("puppet", ['whatever', 'argument'])
112
- Puppet::Util.expects(:which).with('puppet-whatever').
113
- returns('/dev/null/puppet-whatever')
111
+ expect(Puppet::Util).to receive(:which).with('puppet-whatever').
112
+ and_return('/dev/null/puppet-whatever')
114
113
 
115
- Kernel.expects(:exec).with('/dev/null/puppet-whatever', 'argument')
114
+ expect(Kernel).to receive(:exec).with('/dev/null/puppet-whatever', 'argument')
116
115
 
117
116
  commandline.execute
118
117
  end
119
118
 
120
119
  describe "and an external implementation cannot be found" do
121
120
  it "should abort and show the usage message" do
122
- Puppet::Util.expects(:which).with('puppet-whatever').returns(nil)
121
+ expect(Puppet::Util).to receive(:which).with('puppet-whatever').and_return(nil)
123
122
  commandline = Puppet::Util::CommandLine.new("puppet", ['whatever', 'argument'])
124
- commandline.expects(:exec).never
123
+ expect(commandline).not_to receive(:exec)
125
124
 
126
125
  expect {
127
126
  commandline.execute
@@ -129,9 +128,9 @@ describe Puppet::Util::CommandLine do
129
128
  end
130
129
 
131
130
  it "should abort and show the help message" do
132
- Puppet::Util.expects(:which).with('puppet-whatever').returns(nil)
131
+ expect(Puppet::Util).to receive(:which).with('puppet-whatever').and_return(nil)
133
132
  commandline = Puppet::Util::CommandLine.new("puppet", ['whatever', 'argument'])
134
- commandline.expects(:exec).never
133
+ expect(commandline).not_to receive(:exec)
135
134
 
136
135
  expect {
137
136
  commandline.execute
@@ -140,9 +139,9 @@ describe Puppet::Util::CommandLine do
140
139
 
141
140
  %w{--version -V}.each do |arg|
142
141
  it "should abort and display #{arg} information" do
143
- Puppet::Util.expects(:which).with('puppet-whatever').returns(nil)
142
+ expect(Puppet::Util).to receive(:which).with('puppet-whatever').and_return(nil)
144
143
  commandline = Puppet::Util::CommandLine.new("puppet", ['whatever', arg])
145
- commandline.expects(:exec).never
144
+ expect(commandline).not_to receive(:exec)
146
145
 
147
146
  expect {
148
147
  commandline.execute
@@ -158,11 +157,11 @@ describe Puppet::Util::CommandLine do
158
157
  end
159
158
 
160
159
  before :each do
161
- Puppet::Util::CommandLine::ApplicationSubcommand.any_instance.stubs(:run)
160
+ allow_any_instance_of(Puppet::Util::CommandLine::ApplicationSubcommand).to receive(:run)
162
161
  end
163
162
 
164
163
  it 'should never set priority by default' do
165
- Process.expects(:setpriority).never
164
+ expect(Process).not_to receive(:setpriority)
166
165
 
167
166
  command_line.execute
168
167
  end
@@ -170,15 +169,15 @@ describe Puppet::Util::CommandLine do
170
169
  it 'should lower the process priority if one has been specified' do
171
170
  Puppet[:priority] = 10
172
171
 
173
- Process.expects(:setpriority).with(0, Process.pid, 10)
172
+ expect(Process).to receive(:setpriority).with(0, Process.pid, 10)
174
173
  command_line.execute
175
174
  end
176
175
 
177
176
  it 'should warn if trying to raise priority, but not privileged user' do
178
177
  Puppet[:priority] = -10
179
178
 
180
- Process.expects(:setpriority).raises(Errno::EACCES, 'Permission denied')
181
- Puppet.expects(:warning).with("Failed to set process priority to '-10'")
179
+ expect(Process).to receive(:setpriority).and_raise(Errno::EACCES, 'Permission denied')
180
+ expect(Puppet).to receive(:warning).with("Failed to set process priority to '-10'")
182
181
 
183
182
  command_line.execute
184
183
  end
@@ -186,8 +185,8 @@ describe Puppet::Util::CommandLine do
186
185
  it "should warn if the platform doesn't support `Process.setpriority`" do
187
186
  Puppet[:priority] = 15
188
187
 
189
- Process.expects(:setpriority).raises(NotImplementedError, 'NotImplementedError: setpriority() function is unimplemented on this machine')
190
- Puppet.expects(:warning).with("Failed to set process priority to '15'")
188
+ expect(Process).to receive(:setpriority).and_raise(NotImplementedError, 'NotImplementedError: setpriority() function is unimplemented on this machine')
189
+ expect(Puppet).to receive(:warning).with("Failed to set process priority to '15'")
191
190
 
192
191
  command_line.execute
193
192
  end
@@ -1,4 +1,3 @@
1
- #! /usr/bin/env ruby
2
1
  require 'spec_helper'
3
2
 
4
3
  require 'puppet/util/constant_inflector'
@@ -1,4 +1,3 @@
1
- #! /usr/bin/env ruby
2
1
  require 'spec_helper'
3
2
  require 'puppet/util/diff'
4
3
  require 'puppet/util/execution'
@@ -11,9 +10,9 @@ describe Puppet::Util::Diff do
11
10
  Puppet[:diff] = 'foo'
12
11
  Puppet[:diff_args] = 'bar'
13
12
 
14
- Puppet::Util::Execution.expects(:execute)
13
+ expect(Puppet::Util::Execution).to receive(:execute)
15
14
  .with(['foo', 'bar', 'a', 'b'], {:failonfail => false, :combine => false})
16
- .returns(baz_output)
15
+ .and_return(baz_output)
17
16
  expect(subject.diff('a', 'b')).to eq('baz')
18
17
  end
19
18
 
@@ -21,9 +20,9 @@ describe Puppet::Util::Diff do
21
20
  Puppet[:diff] = 'foo'
22
21
  Puppet[:diff_args] = 'bar qux'
23
22
 
24
- Puppet::Util::Execution.expects(:execute)
23
+ expect(Puppet::Util::Execution).to receive(:execute)
25
24
  .with(['foo', 'bar', 'qux', 'a', 'b'], anything)
26
- .returns(baz_output)
25
+ .and_return(baz_output)
27
26
  expect(subject.diff('a', 'b')).to eq('baz')
28
27
  end
29
28
 
@@ -31,16 +30,16 @@ describe Puppet::Util::Diff do
31
30
  Puppet[:diff] = 'foo'
32
31
  Puppet[:diff_args] = ''
33
32
 
34
- Puppet::Util::Execution.expects(:execute)
33
+ expect(Puppet::Util::Execution).to receive(:execute)
35
34
  .with(['foo', 'a', 'b'], {:failonfail => false, :combine => false})
36
- .returns(baz_output)
35
+ .and_return(baz_output)
37
36
  expect(subject.diff('a', 'b')).to eq('baz')
38
37
  end
39
38
 
40
39
  it "should return empty string if the diff command is empty" do
41
40
  Puppet[:diff] = ''
42
41
 
43
- Puppet::Util::Execution.expects(:execute).never
42
+ expect(Puppet::Util::Execution).not_to receive(:execute)
44
43
  expect(subject.diff('a', 'b')).to eq('')
45
44
  end
46
45
  end
@@ -1,4 +1,3 @@
1
- #! /usr/bin/env ruby
2
1
  require 'spec_helper'
3
2
 
4
3
  require 'puppet/util/errors'
@@ -1,4 +1,3 @@
1
- #! /usr/bin/env ruby
2
1
  # encoding: UTF-8
3
2
  require 'spec_helper'
4
3
  require 'puppet/file_system/uniquefile'
@@ -6,10 +5,12 @@ require 'puppet_spec/character_encoding'
6
5
 
7
6
  describe Puppet::Util::Execution do
8
7
  include Puppet::Util::Execution
8
+
9
9
  # utility methods to help us test some private methods without being quite so verbose
10
10
  def call_exec_posix(command, arguments, stdin, stdout, stderr)
11
11
  Puppet::Util::Execution.send(:execute_posix, command, arguments, stdin, stdout, stderr)
12
12
  end
13
+
13
14
  def call_exec_windows(command, arguments, stdin, stdout, stderr)
14
15
  Puppet::Util::Execution.send(:execute_windows, command, arguments, stdin, stdout, stderr)
15
16
  end
@@ -18,36 +19,35 @@ describe Puppet::Util::Execution do
18
19
  let(:pid) { 5501 }
19
20
  let(:process_handle) { 0xDEADBEEF }
20
21
  let(:thread_handle) { 0xCAFEBEEF }
21
- let(:proc_info_stub) { stub 'processinfo', :process_handle => process_handle, :thread_handle => thread_handle, :process_id => pid}
22
+ let(:proc_info_stub) { double('processinfo', :process_handle => process_handle, :thread_handle => thread_handle, :process_id => pid) }
22
23
  let(:null_file) { Puppet.features.microsoft_windows? ? 'NUL' : '/dev/null' }
23
24
 
24
25
  def stub_process_wait(exitstatus)
25
26
  if Puppet.features.microsoft_windows?
26
- Puppet::Util::Windows::Process.stubs(:wait_process).with(process_handle).returns(exitstatus)
27
- FFI::WIN32.stubs(:CloseHandle).with(process_handle)
28
- FFI::WIN32.stubs(:CloseHandle).with(thread_handle)
27
+ allow(Puppet::Util::Windows::Process).to receive(:wait_process).with(process_handle).and_return(exitstatus)
28
+ allow(FFI::WIN32).to receive(:CloseHandle).with(process_handle)
29
+ allow(FFI::WIN32).to receive(:CloseHandle).with(thread_handle)
29
30
  else
30
- Process.stubs(:waitpid2).with(pid, Process::WNOHANG).returns(nil, [pid, stub('child_status', :exitstatus => exitstatus)])
31
- Process.stubs(:waitpid2).with(pid).returns([pid, stub('child_status', :exitstatus => exitstatus)])
31
+ allow(Process).to receive(:waitpid2).with(pid, Process::WNOHANG).and_return(nil, [pid, double('child_status', :exitstatus => exitstatus)])
32
+ allow(Process).to receive(:waitpid2).with(pid).and_return([pid, double('child_status', :exitstatus => exitstatus)])
32
33
  end
33
34
  end
34
35
 
35
-
36
36
  describe "#execute_posix (stubs)", :unless => Puppet.features.microsoft_windows? do
37
37
  before :each do
38
38
  # Most of the things this method does are bad to do during specs. :/
39
- Kernel.stubs(:fork).returns(pid).yields
40
- Process.stubs(:setsid)
41
- Kernel.stubs(:exec)
42
- Puppet::Util::SUIDManager.stubs(:change_user)
43
- Puppet::Util::SUIDManager.stubs(:change_group)
39
+ allow(Kernel).to receive(:fork).and_return(pid).and_yield
40
+ allow(Process).to receive(:setsid)
41
+ allow(Kernel).to receive(:exec)
42
+ allow(Puppet::Util::SUIDManager).to receive(:change_user)
43
+ allow(Puppet::Util::SUIDManager).to receive(:change_group)
44
44
 
45
45
  # ensure that we don't really close anything!
46
- (0..256).each {|n| IO.stubs(:new) }
46
+ allow(IO).to receive(:new)
47
47
 
48
- $stdin.stubs(:reopen)
49
- $stdout.stubs(:reopen)
50
- $stderr.stubs(:reopen)
48
+ allow($stdin).to receive(:reopen)
49
+ allow($stdout).to receive(:reopen)
50
+ allow($stderr).to receive(:reopen)
51
51
 
52
52
  @stdin = File.open(null_file, 'r')
53
53
  @stdout = Puppet::FileSystem::Uniquefile.new('stdout')
@@ -80,41 +80,41 @@ describe Puppet::Util::Execution do
80
80
 
81
81
 
82
82
  it "should fork a child process to execute the command" do
83
- Kernel.expects(:fork).returns(pid).yields
84
- Kernel.expects(:exec).with('test command')
83
+ expect(Kernel).to receive(:fork).and_return(pid).and_yield
84
+ expect(Kernel).to receive(:exec).with('test command')
85
85
 
86
86
  call_exec_posix('test command', {}, @stdin, @stdout, @stderr)
87
87
  end
88
88
 
89
89
  it "should start a new session group" do
90
- Process.expects(:setsid)
90
+ expect(Process).to receive(:setsid)
91
91
 
92
92
  call_exec_posix('test command', {}, @stdin, @stdout, @stderr)
93
93
  end
94
94
 
95
95
  it "should permanently change to the correct user and group if specified" do
96
- Puppet::Util::SUIDManager.expects(:change_group).with(55, true)
97
- Puppet::Util::SUIDManager.expects(:change_user).with(50, true)
96
+ expect(Puppet::Util::SUIDManager).to receive(:change_group).with(55, true)
97
+ expect(Puppet::Util::SUIDManager).to receive(:change_user).with(50, true)
98
98
 
99
99
  call_exec_posix('test command', {:uid => 50, :gid => 55}, @stdin, @stdout, @stderr)
100
100
  end
101
101
 
102
102
  it "should exit failure if there is a problem execing the command" do
103
- Kernel.expects(:exec).with('test command').raises("failed to execute!")
104
- Puppet::Util::Execution.stubs(:puts)
105
- Puppet::Util::Execution.expects(:exit!).with(1)
103
+ expect(Kernel).to receive(:exec).with('test command').and_raise("failed to execute!")
104
+ allow(Puppet::Util::Execution).to receive(:puts)
105
+ expect(Puppet::Util::Execution).to receive(:exit!).with(1)
106
106
 
107
107
  call_exec_posix('test command', {}, @stdin, @stdout, @stderr)
108
108
  end
109
109
 
110
110
  it "should properly execute commands specified as arrays" do
111
- Kernel.expects(:exec).with('test command', 'with', 'arguments')
111
+ expect(Kernel).to receive(:exec).with('test command', 'with', 'arguments')
112
112
 
113
113
  call_exec_posix(['test command', 'with', 'arguments'], {:uid => 50, :gid => 55}, @stdin, @stdout, @stderr)
114
114
  end
115
115
 
116
116
  it "should properly execute string commands with embedded newlines" do
117
- Kernel.expects(:exec).with("/bin/echo 'foo' ; \n /bin/echo 'bar' ;")
117
+ expect(Kernel).to receive(:exec).with("/bin/echo 'foo' ; \n /bin/echo 'bar' ;")
118
118
 
119
119
  call_exec_posix("/bin/echo 'foo' ; \n /bin/echo 'bar' ;", {:uid => 50, :gid => 55}, @stdin, @stdout, @stderr)
120
120
  end
@@ -123,8 +123,8 @@ describe Puppet::Util::Execution do
123
123
  let(:cwd) { 'cwd' }
124
124
 
125
125
  it 'should run the command in the specified working directory' do
126
- Dir.expects(:chdir).with(cwd)
127
- Kernel.expects(:exec).with('test command')
126
+ expect(Dir).to receive(:chdir).with(cwd)
127
+ expect(Kernel).to receive(:exec).with('test command')
128
128
 
129
129
  call_exec_posix('test command', { :cwd => cwd }, @stdin, @stdout, @stderr)
130
130
  end
@@ -137,7 +137,7 @@ describe Puppet::Util::Execution do
137
137
 
138
138
  describe "#execute_windows (stubs)", :if => Puppet.features.microsoft_windows? do
139
139
  before :each do
140
- Process.stubs(:create).returns(proc_info_stub)
140
+ allow(Process).to receive(:create).and_return(proc_info_stub)
141
141
  stub_process_wait(0)
142
142
 
143
143
  @stdin = File.open(null_file, 'r')
@@ -146,11 +146,11 @@ describe Puppet::Util::Execution do
146
146
  end
147
147
 
148
148
  it "should create a new process for the command" do
149
- Process.expects(:create).with(
149
+ expect(Process).to receive(:create).with(
150
150
  :command_line => "test command",
151
151
  :startup_info => {:stdin => @stdin, :stdout => @stdout, :stderr => @stderr},
152
152
  :close_handles => false
153
- ).returns(proc_info_stub)
153
+ ).and_return(proc_info_stub)
154
154
 
155
155
  call_exec_windows('test command', {}, @stdin, @stdout, @stderr)
156
156
  end
@@ -158,8 +158,8 @@ describe Puppet::Util::Execution do
158
158
  context 'cwd option' do
159
159
  let(:cwd) { 'cwd' }
160
160
  it "should execute the command in the specified working directory" do
161
- Dir.expects(:chdir).with(cwd).yields
162
- Process.expects(:create).with(
161
+ expect(Dir).to receive(:chdir).with(cwd).and_yield
162
+ expect(Process).to receive(:create).with(
163
163
  :command_line => "test command",
164
164
  :startup_info => {
165
165
  :stdin => @stdin,
@@ -176,7 +176,7 @@ describe Puppet::Util::Execution do
176
176
  context 'suppress_window option' do
177
177
  let(:cwd) { 'cwd' }
178
178
  it "should execute the command in the specified working directory" do
179
- Process.expects(:create).with(
179
+ expect(Process).to receive(:create).with(
180
180
  :command_line => "test command",
181
181
  :startup_info => {
182
182
  :stdin => @stdin,
@@ -196,9 +196,7 @@ describe Puppet::Util::Execution do
196
196
  end
197
197
 
198
198
  it "should quote arguments containing spaces if command is specified as an array" do
199
- Process.expects(:create).with do |args|
200
- args[:command_line] == '"test command" with some "arguments \"with spaces"'
201
- end.returns(proc_info_stub)
199
+ expect(Process).to receive(:create).with(hash_including(command_line: '"test command" with some "arguments \"with spaces"')).and_return(proc_info_stub)
202
200
 
203
201
  call_exec_windows(['test command', 'with', 'some', 'arguments "with spaces'], {}, @stdin, @stdout, @stderr)
204
202
  end
@@ -221,8 +219,8 @@ describe Puppet::Util::Execution do
221
219
  end
222
220
 
223
221
  it "should not actually execute anything" do
224
- Puppet::Util::Execution.expects(:execute_posix).never
225
- Puppet::Util::Execution.expects(:execute_windows).never
222
+ expect(Puppet::Util::Execution).not_to receive(:execute_posix)
223
+ expect(Puppet::Util::Execution).not_to receive(:execute_windows)
226
224
 
227
225
  Puppet::Util::Execution.execute("/usr/bin/run_my_execute_stub")
228
226
  end
@@ -230,37 +228,42 @@ describe Puppet::Util::Execution do
230
228
 
231
229
  describe "when setting up input and output files" do
232
230
  include PuppetSpec::Files
231
+
233
232
  let(:executor) { Puppet.features.microsoft_windows? ? 'execute_windows' : 'execute_posix' }
234
233
  let(:rval) { Puppet.features.microsoft_windows? ? proc_info_stub : pid }
235
234
 
236
235
  before :each do
237
- Puppet::Util::Execution.stubs(:wait_for_output)
236
+ allow(Puppet::Util::Execution).to receive(:wait_for_output)
238
237
  end
239
238
 
240
239
  it "should set stdin to the stdinfile if specified" do
241
240
  input = tmpfile('stdin')
242
241
  FileUtils.touch(input)
243
242
 
244
- Puppet::Util::Execution.expects(executor).with do |_,_,stdin,_,_|
245
- stdin.path == input
246
- end.returns(rval)
243
+ expect(Puppet::Util::Execution).to receive(executor) do |_,_,stdin,_,_|
244
+ expect(stdin.path).to eq(input)
245
+ rval
246
+ end
247
247
 
248
248
  Puppet::Util::Execution.execute('test command', :stdinfile => input)
249
249
  end
250
250
 
251
251
  it "should set stdin to the null file if not specified" do
252
- Puppet::Util::Execution.expects(executor).with do |_,_,stdin,_,_|
253
- stdin.path == null_file
254
- end.returns(rval)
252
+ expect(Puppet::Util::Execution).to receive(executor) do |_,_,stdin,_,_|
253
+ expect(stdin.path).to eq(null_file)
254
+ rval
255
+ end
255
256
 
256
257
  Puppet::Util::Execution.execute('test command')
257
258
  end
258
259
 
259
260
  describe "when squelch is set" do
260
261
  it "should set stdout and stderr to the null file" do
261
- Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,stderr|
262
- stdout.path == null_file and stderr.path == null_file
263
- end.returns(rval)
262
+ expect(Puppet::Util::Execution).to receive(executor) do |_,_,_,stdout,stderr|
263
+ expect(stdout.path).to eq(null_file)
264
+ expect(stderr.path).to eq(null_file)
265
+ rval
266
+ end
264
267
 
265
268
  Puppet::Util::Execution.execute('test command', :squelch => true)
266
269
  end
@@ -268,18 +271,18 @@ describe Puppet::Util::Execution do
268
271
 
269
272
  describe "cwd option" do
270
273
  def expect_cwd_to_be(cwd)
271
- Puppet::Util::Execution.expects(executor).with(
274
+ expect(Puppet::Util::Execution).to receive(executor).with(
272
275
  anything,
273
- has_entries(:cwd => cwd),
276
+ hash_including(cwd: cwd),
274
277
  anything,
275
278
  anything,
276
279
  anything
277
- ).returns(rval)
280
+ ).and_return(rval)
278
281
  end
279
282
 
280
283
  it 'should raise an ArgumentError if the specified working directory does not exist' do
281
284
  cwd = 'cwd'
282
- Puppet::FileSystem.stubs(:directory?).with(cwd).returns(false)
285
+ allow(Puppet::FileSystem).to receive(:directory?).with(cwd).and_return(false)
283
286
 
284
287
  expect {
285
288
  Puppet::Util::Execution.execute('test command', cwd: cwd)
@@ -290,7 +293,7 @@ describe Puppet::Util::Execution do
290
293
  end
291
294
 
292
295
  it "should set the cwd to the user-specified one" do
293
- Puppet::FileSystem.stubs(:directory?).with('cwd').returns(true)
296
+ allow(Puppet::FileSystem).to receive(:directory?).with('cwd').and_return(true)
294
297
  expect_cwd_to_be('cwd')
295
298
  Puppet::Util::Execution.execute('test command', cwd: 'cwd')
296
299
  end
@@ -299,49 +302,55 @@ describe Puppet::Util::Execution do
299
302
  describe "on POSIX", :if => Puppet.features.posix? do
300
303
  describe "when squelch is not set" do
301
304
  it "should set stdout to a pipe" do
302
- Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,_|
303
- stdout.class == IO
304
- end.returns(rval)
305
+ expect(Puppet::Util::Execution).to receive(executor).with(anything, anything, anything, be_a(IO), anything).and_return(rval)
305
306
 
306
307
  Puppet::Util::Execution.execute('test command', :squelch => false)
307
308
  end
308
309
 
309
310
  it "should set stderr to the same file as stdout if combine is true" do
310
- Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,stderr|
311
- stdout == stderr
312
- end.returns(rval)
311
+ expect(Puppet::Util::Execution).to receive(executor) do |_,_,_,stdout,stderr|
312
+ expect(stdout).to eq(stderr)
313
+ rval
314
+ end
313
315
 
314
316
  Puppet::Util::Execution.execute('test command', :squelch => false, :combine => true)
315
317
  end
316
318
 
317
319
  it "should set stderr to the null device if combine is false" do
318
- Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,stderr|
319
- stdout.class == IO and stderr.path == null_file
320
- end.returns(rval)
320
+ expect(Puppet::Util::Execution).to receive(executor) do |_,_,_,stdout,stderr|
321
+ expect(stdout.class).to eq(IO)
322
+ expect(stderr.path).to eq(null_file)
323
+ rval
324
+ end
321
325
 
322
326
  Puppet::Util::Execution.execute('test command', :squelch => false, :combine => false)
323
327
  end
324
328
 
325
329
  it "should default combine to true when no options are specified" do
326
- Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,stderr|
327
- stdout == stderr
328
- end.returns(rval)
330
+ expect(Puppet::Util::Execution).to receive(executor) do |_,_,_,stdout,stderr|
331
+ expect(stdout).to eq(stderr)
332
+ rval
333
+ end
329
334
 
330
335
  Puppet::Util::Execution.execute('test command')
331
336
  end
332
337
 
333
338
  it "should default combine to false when options are specified, but combine is not" do
334
- Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,stderr|
335
- stdout.class == IO and stderr.path == null_file
336
- end.returns(rval)
339
+ expect(Puppet::Util::Execution).to receive(executor) do |_,_,_,stdout,stderr|
340
+ expect(stdout.class).to eq(IO)
341
+ expect(stderr.path).to eq(null_file)
342
+ rval
343
+ end
337
344
 
338
345
  Puppet::Util::Execution.execute('test command', :failonfail => false)
339
346
  end
340
347
 
341
348
  it "should default combine to false when an empty hash of options is specified" do
342
- Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,stderr|
343
- stdout.class == IO and stderr.path == null_file
344
- end.returns(rval)
349
+ expect(Puppet::Util::Execution).to receive(executor) do |_,_,_,stdout,stderr|
350
+ expect(stdout.class).to eq(IO)
351
+ expect(stderr.path).to eq(null_file)
352
+ rval
353
+ end
345
354
 
346
355
  Puppet::Util::Execution.execute('test command', {})
347
356
  end
@@ -352,77 +361,90 @@ describe Puppet::Util::Execution do
352
361
  describe "when squelch is not set" do
353
362
  it "should set stdout to a temporary output file" do
354
363
  outfile = Puppet::FileSystem::Uniquefile.new('stdout')
355
- Puppet::FileSystem::Uniquefile.stubs(:new).returns(outfile)
364
+ allow(Puppet::FileSystem::Uniquefile).to receive(:new).and_return(outfile)
356
365
 
357
- Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,_|
358
- stdout.path == outfile.path
359
- end.returns(rval)
366
+ expect(Puppet::Util::Execution).to receive(executor) do |_,_,_,stdout,_|
367
+ expect(stdout.path).to eq(outfile.path)
368
+ rval
369
+ end
360
370
 
361
371
  Puppet::Util::Execution.execute('test command', :squelch => false)
362
372
  end
363
373
 
364
374
  it "should set stderr to the same file as stdout if combine is true" do
365
375
  outfile = Puppet::FileSystem::Uniquefile.new('stdout')
366
- Puppet::FileSystem::Uniquefile.stubs(:new).returns(outfile)
376
+ allow(Puppet::FileSystem::Uniquefile).to receive(:new).and_return(outfile)
367
377
 
368
- Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,stderr|
369
- stdout.path == outfile.path and stderr.path == outfile.path
370
- end.returns(rval)
378
+ expect(Puppet::Util::Execution).to receive(executor) do |_,_,_,stdout,stderr|
379
+ expect(stdout.path).to eq(outfile.path)
380
+ expect(stderr.path).to eq(outfile.path)
381
+ rval
382
+ end
371
383
 
372
384
  Puppet::Util::Execution.execute('test command', :squelch => false, :combine => true)
373
385
  end
374
386
 
375
387
  it "should set stderr to the null device if combine is false" do
376
388
  outfile = Puppet::FileSystem::Uniquefile.new('stdout')
377
- Puppet::FileSystem::Uniquefile.stubs(:new).returns(outfile)
389
+ allow(Puppet::FileSystem::Uniquefile).to receive(:new).and_return(outfile)
378
390
 
379
- Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,stderr|
380
- stdout.path == outfile.path and stderr.path == null_file
381
- end.returns(rval)
391
+ expect(Puppet::Util::Execution).to receive(executor) do |_,_,_,stdout,stderr|
392
+ expect(stdout.path).to eq(outfile.path)
393
+ expect(stderr.path).to eq(null_file)
394
+ rval
395
+ end
382
396
 
383
397
  Puppet::Util::Execution.execute('test command', :squelch => false, :combine => false)
384
398
  end
385
399
 
386
400
  it "should combine stdout and stderr if combine is true" do
387
401
  outfile = Puppet::FileSystem::Uniquefile.new('stdout')
388
- Puppet::FileSystem::Uniquefile.stubs(:new).returns(outfile)
402
+ allow(Puppet::FileSystem::Uniquefile).to receive(:new).and_return(outfile)
389
403
 
390
- Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,stderr|
391
- stdout.path == outfile.path and stderr.path == outfile.path
392
- end.returns(rval)
404
+ expect(Puppet::Util::Execution).to receive(executor) do |_,_,_,stdout,stderr|
405
+ expect(stdout.path).to eq(outfile.path)
406
+ expect(stderr.path).to eq(outfile.path)
407
+ rval
408
+ end
393
409
 
394
410
  Puppet::Util::Execution.execute('test command', :combine => true)
395
411
  end
396
412
 
397
413
  it "should default combine to true when no options are specified" do
398
414
  outfile = Puppet::FileSystem::Uniquefile.new('stdout')
399
- Puppet::FileSystem::Uniquefile.stubs(:new).returns(outfile)
415
+ allow(Puppet::FileSystem::Uniquefile).to receive(:new).and_return(outfile)
400
416
 
401
- Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,stderr|
402
- stdout.path == outfile.path and stderr.path == outfile.path
403
- end.returns(rval)
417
+ expect(Puppet::Util::Execution).to receive(executor) do |_,_,_,stdout,stderr|
418
+ expect(stdout.path).to eq(outfile.path)
419
+ expect(stderr.path).to eq(outfile.path)
420
+ rval
421
+ end
404
422
 
405
423
  Puppet::Util::Execution.execute('test command')
406
424
  end
407
425
 
408
426
  it "should default combine to false when options are specified, but combine is not" do
409
427
  outfile = Puppet::FileSystem::Uniquefile.new('stdout')
410
- Puppet::FileSystem::Uniquefile.stubs(:new).returns(outfile)
428
+ allow(Puppet::FileSystem::Uniquefile).to receive(:new).and_return(outfile)
411
429
 
412
- Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,stderr|
413
- stdout.path == outfile.path and stderr.path == null_file
414
- end.returns(rval)
430
+ expect(Puppet::Util::Execution).to receive(executor) do |_,_,_,stdout,stderr|
431
+ expect(stdout.path).to eq(outfile.path)
432
+ expect(stderr.path).to eq(null_file)
433
+ rval
434
+ end
415
435
 
416
436
  Puppet::Util::Execution.execute('test command', :failonfail => false)
417
437
  end
418
438
 
419
439
  it "should default combine to false when an empty hash of options is specified" do
420
440
  outfile = Puppet::FileSystem::Uniquefile.new('stdout')
421
- Puppet::FileSystem::Uniquefile.stubs(:new).returns(outfile)
441
+ allow(Puppet::FileSystem::Uniquefile).to receive(:new).and_return(outfile)
422
442
 
423
- Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,stderr|
424
- stdout.path == outfile.path and stderr.path == null_file
425
- end.returns(rval)
443
+ expect(Puppet::Util::Execution).to receive(executor) do |_,_,_,stdout,stderr|
444
+ expect(stdout.path).to eq(outfile.path)
445
+ expect(stderr.path).to eq(null_file)
446
+ rval
447
+ end
426
448
 
427
449
  Puppet::Util::Execution.execute('test command', {})
428
450
  end
@@ -432,11 +454,11 @@ describe Puppet::Util::Execution do
432
454
 
433
455
  describe "on Windows", :if => Puppet.features.microsoft_windows? do
434
456
  it "should always close the process and thread handles" do
435
- Puppet::Util::Execution.stubs(:execute_windows).returns(proc_info_stub)
457
+ allow(Puppet::Util::Execution).to receive(:execute_windows).and_return(proc_info_stub)
436
458
 
437
- Puppet::Util::Windows::Process.expects(:wait_process).with(process_handle).raises('whatever')
438
- FFI::WIN32.expects(:CloseHandle).with(thread_handle)
439
- FFI::WIN32.expects(:CloseHandle).with(process_handle)
459
+ expect(Puppet::Util::Windows::Process).to receive(:wait_process).with(process_handle).and_raise('whatever')
460
+ expect(FFI::WIN32).to receive(:CloseHandle).with(thread_handle)
461
+ expect(FFI::WIN32).to receive(:CloseHandle).with(process_handle)
440
462
 
441
463
  expect { Puppet::Util::Execution.execute('test command') }.to raise_error(RuntimeError)
442
464
  end
@@ -444,9 +466,9 @@ describe Puppet::Util::Execution do
444
466
  it "should return the correct exit status even when exit status is greater than 256" do
445
467
  real_exit_status = 3010
446
468
 
447
- Puppet::Util::Execution.stubs(:execute_windows).returns(proc_info_stub)
469
+ allow(Puppet::Util::Execution).to receive(:execute_windows).and_return(proc_info_stub)
448
470
  stub_process_wait(real_exit_status)
449
- Puppet::Util::Execution.stubs(:exitstatus).returns(real_exit_status % 256) # The exitstatus is changed to be mod 256 so that ruby can fit it into 8 bits.
471
+ allow(Puppet::Util::Execution).to receive(:exitstatus).and_return(real_exit_status % 256) # The exitstatus is changed to be mod 256 so that ruby can fit it into 8 bits.
450
472
 
451
473
  expect(Puppet::Util::Execution.execute('test command', :failonfail => false).exitstatus).to eq(real_exit_status)
452
474
  end
@@ -454,7 +476,6 @@ describe Puppet::Util::Execution do
454
476
  end
455
477
 
456
478
  describe "#execute (posix locale)", :unless => Puppet.features.microsoft_windows? do
457
-
458
479
  before :each do
459
480
  # there is a danger here that ENV will be modified by exec_posix. Normally it would only affect the ENV
460
481
  # of a forked process, but, in some of the previous tests in this file we're stubbing Kernel.fork., which could
@@ -473,7 +494,6 @@ describe Puppet::Util::Execution do
473
494
  expect(cur_env.keys - @saved_env.keys).to eq([])
474
495
  end
475
496
 
476
-
477
497
  # build up a printf-style string that contains a command to get the value of an environment variable
478
498
  # from the operating system. We can substitute into this with the names of the desired environment variables later.
479
499
  get_env_var_cmd = 'echo $%s'
@@ -574,7 +594,6 @@ describe Puppet::Util::Execution do
574
594
  # ensure that after the exec, our temporary env is still intact
575
595
  expect(ENV[var]).to eq(user_sentinel_env[var])
576
596
  end
577
-
578
597
  end
579
598
  end
580
599
 
@@ -600,7 +619,6 @@ describe Puppet::Util::Execution do
600
619
  expect(ENV[var]).to eq(user_sentinel_env[var])
601
620
  end
602
621
  end
603
-
604
622
  end
605
623
  end
606
624
 
@@ -609,46 +627,54 @@ describe Puppet::Util::Execution do
609
627
  stub_process_wait(0)
610
628
 
611
629
  if Puppet.features.microsoft_windows?
612
- Puppet::Util::Execution.stubs(:execute_windows).returns(proc_info_stub)
630
+ allow(Puppet::Util::Execution).to receive(:execute_windows).and_return(proc_info_stub)
613
631
  else
614
- Puppet::Util::Execution.stubs(:execute_posix).returns(pid)
632
+ allow(Puppet::Util::Execution).to receive(:execute_posix).and_return(pid)
615
633
  end
616
634
  end
617
635
 
618
636
  it "should log if no uid or gid specified" do
619
- Puppet::Util::Execution.expects(:debug).with("Executing: 'echo hello'")
637
+ expect(Puppet::Util::Execution).to receive(:debug).with("Executing: 'echo hello'")
620
638
  Puppet::Util::Execution.execute('echo hello')
621
639
  end
640
+
622
641
  it "should log numeric uid if specified" do
623
- Puppet::Util::Execution.expects(:debug).with("Executing with uid=100: 'echo hello'")
642
+ expect(Puppet::Util::Execution).to receive(:debug).with("Executing with uid=100: 'echo hello'")
624
643
  Puppet::Util::Execution.execute('echo hello', {:uid => 100})
625
644
  end
645
+
626
646
  it "should log numeric gid if specified" do
627
- Puppet::Util::Execution.expects(:debug).with("Executing with gid=500: 'echo hello'")
647
+ expect(Puppet::Util::Execution).to receive(:debug).with("Executing with gid=500: 'echo hello'")
628
648
  Puppet::Util::Execution.execute('echo hello', {:gid => 500})
629
649
  end
650
+
630
651
  it "should log numeric uid and gid if specified" do
631
- Puppet::Util::Execution.expects(:debug).with("Executing with uid=100 gid=500: 'echo hello'")
652
+ expect(Puppet::Util::Execution).to receive(:debug).with("Executing with uid=100 gid=500: 'echo hello'")
632
653
  Puppet::Util::Execution.execute('echo hello', {:uid => 100, :gid => 500})
633
654
  end
655
+
634
656
  it "should log string uid if specified" do
635
- Puppet::Util::Execution.expects(:debug).with("Executing with uid=myuser: 'echo hello'")
657
+ expect(Puppet::Util::Execution).to receive(:debug).with("Executing with uid=myuser: 'echo hello'")
636
658
  Puppet::Util::Execution.execute('echo hello', {:uid => 'myuser'})
637
659
  end
660
+
638
661
  it "should log string gid if specified" do
639
- Puppet::Util::Execution.expects(:debug).with("Executing with gid=mygroup: 'echo hello'")
662
+ expect(Puppet::Util::Execution).to receive(:debug).with("Executing with gid=mygroup: 'echo hello'")
640
663
  Puppet::Util::Execution.execute('echo hello', {:gid => 'mygroup'})
641
664
  end
665
+
642
666
  it "should log string uid and gid if specified" do
643
- Puppet::Util::Execution.expects(:debug).with("Executing with uid=myuser gid=mygroup: 'echo hello'")
667
+ expect(Puppet::Util::Execution).to receive(:debug).with("Executing with uid=myuser gid=mygroup: 'echo hello'")
644
668
  Puppet::Util::Execution.execute('echo hello', {:uid => 'myuser', :gid => 'mygroup'})
645
669
  end
670
+
646
671
  it "should log numeric uid and string gid if specified" do
647
- Puppet::Util::Execution.expects(:debug).with("Executing with uid=100 gid=mygroup: 'echo hello'")
672
+ expect(Puppet::Util::Execution).to receive(:debug).with("Executing with uid=100 gid=mygroup: 'echo hello'")
648
673
  Puppet::Util::Execution.execute('echo hello', {:uid => 100, :gid => 'mygroup'})
649
674
  end
675
+
650
676
  it 'should redact commands in debug output when passed sensitive option' do
651
- Puppet::Util::Execution.expects(:debug).with("Executing: '[redacted]'")
677
+ expect(Puppet::Util::Execution).to receive(:debug).with("Executing: '[redacted]'")
652
678
  Puppet::Util::Execution.execute('echo hello', {:sensitive => true})
653
679
  end
654
680
  end
@@ -658,29 +684,27 @@ describe Puppet::Util::Execution do
658
684
  stub_process_wait(0)
659
685
 
660
686
  if Puppet.features.microsoft_windows?
661
- Puppet::Util::Execution.stubs(:execute_windows).returns(proc_info_stub)
687
+ allow(Puppet::Util::Execution).to receive(:execute_windows).and_return(proc_info_stub)
662
688
  else
663
- Puppet::Util::Execution.stubs(:execute_posix).returns(pid)
689
+ allow(Puppet::Util::Execution).to receive(:execute_posix).and_return(pid)
664
690
  end
665
691
  end
666
692
 
667
693
  it "should wait for the child process to exit" do
668
- Puppet::Util::Execution.stubs(:wait_for_output)
694
+ allow(Puppet::Util::Execution).to receive(:wait_for_output)
669
695
 
670
696
  Puppet::Util::Execution.execute('test command')
671
697
  end
672
698
 
673
699
  it "should close the stdin/stdout/stderr files used by the child" do
674
- stdin = mock 'file'
675
- stdout = mock 'file'
676
- stderr = mock 'file'
677
- [stdin, stdout, stderr].each {|io| io.expects(:close).at_least_once}
700
+ stdin = double('file')
701
+ stdout = double('file')
702
+ stderr = double('file')
703
+ [stdin, stdout, stderr].each {|io| expect(io).to receive(:close).at_least(:once)}
678
704
 
679
- File.expects(:open).
680
- times(3).
681
- returns(stdin).
682
- then.returns(stdout).
683
- then.returns(stderr)
705
+ expect(File).to receive(:open).
706
+ exactly(3).times().
707
+ and_return(stdin, stdout, stderr)
684
708
 
685
709
  Puppet::Util::Execution.execute('test command', {:squelch => true, :combine => false})
686
710
  end
@@ -689,7 +713,7 @@ describe Puppet::Util::Execution do
689
713
  context "reading the output" do
690
714
  before :each do
691
715
  r, w = IO.pipe
692
- IO.expects(:pipe).returns([r, w])
716
+ expect(IO).to receive(:pipe).and_return([r, w])
693
717
  w.write("My expected \u2744 command output")
694
718
  end
695
719
 
@@ -711,14 +735,14 @@ describe Puppet::Util::Execution do
711
735
  end
712
736
 
713
737
  it "should not read the output if squelch is true" do
714
- IO.expects(:pipe).never
738
+ expect(IO).not_to receive(:pipe)
715
739
 
716
740
  expect(Puppet::Util::Execution.execute('test command', :squelch => true)).to eq('')
717
741
  end
718
742
 
719
743
  it "should close the pipe used for output if squelch is false" do
720
744
  r, w = IO.pipe
721
- IO.expects(:pipe).returns([r, w])
745
+ expect(IO).to receive(:pipe).and_return([r, w])
722
746
 
723
747
  expect(Puppet::Util::Execution.execute('test command')).to eq("")
724
748
  expect(r.closed?)
@@ -727,12 +751,12 @@ describe Puppet::Util::Execution do
727
751
 
728
752
  it "should close the pipe used for output if squelch is false and an error is raised" do
729
753
  r, w = IO.pipe
730
- IO.expects(:pipe).returns([r, w])
754
+ expect(IO).to receive(:pipe).and_return([r, w])
731
755
 
732
756
  if Puppet.features.microsoft_windows?
733
- Puppet::Util::Execution.expects(:execute_windows).raises(Exception, 'execution failed')
757
+ expect(Puppet::Util::Execution).to receive(:execute_windows).and_raise(Exception, 'execution failed')
734
758
  else
735
- Puppet::Util::Execution.expects(:execute_posix).raises(Exception, 'execution failed')
759
+ expect(Puppet::Util::Execution).to receive(:execute_posix).and_raise(Exception, 'execution failed')
736
760
  end
737
761
 
738
762
  expect {
@@ -742,11 +766,12 @@ describe Puppet::Util::Execution do
742
766
  expect(w.closed?)
743
767
  end
744
768
  end
769
+
745
770
  describe "on Windows", :if => Puppet.features.microsoft_windows? do
746
771
  context "reading the output" do
747
772
  before :each do
748
773
  stdout = Puppet::FileSystem::Uniquefile.new('test')
749
- Puppet::FileSystem::Uniquefile.stubs(:new).returns(stdout)
774
+ allow(Puppet::FileSystem::Uniquefile).to receive(:new).and_return(stdout)
750
775
  stdout.write("My expected \u2744 command output")
751
776
  end
752
777
 
@@ -769,7 +794,7 @@ describe Puppet::Util::Execution do
769
794
 
770
795
  it "should not read the output if squelch is true" do
771
796
  stdout = Puppet::FileSystem::Uniquefile.new('test')
772
- Puppet::FileSystem::Uniquefile.stubs(:new).returns(stdout)
797
+ allow(Puppet::FileSystem::Uniquefile).to receive(:new).and_return(stdout)
773
798
  stdout.write("My expected command output")
774
799
 
775
800
  expect(Puppet::Util::Execution.execute('test command', :squelch => true)).to eq('')
@@ -778,7 +803,7 @@ describe Puppet::Util::Execution do
778
803
  it "should delete the file used for output if squelch is false" do
779
804
  stdout = Puppet::FileSystem::Uniquefile.new('test')
780
805
  path = stdout.path
781
- Puppet::FileSystem::Uniquefile.stubs(:new).returns(stdout)
806
+ allow(Puppet::FileSystem::Uniquefile).to receive(:new).and_return(stdout)
782
807
 
783
808
  Puppet::Util::Execution.execute('test command')
784
809
 
@@ -787,7 +812,7 @@ describe Puppet::Util::Execution do
787
812
 
788
813
  it "should not raise an error if the file is open" do
789
814
  stdout = Puppet::FileSystem::Uniquefile.new('test')
790
- Puppet::FileSystem::Uniquefile.stubs(:new).returns(stdout)
815
+ allow(Puppet::FileSystem::Uniquefile).to receive(:new).and_return(stdout)
791
816
 
792
817
  Puppet::Util::Execution.execute('test command')
793
818
  end
@@ -857,68 +882,68 @@ describe Puppet::Util::Execution do
857
882
 
858
883
  describe "#execpipe" do
859
884
  it "should execute a string as a string" do
860
- Puppet::Util::Execution.expects(:open).with('| echo hello 2>&1').returns('hello')
861
- Puppet::Util::Execution.expects(:exitstatus).returns(0)
885
+ expect(Puppet::Util::Execution).to receive(:open).with('| echo hello 2>&1').and_return('hello')
886
+ expect(Puppet::Util::Execution).to receive(:exitstatus).and_return(0)
862
887
  expect(Puppet::Util::Execution.execpipe('echo hello')).to eq('hello')
863
888
  end
864
889
 
865
890
  it "should print meaningful debug message for string argument" do
866
- Puppet::Util::Execution.expects(:debug).with("Executing 'echo hello'")
867
- Puppet::Util::Execution.expects(:open).with('| echo hello 2>&1').returns('hello')
868
- Puppet::Util::Execution.expects(:exitstatus).returns(0)
891
+ expect(Puppet::Util::Execution).to receive(:debug).with("Executing 'echo hello'")
892
+ expect(Puppet::Util::Execution).to receive(:open).with('| echo hello 2>&1').and_return('hello')
893
+ expect(Puppet::Util::Execution).to receive(:exitstatus).and_return(0)
869
894
  Puppet::Util::Execution.execpipe('echo hello')
870
895
  end
871
896
 
872
897
  it "should print meaningful debug message for array argument" do
873
- Puppet::Util::Execution.expects(:debug).with("Executing 'echo hello'")
874
- Puppet::Util::Execution.expects(:open).with('| echo hello 2>&1').returns('hello')
875
- Puppet::Util::Execution.expects(:exitstatus).returns(0)
898
+ expect(Puppet::Util::Execution).to receive(:debug).with("Executing 'echo hello'")
899
+ expect(Puppet::Util::Execution).to receive(:open).with('| echo hello 2>&1').and_return('hello')
900
+ expect(Puppet::Util::Execution).to receive(:exitstatus).and_return(0)
876
901
  Puppet::Util::Execution.execpipe(['echo','hello'])
877
902
  end
878
903
 
879
904
  it "should execute an array by pasting together with spaces" do
880
- Puppet::Util::Execution.expects(:open).with('| echo hello 2>&1').returns('hello')
881
- Puppet::Util::Execution.expects(:exitstatus).returns(0)
905
+ expect(Puppet::Util::Execution).to receive(:open).with('| echo hello 2>&1').and_return('hello')
906
+ expect(Puppet::Util::Execution).to receive(:exitstatus).and_return(0)
882
907
  expect(Puppet::Util::Execution.execpipe(['echo', 'hello'])).to eq('hello')
883
908
  end
884
909
 
885
910
  it "should fail if asked to fail, and the child does" do
886
- Puppet::Util::Execution.stubs(:open).with('| echo hello 2>&1').returns('error message')
887
- Puppet::Util::Execution.expects(:exitstatus).returns(1)
911
+ allow(Puppet::Util::Execution).to receive(:open).with('| echo hello 2>&1').and_return('error message')
912
+ expect(Puppet::Util::Execution).to receive(:exitstatus).and_return(1)
888
913
  expect {
889
914
  Puppet::Util::Execution.execpipe('echo hello')
890
915
  }.to raise_error Puppet::ExecutionFailure, /error message/
891
916
  end
892
917
 
893
918
  it "should not fail if asked not to fail, and the child does" do
894
- Puppet::Util::Execution.stubs(:open).returns('error message')
919
+ allow(Puppet::Util::Execution).to receive(:open).and_return('error message')
895
920
  expect(Puppet::Util::Execution.execpipe('echo hello', false)).to eq('error message')
896
921
  end
897
922
  end
898
923
 
899
924
  describe "execfail" do
900
925
  it "returns the executed command output" do
901
- Puppet::Util::Execution.stubs(:execute)
902
- .returns(Puppet::Util::Execution::ProcessOutput.new("process output", 0))
926
+ allow(Puppet::Util::Execution).to receive(:execute)
927
+ .and_return(Puppet::Util::Execution::ProcessOutput.new("process output", 0))
903
928
  expect(Puppet::Util::Execution.execfail('echo hello', Puppet::Error)).to eq('process output')
904
929
  end
905
930
 
906
931
  it "raises a caller-specified exception on failure with the backtrace" do
907
- Puppet::Util::Execution.stubs(:execute).raises(Puppet::ExecutionFailure, "failed to execute")
932
+ allow(Puppet::Util::Execution).to receive(:execute).and_raise(Puppet::ExecutionFailure, "failed to execute")
908
933
  expect {
909
934
  Puppet::Util::Execution.execfail("this will fail", Puppet::Error)
910
935
  }.to raise_error(Puppet::Error, /failed to execute/)
911
936
  end
912
937
 
913
938
  it "raises exceptions that don't extend ExecutionFailure" do
914
- Puppet::Util::Execution.stubs(:execute).raises(ArgumentError, "failed to execute")
939
+ allow(Puppet::Util::Execution).to receive(:execute).and_raise(ArgumentError, "failed to execute")
915
940
  expect {
916
941
  Puppet::Util::Execution.execfail("this will fail", Puppet::Error)
917
942
  }.to raise_error(ArgumentError, /failed to execute/)
918
943
  end
919
944
 
920
945
  it "raises a TypeError if the exception class is nil" do
921
- Puppet::Util::Execution.stubs(:execute).raises(Puppet::ExecutionFailure, "failed to execute")
946
+ allow(Puppet::Util::Execution).to receive(:execute).and_raise(Puppet::ExecutionFailure, "failed to execute")
922
947
  expect {
923
948
  Puppet::Util::Execution.execfail('echo hello', nil)
924
949
  }.to raise_error(TypeError, /exception class\/object expected/)