puppet 6.4.0-x64-mingw32 → 6.4.1-x64-mingw32

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