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

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

Potentially problematic release.


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

Files changed (748) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/Gemfile.lock +31 -27
  4. data/Guardfile.example +76 -0
  5. data/LICENSE +189 -4
  6. data/MAINTAINERS +47 -0
  7. data/README.md +3 -3
  8. data/lib/hiera/scope.rb +0 -7
  9. data/lib/puppet.rb +6 -5
  10. data/lib/puppet/application.rb +3 -3
  11. data/lib/puppet/application/cert.rb +2 -2
  12. data/lib/puppet/application/device.rb +83 -109
  13. data/lib/puppet/application/filebucket.rb +1 -10
  14. data/lib/puppet/application/ssl.rb +0 -2
  15. data/lib/puppet/configurer.rb +9 -10
  16. data/lib/puppet/confine/false.rb +1 -7
  17. data/lib/puppet/confine/true.rb +1 -7
  18. data/lib/puppet/defaults.rb +39 -51
  19. data/lib/puppet/forge.rb +1 -4
  20. data/lib/puppet/functions/abs.rb +1 -1
  21. data/lib/puppet/functions/call.rb +1 -2
  22. data/lib/puppet/functions/new.rb +1 -1
  23. data/lib/puppet/indirector/request.rb +15 -26
  24. data/lib/puppet/network/http/connection.rb +12 -32
  25. data/lib/puppet/network/http/factory.rb +0 -5
  26. data/lib/puppet/pal/catalog_compiler.rb +96 -0
  27. data/lib/puppet/pal/compiler.rb +221 -0
  28. data/lib/puppet/pal/function_signature.rb +52 -0
  29. data/lib/puppet/pal/json_catalog_encoder.rb +67 -0
  30. data/lib/puppet/pal/pal_api.rb +15 -0
  31. data/lib/puppet/pal/pal_impl.rb +523 -0
  32. data/lib/puppet/pal/plan_signature.rb +71 -0
  33. data/lib/puppet/pal/script_compiler.rb +71 -0
  34. data/lib/puppet/pal/task_signature.rb +58 -0
  35. data/lib/puppet/parser/functions/generate.rb +7 -6
  36. data/lib/puppet/plugins/configuration.rb +5 -1
  37. data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -1
  38. data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -3
  39. data/lib/puppet/pops/issues.rb +0 -4
  40. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +4 -60
  41. data/lib/puppet/pops/model/factory.rb +4 -38
  42. data/lib/puppet/pops/model/pn_transformer.rb +0 -5
  43. data/lib/puppet/pops/parser/egrammar.ra +2 -2
  44. data/lib/puppet/pops/parser/heredoc_support.rb +7 -17
  45. data/lib/puppet/pops/parser/lexer2.rb +1 -6
  46. data/lib/puppet/pops/parser/locator.rb +86 -106
  47. data/lib/puppet/pops/parser/parser_support.rb +2 -11
  48. data/lib/puppet/pops/types/string_converter.rb +7 -2
  49. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  50. data/lib/puppet/pops/types/types.rb +3 -5
  51. data/lib/puppet/pops/validation/checker4_0.rb +13 -0
  52. data/lib/puppet/provider.rb +2 -1
  53. data/lib/puppet/provider/exec.rb +6 -1
  54. data/lib/puppet/provider/file/windows.rb +1 -49
  55. data/lib/puppet/provider/group/windows_adsi.rb +1 -4
  56. data/lib/puppet/provider/package.rb +0 -2
  57. data/lib/puppet/provider/package/dpkg.rb +2 -15
  58. data/lib/puppet/provider/package/gem.rb +42 -102
  59. data/lib/puppet/provider/package/pip.rb +111 -135
  60. data/lib/puppet/provider/package/pip3.rb +1 -1
  61. data/lib/puppet/provider/package/pkgng.rb +37 -21
  62. data/lib/puppet/provider/package/puppet_gem.rb +1 -1
  63. data/lib/puppet/provider/package/rpm.rb +16 -27
  64. data/lib/puppet/provider/package/windows.rb +1 -5
  65. data/lib/puppet/provider/package/yum.rb +1 -2
  66. data/lib/puppet/provider/service/systemd.rb +17 -0
  67. data/lib/puppet/provider/service/upstart.rb +5 -17
  68. data/lib/puppet/provider/service/windows.rb +8 -3
  69. data/lib/puppet/provider/user/directoryservice.rb +4 -16
  70. data/lib/puppet/provider/user/useradd.rb +13 -16
  71. data/lib/puppet/resource.rb +3 -1
  72. data/lib/puppet/rest/client.rb +83 -0
  73. data/lib/puppet/rest/route.rb +1 -1
  74. data/lib/puppet/settings.rb +5 -10
  75. data/lib/puppet/settings/server_list_setting.rb +0 -9
  76. data/lib/puppet/ssl/host.rb +11 -0
  77. data/lib/puppet/ssl/validator/default_validator.rb +0 -31
  78. data/lib/puppet/syntax_checkers/epp.rb +34 -0
  79. data/lib/puppet/syntax_checkers/pp.rb +34 -0
  80. data/lib/puppet/transaction.rb +7 -12
  81. data/lib/puppet/transaction/event_manager.rb +5 -1
  82. data/lib/puppet/transaction/resource_harness.rb +0 -1
  83. data/lib/puppet/type.rb +6 -0
  84. data/lib/puppet/type/exec.rb +5 -27
  85. data/lib/puppet/type/file/mode.rb +1 -6
  86. data/lib/puppet/type/file/source.rb +1 -0
  87. data/lib/puppet/type/filebucket.rb +8 -12
  88. data/lib/puppet/type/package.rb +11 -44
  89. data/lib/puppet/type/schedule.rb +0 -4
  90. data/lib/puppet/type/service.rb +12 -0
  91. data/lib/puppet/type/user.rb +1 -1
  92. data/lib/puppet/util/command_line.rb +1 -5
  93. data/lib/puppet/util/connection.rb +6 -15
  94. data/lib/puppet/util/http_proxy.rb +2 -3
  95. data/lib/puppet/util/log.rb +2 -7
  96. data/lib/puppet/util/pidlock.rb +1 -15
  97. data/lib/puppet/util/windows/process.rb +5 -73
  98. data/lib/puppet/util/windows/registry.rb +1 -7
  99. data/lib/puppet/util/windows/security.rb +8 -29
  100. data/lib/puppet/util/windows/service.rb +33 -27
  101. data/lib/puppet/util/windows/user.rb +4 -14
  102. data/lib/puppet/version.rb +1 -1
  103. data/lib/puppet_pal.rb +5 -1132
  104. data/locales/ja/puppet.po +297 -363
  105. data/locales/puppet.pot +445 -517
  106. data/man/man5/puppet.conf.5 +12 -20
  107. data/man/man8/puppet-agent.8 +1 -1
  108. data/man/man8/puppet-apply.8 +1 -1
  109. data/man/man8/puppet-catalog.8 +1 -1
  110. data/man/man8/puppet-config.8 +1 -1
  111. data/man/man8/puppet-describe.8 +1 -1
  112. data/man/man8/puppet-device.8 +1 -1
  113. data/man/man8/puppet-doc.8 +1 -1
  114. data/man/man8/puppet-epp.8 +1 -1
  115. data/man/man8/puppet-facts.8 +1 -1
  116. data/man/man8/puppet-filebucket.8 +2 -6
  117. data/man/man8/puppet-generate.8 +1 -1
  118. data/man/man8/puppet-help.8 +1 -1
  119. data/man/man8/puppet-key.8 +1 -1
  120. data/man/man8/puppet-lookup.8 +1 -1
  121. data/man/man8/puppet-man.8 +1 -1
  122. data/man/man8/puppet-module.8 +1 -1
  123. data/man/man8/puppet-node.8 +1 -1
  124. data/man/man8/puppet-parser.8 +1 -1
  125. data/man/man8/puppet-plugin.8 +1 -1
  126. data/man/man8/puppet-report.8 +1 -1
  127. data/man/man8/puppet-resource.8 +1 -1
  128. data/man/man8/puppet-script.8 +1 -1
  129. data/man/man8/puppet-ssl.8 +1 -1
  130. data/man/man8/puppet-status.8 +1 -1
  131. data/man/man8/puppet.8 +2 -2
  132. data/spec/fixtures/unit/provider/package/pkgng/pkg.query +7 -1
  133. data/spec/fixtures/unit/provider/package/pkgng/pkg.query.zsh +1 -0
  134. data/spec/integration/agent/logging_spec.rb +7 -5
  135. data/spec/integration/application/apply_spec.rb +16 -18
  136. data/spec/integration/application/doc_spec.rb +2 -1
  137. data/spec/integration/application/lookup_spec.rb +5 -5
  138. data/spec/integration/configurer_spec.rb +6 -5
  139. data/spec/integration/defaults_spec.rb +6 -5
  140. data/spec/integration/directory_environments_spec.rb +1 -1
  141. data/spec/integration/faces/config_spec.rb +4 -3
  142. data/spec/integration/faces/documentation_spec.rb +1 -0
  143. data/spec/integration/faces/plugin_spec.rb +1 -1
  144. data/spec/integration/file_bucket/file_spec.rb +4 -2
  145. data/spec/integration/file_serving/content_spec.rb +1 -0
  146. data/spec/integration/file_serving/fileset_spec.rb +1 -0
  147. data/spec/integration/file_serving/metadata_spec.rb +1 -0
  148. data/spec/integration/file_serving/terminus_helper_spec.rb +1 -0
  149. data/spec/integration/indirector/catalog/compiler_spec.rb +11 -10
  150. data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
  151. data/spec/integration/indirector/facts/facter_spec.rb +5 -4
  152. data/spec/integration/indirector/file_content/file_server_spec.rb +8 -7
  153. data/spec/integration/indirector/file_metadata/file_server_spec.rb +8 -7
  154. data/spec/integration/network/authconfig_spec.rb +24 -23
  155. data/spec/integration/network/formats_spec.rb +1 -0
  156. data/spec/integration/node/environment_spec.rb +1 -0
  157. data/spec/integration/node/facts_spec.rb +10 -9
  158. data/spec/integration/node_spec.rb +7 -6
  159. data/spec/integration/parser/catalog_spec.rb +5 -1
  160. data/spec/integration/parser/collection_spec.rb +2 -1
  161. data/spec/integration/parser/compiler_spec.rb +6 -6
  162. data/spec/integration/parser/scope_spec.rb +1 -1
  163. data/spec/integration/parser/undef_param_spec.rb +1 -1
  164. data/spec/integration/provider/service/init_spec.rb +5 -4
  165. data/spec/integration/provider/service/systemd_spec.rb +2 -0
  166. data/spec/integration/provider/service/windows_spec.rb +2 -1
  167. data/spec/integration/reference/providers_spec.rb +2 -1
  168. data/spec/integration/reports_spec.rb +2 -1
  169. data/spec/integration/resource/catalog_spec.rb +17 -14
  170. data/spec/integration/resource/type_collection_spec.rb +5 -4
  171. data/spec/integration/ssl/certificate_request_spec.rb +1 -0
  172. data/spec/integration/ssl/host_spec.rb +2 -1
  173. data/spec/integration/ssl/key_spec.rb +1 -0
  174. data/spec/integration/test/test_helper_spec.rb +1 -0
  175. data/spec/integration/transaction/report_spec.rb +11 -6
  176. data/spec/integration/transaction_spec.rb +19 -18
  177. data/spec/integration/type/exec_spec.rb +1 -0
  178. data/spec/integration/type/file_spec.rb +33 -13
  179. data/spec/integration/type/package_spec.rb +24 -20
  180. data/spec/integration/type/tidy_spec.rb +2 -1
  181. data/spec/integration/type_spec.rb +1 -0
  182. data/spec/integration/util/autoload_spec.rb +2 -1
  183. data/spec/integration/util/rdoc/parser_spec.rb +1 -0
  184. data/spec/integration/util/settings_spec.rb +1 -0
  185. data/spec/integration/util/windows/adsi_spec.rb +5 -3
  186. data/spec/integration/util/windows/principal_spec.rb +1 -0
  187. data/spec/integration/util/windows/process_spec.rb +6 -4
  188. data/spec/integration/util/windows/registry_spec.rb +51 -93
  189. data/spec/integration/util/windows/security_spec.rb +4 -2
  190. data/spec/integration/util/windows/user_spec.rb +20 -37
  191. data/spec/integration/util_spec.rb +7 -4
  192. data/spec/lib/puppet_spec/compiler.rb +1 -1
  193. data/spec/lib/puppet_spec/files.rb +1 -0
  194. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
  195. data/spec/lib/puppet_spec/scope.rb +2 -1
  196. data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
  197. data/spec/shared_behaviours/file_server_terminus.rb +9 -8
  198. data/spec/shared_behaviours/file_serving.rb +8 -6
  199. data/spec/shared_behaviours/file_serving_model.rb +5 -3
  200. data/spec/shared_behaviours/hiera_indirections.rb +4 -3
  201. data/spec/shared_behaviours/iterative_functions.rb +1 -0
  202. data/spec/shared_behaviours/memory_terminus.rb +2 -2
  203. data/spec/shared_examples/rhel_package_provider.rb +70 -112
  204. data/spec/spec_helper.rb +2 -11
  205. data/spec/unit/agent/disabler_spec.rb +5 -4
  206. data/spec/unit/agent/locker_spec.rb +13 -12
  207. data/spec/unit/agent_spec.rb +85 -80
  208. data/spec/unit/application/agent_spec.rb +93 -88
  209. data/spec/unit/application/apply_spec.rb +83 -82
  210. data/spec/unit/application/config_spec.rb +1 -0
  211. data/spec/unit/application/describe_spec.rb +7 -6
  212. data/spec/unit/application/device_spec.rb +419 -395
  213. data/spec/unit/application/doc_spec.rb +46 -44
  214. data/spec/unit/application/face_base_spec.rb +62 -61
  215. data/spec/unit/application/facts_spec.rb +4 -3
  216. data/spec/unit/application/filebucket_spec.rb +74 -66
  217. data/spec/unit/application/indirection_base_spec.rb +6 -8
  218. data/spec/unit/application/lookup_spec.rb +26 -26
  219. data/spec/unit/application/resource_spec.rb +48 -42
  220. data/spec/unit/application/ssl_spec.rb +3 -8
  221. data/spec/unit/application_spec.rb +98 -86
  222. data/spec/unit/capability_spec.rb +6 -6
  223. data/spec/unit/certificate_factory_spec.rb +5 -3
  224. data/spec/unit/configurer/downloader_spec.rb +21 -20
  225. data/spec/unit/configurer/fact_handler_spec.rb +3 -2
  226. data/spec/unit/configurer/plugin_handler_spec.rb +8 -41
  227. data/spec/unit/configurer_spec.rb +198 -194
  228. data/spec/unit/confine/exists_spec.rb +15 -17
  229. data/spec/unit/confine/false_spec.rb +6 -32
  230. data/spec/unit/confine/feature_spec.rb +5 -7
  231. data/spec/unit/confine/true_spec.rb +6 -32
  232. data/spec/unit/confine/variable_spec.rb +15 -14
  233. data/spec/unit/confine_collection_spec.rb +29 -28
  234. data/spec/unit/confine_spec.rb +14 -13
  235. data/spec/unit/confiner_spec.rb +11 -10
  236. data/spec/unit/context/trusted_information_spec.rb +1 -1
  237. data/spec/unit/daemon_spec.rb +36 -35
  238. data/spec/unit/data_providers/function_data_provider_spec.rb +1 -0
  239. data/spec/unit/data_providers/hiera_data_provider_spec.rb +1 -0
  240. data/spec/unit/datatypes_spec.rb +4 -3
  241. data/spec/unit/defaults_spec.rb +27 -18
  242. data/spec/unit/environments_spec.rb +7 -7
  243. data/spec/unit/etc_spec.rb +32 -30
  244. data/spec/unit/external/pson_spec.rb +1 -0
  245. data/spec/unit/face/catalog_spec.rb +1 -0
  246. data/spec/unit/face/config_spec.rb +35 -31
  247. data/spec/unit/face/epp_face_spec.rb +4 -3
  248. data/spec/unit/face/facts_spec.rb +6 -5
  249. data/spec/unit/face/generate_spec.rb +5 -4
  250. data/spec/unit/face/help_spec.rb +8 -7
  251. data/spec/unit/face/key_spec.rb +1 -0
  252. data/spec/unit/face/man_spec.rb +2 -1
  253. data/spec/unit/face/module/install_spec.rb +5 -3
  254. data/spec/unit/face/module/list_spec.rb +12 -2
  255. data/spec/unit/face/module/search_spec.rb +9 -11
  256. data/spec/unit/face/module/uninstall_spec.rb +8 -4
  257. data/spec/unit/face/node_spec.rb +24 -23
  258. data/spec/unit/face/parser_spec.rb +18 -3
  259. data/spec/unit/face/plugin_spec.rb +9 -36
  260. data/spec/unit/face/status_spec.rb +1 -0
  261. data/spec/unit/file_bucket/dipper_spec.rb +20 -24
  262. data/spec/unit/file_bucket/file_spec.rb +2 -0
  263. data/spec/unit/file_serving/base_spec.rb +15 -14
  264. data/spec/unit/file_serving/configuration/parser_spec.rb +28 -27
  265. data/spec/unit/file_serving/configuration_spec.rb +66 -63
  266. data/spec/unit/file_serving/content_spec.rb +11 -10
  267. data/spec/unit/file_serving/fileset_spec.rb +58 -63
  268. data/spec/unit/file_serving/http_metadata_spec.rb +7 -8
  269. data/spec/unit/file_serving/metadata_spec.rb +36 -36
  270. data/spec/unit/file_serving/mount/file_spec.rb +32 -31
  271. data/spec/unit/file_serving/mount/locales_spec.rb +24 -23
  272. data/spec/unit/file_serving/mount/modules_spec.rb +15 -14
  273. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +24 -23
  274. data/spec/unit/file_serving/mount/plugins_spec.rb +24 -23
  275. data/spec/unit/file_serving/mount/tasks_spec.rb +15 -14
  276. data/spec/unit/file_serving/mount_spec.rb +1 -0
  277. data/spec/unit/file_serving/terminus_helper_spec.rb +42 -37
  278. data/spec/unit/file_serving/terminus_selector_spec.rb +13 -12
  279. data/spec/unit/file_system/uniquefile_spec.rb +4 -4
  280. data/spec/unit/file_system_spec.rb +2 -2
  281. data/spec/unit/forge/errors_spec.rb +1 -1
  282. data/spec/unit/forge/forge_spec.rb +16 -17
  283. data/spec/unit/forge/module_release_spec.rb +18 -18
  284. data/spec/unit/forge/repository_spec.rb +30 -29
  285. data/spec/unit/forge_spec.rb +11 -15
  286. data/spec/unit/functions/binary_file_spec.rb +3 -3
  287. data/spec/unit/functions/contain_spec.rb +2 -0
  288. data/spec/unit/functions/defined_spec.rb +1 -0
  289. data/spec/unit/functions/epp_spec.rb +2 -2
  290. data/spec/unit/functions/find_file_spec.rb +7 -7
  291. data/spec/unit/functions/include_spec.rb +4 -0
  292. data/spec/unit/functions/lookup_fixture_spec.rb +1 -0
  293. data/spec/unit/functions/lookup_spec.rb +2 -1
  294. data/spec/unit/functions/module_directory_spec.rb +12 -12
  295. data/spec/unit/functions/new_spec.rb +0 -15
  296. data/spec/unit/functions/require_spec.rb +3 -0
  297. data/spec/unit/functions/shared.rb +8 -5
  298. data/spec/unit/functions/versioncmp_spec.rb +2 -1
  299. data/spec/unit/functions4_spec.rb +10 -9
  300. data/spec/unit/gettext/config_spec.rb +4 -4
  301. data/spec/unit/gettext/module_loading_spec.rb +7 -7
  302. data/spec/unit/graph/rb_tree_map_spec.rb +2 -0
  303. data/spec/unit/graph/relationship_graph_spec.rb +2 -1
  304. data/spec/unit/graph/simple_graph_spec.rb +10 -9
  305. data/spec/unit/hiera/scope_spec.rb +0 -7
  306. data/spec/unit/hiera_puppet_spec.rb +20 -20
  307. data/spec/unit/indirector/catalog/compiler_spec.rb +149 -147
  308. data/spec/unit/indirector/catalog/json_spec.rb +2 -1
  309. data/spec/unit/indirector/catalog/msgpack_spec.rb +1 -0
  310. data/spec/unit/indirector/catalog/rest_spec.rb +1 -0
  311. data/spec/unit/indirector/catalog/store_configs_spec.rb +1 -0
  312. data/spec/unit/indirector/catalog/yaml_spec.rb +1 -0
  313. data/spec/unit/indirector/certificate/file_spec.rb +1 -0
  314. data/spec/unit/indirector/certificate/rest_spec.rb +10 -8
  315. data/spec/unit/indirector/certificate_request/file_spec.rb +1 -0
  316. data/spec/unit/indirector/certificate_request/rest_spec.rb +1 -0
  317. data/spec/unit/indirector/direct_file_server_spec.rb +18 -17
  318. data/spec/unit/indirector/envelope_spec.rb +2 -1
  319. data/spec/unit/indirector/exec_spec.rb +5 -4
  320. data/spec/unit/indirector/face_spec.rb +9 -9
  321. data/spec/unit/indirector/facts/facter_spec.rb +43 -37
  322. data/spec/unit/indirector/facts/network_device_spec.rb +9 -8
  323. data/spec/unit/indirector/facts/rest_spec.rb +8 -7
  324. data/spec/unit/indirector/facts/store_configs_spec.rb +1 -0
  325. data/spec/unit/indirector/facts/yaml_spec.rb +1 -0
  326. data/spec/unit/indirector/file_bucket_file/file_spec.rb +4 -3
  327. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +1 -0
  328. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +5 -4
  329. data/spec/unit/indirector/file_content/file_server_spec.rb +1 -0
  330. data/spec/unit/indirector/file_content/file_spec.rb +1 -0
  331. data/spec/unit/indirector/file_content/rest_spec.rb +1 -0
  332. data/spec/unit/indirector/file_content/selector_spec.rb +1 -0
  333. data/spec/unit/indirector/file_metadata/file_server_spec.rb +1 -0
  334. data/spec/unit/indirector/file_metadata/file_spec.rb +13 -12
  335. data/spec/unit/indirector/file_metadata/rest_spec.rb +1 -0
  336. data/spec/unit/indirector/file_metadata/selector_spec.rb +1 -0
  337. data/spec/unit/indirector/file_server_spec.rb +87 -87
  338. data/spec/unit/indirector/indirection_spec.rb +226 -242
  339. data/spec/unit/indirector/json_spec.rb +9 -7
  340. data/spec/unit/indirector/key/file_spec.rb +22 -21
  341. data/spec/unit/indirector/memory_spec.rb +7 -6
  342. data/spec/unit/indirector/msgpack_spec.rb +9 -7
  343. data/spec/unit/indirector/node/exec_spec.rb +3 -2
  344. data/spec/unit/indirector/node/memory_spec.rb +4 -2
  345. data/spec/unit/indirector/node/msgpack_spec.rb +1 -0
  346. data/spec/unit/indirector/node/plain_spec.rb +4 -2
  347. data/spec/unit/indirector/node/rest_spec.rb +1 -0
  348. data/spec/unit/indirector/node/store_configs_spec.rb +1 -0
  349. data/spec/unit/indirector/node/yaml_spec.rb +1 -0
  350. data/spec/unit/indirector/none_spec.rb +5 -5
  351. data/spec/unit/indirector/plain_spec.rb +8 -7
  352. data/spec/unit/indirector/report/msgpack_spec.rb +1 -0
  353. data/spec/unit/indirector/report/processor_spec.rb +22 -21
  354. data/spec/unit/indirector/report/rest_spec.rb +12 -11
  355. data/spec/unit/indirector/report/yaml_spec.rb +1 -0
  356. data/spec/unit/indirector/request_spec.rb +12 -11
  357. data/spec/unit/indirector/resource/ral_spec.rb +54 -47
  358. data/spec/unit/indirector/resource/store_configs_spec.rb +1 -0
  359. data/spec/unit/indirector/rest_spec.rb +110 -113
  360. data/spec/unit/indirector/ssl_file_spec.rb +65 -64
  361. data/spec/unit/indirector/status/local_spec.rb +1 -0
  362. data/spec/unit/indirector/status/rest_spec.rb +1 -0
  363. data/spec/unit/indirector/store_configs_spec.rb +1 -0
  364. data/spec/unit/indirector/terminus_spec.rb +27 -27
  365. data/spec/unit/indirector/yaml_spec.rb +6 -5
  366. data/spec/unit/indirector_spec.rb +2 -1
  367. data/spec/unit/info_service_spec.rb +1 -1
  368. data/spec/unit/interface/action_builder_spec.rb +1 -0
  369. data/spec/unit/interface/action_manager_spec.rb +1 -0
  370. data/spec/unit/interface/action_spec.rb +3 -2
  371. data/spec/unit/interface/documentation_spec.rb +1 -0
  372. data/spec/unit/interface/face_collection_spec.rb +12 -19
  373. data/spec/unit/interface_spec.rb +3 -3
  374. data/spec/unit/man_spec.rb +4 -3
  375. data/spec/unit/module_spec.rb +51 -46
  376. data/spec/unit/module_tool/applications/installer_spec.rb +11 -10
  377. data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
  378. data/spec/unit/module_tool/applications/uninstaller_spec.rb +2 -1
  379. data/spec/unit/module_tool/applications/unpacker_spec.rb +13 -13
  380. data/spec/unit/module_tool/applications/upgrader_spec.rb +5 -5
  381. data/spec/unit/module_tool/install_directory_spec.rb +8 -8
  382. data/spec/unit/module_tool/installed_modules_spec.rb +3 -3
  383. data/spec/unit/module_tool/tar/gnu_spec.rb +6 -6
  384. data/spec/unit/module_tool/tar/mini_spec.rb +12 -12
  385. data/spec/unit/module_tool/tar_spec.rb +13 -12
  386. data/spec/unit/module_tool_spec.rb +12 -7
  387. data/spec/unit/network/auth_config_parser_spec.rb +13 -11
  388. data/spec/unit/network/authconfig_spec.rb +18 -17
  389. data/spec/unit/network/authorization_spec.rb +5 -4
  390. data/spec/unit/network/authstore_spec.rb +1 -0
  391. data/spec/unit/network/format_handler_spec.rb +1 -0
  392. data/spec/unit/network/format_spec.rb +10 -9
  393. data/spec/unit/network/format_support_spec.rb +29 -28
  394. data/spec/unit/network/formats_spec.rb +5 -4
  395. data/spec/unit/network/http/api/indirected_routes_spec.rb +29 -24
  396. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +2 -2
  397. data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -1
  398. data/spec/unit/network/http/api/master/v3/environments_spec.rb +7 -6
  399. data/spec/unit/network/http/api_spec.rb +2 -0
  400. data/spec/unit/network/http/compression_spec.rb +22 -21
  401. data/spec/unit/network/http/connection_spec.rb +121 -30
  402. data/spec/unit/network/http/factory_spec.rb +6 -11
  403. data/spec/unit/network/http/handler_spec.rb +18 -9
  404. data/spec/unit/network/http/nocache_pool_spec.rb +7 -6
  405. data/spec/unit/network/http/pool_spec.rb +29 -28
  406. data/spec/unit/network/http/request_spec.rb +2 -0
  407. data/spec/unit/network/http/response_spec.rb +13 -11
  408. data/spec/unit/network/http/route_spec.rb +1 -0
  409. data/spec/unit/network/http/session_spec.rb +2 -1
  410. data/spec/unit/network/http/site_spec.rb +1 -0
  411. data/spec/unit/network/http_pool_spec.rb +9 -18
  412. data/spec/unit/network/http_spec.rb +1 -0
  413. data/spec/unit/network/resolver_spec.rb +26 -25
  414. data/spec/unit/network/rights_spec.rb +53 -52
  415. data/spec/unit/node/environment_spec.rb +15 -14
  416. data/spec/unit/node/facts_spec.rb +7 -5
  417. data/spec/unit/node_spec.rb +10 -4
  418. data/spec/unit/other/selinux_spec.rb +1 -0
  419. data/spec/unit/parameter/boolean_spec.rb +2 -1
  420. data/spec/unit/parameter/package_options_spec.rb +2 -1
  421. data/spec/unit/parameter/path_spec.rb +1 -0
  422. data/spec/unit/parameter/value_collection_spec.rb +1 -0
  423. data/spec/unit/parameter/value_spec.rb +1 -0
  424. data/spec/unit/parameter_spec.rb +9 -9
  425. data/spec/unit/parser/ast/block_expression_spec.rb +8 -6
  426. data/spec/unit/parser/ast/leaf_spec.rb +21 -20
  427. data/spec/unit/parser/compiler_spec.rb +96 -84
  428. data/spec/unit/parser/environment_compiler_spec.rb +8 -7
  429. data/spec/unit/parser/files_spec.rb +1 -0
  430. data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
  431. data/spec/unit/parser/functions/digest_spec.rb +1 -0
  432. data/spec/unit/parser/functions/fail_spec.rb +2 -1
  433. data/spec/unit/parser/functions/file_spec.rb +14 -13
  434. data/spec/unit/parser/functions/fqdn_rand_spec.rb +6 -5
  435. data/spec/unit/parser/functions/generate_spec.rb +8 -7
  436. data/spec/unit/parser/functions/inline_template_spec.rb +1 -0
  437. data/spec/unit/parser/functions/regsubst_spec.rb +1 -0
  438. data/spec/unit/parser/functions/scanf_spec.rb +1 -0
  439. data/spec/unit/parser/functions/shellquote_spec.rb +1 -0
  440. data/spec/unit/parser/functions/split_spec.rb +1 -0
  441. data/spec/unit/parser/functions/sprintf_spec.rb +1 -0
  442. data/spec/unit/parser/functions/tag_spec.rb +2 -1
  443. data/spec/unit/parser/functions/tagged_spec.rb +3 -2
  444. data/spec/unit/parser/functions/template_spec.rb +13 -13
  445. data/spec/unit/parser/functions/versioncmp_spec.rb +2 -1
  446. data/spec/unit/parser/functions_spec.rb +7 -6
  447. data/spec/unit/parser/relationship_spec.rb +1 -0
  448. data/spec/unit/parser/resource_spec.rb +42 -42
  449. data/spec/unit/parser/scope_spec.rb +35 -39
  450. data/spec/unit/parser/templatewrapper_spec.rb +12 -11
  451. data/spec/unit/parser/type_loader_spec.rb +19 -17
  452. data/spec/unit/pops/adaptable_spec.rb +1 -0
  453. data/spec/unit/pops/benchmark_spec.rb +1 -0
  454. data/spec/unit/pops/evaluator/access_ops_spec.rb +1 -0
  455. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +1 -0
  456. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -0
  457. data/spec/unit/pops/evaluator/collections_ops_spec.rb +1 -0
  458. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +1 -0
  459. data/spec/unit/pops/evaluator/conditionals_spec.rb +1 -0
  460. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +47 -10
  461. data/spec/unit/pops/evaluator/logical_ops_spec.rb +1 -0
  462. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +1 -0
  463. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +1 -0
  464. data/spec/unit/pops/evaluator/variables_spec.rb +1 -0
  465. data/spec/unit/pops/factory_spec.rb +4 -3
  466. data/spec/unit/pops/issues_spec.rb +20 -19
  467. data/spec/unit/pops/loaders/loader_spec.rb +4 -8
  468. data/spec/unit/pops/loaders/loaders_spec.rb +31 -101
  469. data/spec/unit/pops/lookup/context_spec.rb +1 -0
  470. data/spec/unit/pops/lookup/interpolation_spec.rb +3 -2
  471. data/spec/unit/pops/merge_strategy_spec.rb +1 -0
  472. data/spec/unit/pops/migration_spec.rb +5 -3
  473. data/spec/unit/pops/model/model_spec.rb +1 -0
  474. data/spec/unit/pops/model/pn_transformer_spec.rb +1 -4
  475. data/spec/unit/pops/parser/locator_spec.rb +6 -48
  476. data/spec/unit/pops/parser/parse_application_spec.rb +1 -0
  477. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +1 -0
  478. data/spec/unit/pops/parser/parse_calls_spec.rb +1 -0
  479. data/spec/unit/pops/parser/parse_capabilities_spec.rb +1 -0
  480. data/spec/unit/pops/parser/parse_conditionals_spec.rb +1 -0
  481. data/spec/unit/pops/parser/parse_containers_spec.rb +1 -0
  482. data/spec/unit/pops/parser/parse_heredoc_spec.rb +15 -111
  483. data/spec/unit/pops/parser/parse_plan_spec.rb +1 -0
  484. data/spec/unit/pops/parser/parse_resource_spec.rb +1 -0
  485. data/spec/unit/pops/parser/parse_site_spec.rb +1 -0
  486. data/spec/unit/pops/parser/pn_parser_spec.rb +1 -0
  487. data/spec/unit/pops/pn_spec.rb +1 -0
  488. data/spec/unit/pops/resource/resource_type_impl_spec.rb +1 -0
  489. data/spec/unit/pops/serialization/serialization_spec.rb +1 -1
  490. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  491. data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
  492. data/spec/unit/pops/types/ruby_generator_spec.rb +2 -2
  493. data/spec/unit/pops/types/string_converter_spec.rb +5 -1
  494. data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
  495. data/spec/unit/pops/types/type_calculator_spec.rb +30 -30
  496. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +0 -9
  497. data/spec/unit/pops/types/type_parser_spec.rb +13 -13
  498. data/spec/unit/pops/validator/validator_spec.rb +2 -1
  499. data/spec/unit/pops/visitor_spec.rb +1 -0
  500. data/spec/unit/property/boolean_spec.rb +1 -1
  501. data/spec/unit/property/ensure_spec.rb +1 -0
  502. data/spec/unit/property/keyvalue_spec.rb +34 -32
  503. data/spec/unit/property/list_spec.rb +27 -26
  504. data/spec/unit/property/ordered_list_spec.rb +14 -10
  505. data/spec/unit/property_spec.rb +43 -42
  506. data/spec/unit/provider/aix_object_spec.rb +45 -47
  507. data/spec/unit/provider/command_spec.rb +9 -9
  508. data/spec/unit/provider/exec/posix_spec.rb +31 -6
  509. data/spec/unit/provider/exec/shell_spec.rb +1 -0
  510. data/spec/unit/provider/exec/windows_spec.rb +4 -2
  511. data/spec/unit/provider/exec_spec.rb +1 -0
  512. data/spec/unit/provider/file/posix_spec.rb +24 -22
  513. data/spec/unit/provider/file/windows_spec.rb +17 -15
  514. data/spec/unit/provider/group/aix_spec.rb +2 -3
  515. data/spec/unit/provider/group/groupadd_spec.rb +26 -30
  516. data/spec/unit/provider/group/ldap_spec.rb +18 -18
  517. data/spec/unit/provider/group/pw_spec.rb +11 -11
  518. data/spec/unit/provider/group/windows_adsi_spec.rb +53 -59
  519. data/spec/unit/provider/ldap_spec.rb +62 -61
  520. data/spec/unit/provider/nameservice/directoryservice_spec.rb +36 -35
  521. data/spec/unit/provider/nameservice_spec.rb +40 -38
  522. data/spec/unit/provider/package/aix_spec.rb +15 -15
  523. data/spec/unit/provider/package/appdmg_spec.rb +13 -13
  524. data/spec/unit/provider/package/apt_spec.rb +27 -44
  525. data/spec/unit/provider/package/aptitude_spec.rb +7 -6
  526. data/spec/unit/provider/package/aptrpm_spec.rb +12 -7
  527. data/spec/unit/provider/package/base_spec.rb +4 -4
  528. data/spec/unit/provider/package/dnf_spec.rb +20 -18
  529. data/spec/unit/provider/package/dpkg_spec.rb +53 -70
  530. data/spec/unit/provider/package/freebsd_spec.rb +11 -11
  531. data/spec/unit/provider/package/gem_spec.rb +55 -132
  532. data/spec/unit/provider/package/hpux_spec.rb +8 -8
  533. data/spec/unit/provider/package/macports_spec.rb +42 -46
  534. data/spec/unit/provider/package/nim_spec.rb +39 -30
  535. data/spec/unit/provider/package/openbsd_spec.rb +39 -36
  536. data/spec/unit/provider/package/opkg_spec.rb +26 -23
  537. data/spec/unit/provider/package/pacman_spec.rb +118 -97
  538. data/spec/unit/provider/package/pip3_spec.rb +0 -17
  539. data/spec/unit/provider/package/pip_spec.rb +106 -95
  540. data/spec/unit/provider/package/pkg_spec.rb +109 -109
  541. data/spec/unit/provider/package/pkgdmg_spec.rb +63 -65
  542. data/spec/unit/provider/package/pkgin_spec.rb +8 -10
  543. data/spec/unit/provider/package/pkgng_spec.rb +31 -22
  544. data/spec/unit/provider/package/pkgutil_spec.rb +49 -45
  545. data/spec/unit/provider/package/portage_spec.rb +74 -70
  546. data/spec/unit/provider/package/puppet_gem_spec.rb +13 -37
  547. data/spec/unit/provider/package/rpm_spec.rb +76 -154
  548. data/spec/unit/provider/package/sun_spec.rb +18 -16
  549. data/spec/unit/provider/package/tdnf_spec.rb +2 -2
  550. data/spec/unit/provider/package/up2date_spec.rb +4 -2
  551. data/spec/unit/provider/package/urpmi_spec.rb +17 -15
  552. data/spec/unit/provider/package/windows/exe_package_spec.rb +15 -12
  553. data/spec/unit/provider/package/windows/msi_package_spec.rb +22 -19
  554. data/spec/unit/provider/package/windows/package_spec.rb +42 -37
  555. data/spec/unit/provider/package/windows_spec.rb +32 -47
  556. data/spec/unit/provider/package/yum_spec.rb +7 -7
  557. data/spec/unit/provider/package/zypper_spec.rb +87 -87
  558. data/spec/unit/provider/parsedfile_spec.rb +45 -44
  559. data/spec/unit/provider/service/base_spec.rb +5 -4
  560. data/spec/unit/provider/service/bsd_spec.rb +29 -27
  561. data/spec/unit/provider/service/daemontools_spec.rb +35 -35
  562. data/spec/unit/provider/service/debian_spec.rb +38 -38
  563. data/spec/unit/provider/service/freebsd_spec.rb +18 -18
  564. data/spec/unit/provider/service/gentoo_spec.rb +55 -50
  565. data/spec/unit/provider/service/init_spec.rb +52 -53
  566. data/spec/unit/provider/service/launchd_spec.rb +116 -138
  567. data/spec/unit/provider/service/openbsd_spec.rb +50 -50
  568. data/spec/unit/provider/service/openrc_spec.rb +45 -43
  569. data/spec/unit/provider/service/openwrt_spec.rb +31 -26
  570. data/spec/unit/provider/service/rcng_spec.rb +14 -14
  571. data/spec/unit/provider/service/redhat_spec.rb +43 -45
  572. data/spec/unit/provider/service/runit_spec.rb +27 -29
  573. data/spec/unit/provider/service/smf_spec.rb +66 -74
  574. data/spec/unit/provider/service/src_spec.rb +47 -46
  575. data/spec/unit/provider/service/systemd_spec.rb +136 -109
  576. data/spec/unit/provider/service/upstart_spec.rb +93 -77
  577. data/spec/unit/provider/service/windows_spec.rb +41 -33
  578. data/spec/unit/provider/user/aix_spec.rb +31 -31
  579. data/spec/unit/provider/user/directoryservice_spec.rb +114 -146
  580. data/spec/unit/provider/user/hpux_spec.rb +16 -16
  581. data/spec/unit/provider/user/ldap_spec.rb +57 -57
  582. data/spec/unit/provider/user/openbsd_spec.rb +12 -10
  583. data/spec/unit/provider/user/pw_spec.rb +35 -37
  584. data/spec/unit/provider/user/user_role_add_spec.rb +93 -93
  585. data/spec/unit/provider/user/useradd_spec.rb +92 -93
  586. data/spec/unit/provider/user/windows_adsi_spec.rb +60 -59
  587. data/spec/unit/provider_spec.rb +35 -35
  588. data/spec/unit/puppet_pal_2pec.rb +5 -4
  589. data/spec/unit/puppet_pal_spec.rb +1 -0
  590. data/spec/unit/puppet_spec.rb +7 -6
  591. data/spec/unit/relationship_spec.rb +1 -0
  592. data/spec/unit/reports/http_spec.rb +23 -21
  593. data/spec/unit/reports/store_spec.rb +4 -3
  594. data/spec/unit/reports_spec.rb +14 -12
  595. data/spec/unit/resource/capability_finder_spec.rb +17 -15
  596. data/spec/unit/resource/catalog_spec.rb +68 -72
  597. data/spec/unit/resource/status_spec.rb +8 -6
  598. data/spec/unit/resource/type_collection_spec.rb +18 -17
  599. data/spec/unit/resource/type_spec.rb +35 -34
  600. data/spec/unit/resource_spec.rb +63 -36
  601. data/spec/unit/rest/client_spec.rb +135 -0
  602. data/spec/unit/rest/route_spec.rb +6 -6
  603. data/spec/unit/scheduler/job_spec.rb +1 -0
  604. data/spec/unit/scheduler/scheduler_spec.rb +1 -0
  605. data/spec/unit/scheduler/splay_job_spec.rb +2 -1
  606. data/spec/unit/settings/array_setting_spec.rb +1 -1
  607. data/spec/unit/settings/autosign_setting_spec.rb +9 -9
  608. data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
  609. data/spec/unit/settings/config_file_spec.rb +1 -0
  610. data/spec/unit/settings/directory_setting_spec.rb +7 -2
  611. data/spec/unit/settings/duration_setting_spec.rb +2 -1
  612. data/spec/unit/settings/enum_setting_spec.rb +1 -1
  613. data/spec/unit/settings/environment_conf_spec.rb +6 -4
  614. data/spec/unit/settings/file_setting_spec.rb +46 -44
  615. data/spec/unit/settings/path_setting_spec.rb +2 -1
  616. data/spec/unit/settings/priority_setting_spec.rb +2 -1
  617. data/spec/unit/settings/string_setting_spec.rb +15 -14
  618. data/spec/unit/settings/terminus_setting_spec.rb +2 -1
  619. data/spec/unit/settings/value_translator_spec.rb +1 -0
  620. data/spec/unit/settings_spec.rb +224 -253
  621. data/spec/unit/ssl/base_spec.rb +15 -14
  622. data/spec/unit/ssl/certificate_request_spec.rb +58 -62
  623. data/spec/unit/ssl/certificate_spec.rb +25 -23
  624. data/spec/unit/ssl/digest_spec.rb +1 -0
  625. data/spec/unit/ssl/host_spec.rb +149 -166
  626. data/spec/unit/ssl/key_spec.rb +31 -30
  627. data/spec/unit/ssl/validator_spec.rb +39 -40
  628. data/spec/unit/task_spec.rb +45 -44
  629. data/spec/unit/transaction/additional_resource_generator_spec.rb +5 -3
  630. data/spec/unit/transaction/event_manager_spec.rb +88 -87
  631. data/spec/unit/transaction/event_spec.rb +15 -16
  632. data/spec/unit/transaction/persistence_spec.rb +17 -16
  633. data/spec/unit/transaction/report_spec.rb +12 -11
  634. data/spec/unit/transaction/resource_harness_spec.rb +31 -52
  635. data/spec/unit/transaction_spec.rb +87 -140
  636. data/spec/unit/type/component_spec.rb +1 -0
  637. data/spec/unit/type/exec_spec.rb +50 -101
  638. data/spec/unit/type/file/checksum_spec.rb +10 -9
  639. data/spec/unit/type/file/checksum_value_spec.rb +32 -31
  640. data/spec/unit/type/file/content_spec.rb +61 -58
  641. data/spec/unit/type/file/ctime_spec.rb +1 -0
  642. data/spec/unit/type/file/ensure_spec.rb +13 -12
  643. data/spec/unit/type/file/group_spec.rb +7 -5
  644. data/spec/unit/type/file/mode_spec.rb +6 -4
  645. data/spec/unit/type/file/mtime_spec.rb +1 -0
  646. data/spec/unit/type/file/owner_spec.rb +8 -6
  647. data/spec/unit/type/file/selinux_spec.rb +19 -17
  648. data/spec/unit/type/file/source_spec.rb +101 -104
  649. data/spec/unit/type/file/type_spec.rb +1 -0
  650. data/spec/unit/type/file_spec.rb +185 -195
  651. data/spec/unit/type/filebucket_spec.rb +10 -11
  652. data/spec/unit/type/group_spec.rb +8 -6
  653. data/spec/unit/type/noop_metaparam_spec.rb +2 -1
  654. data/spec/unit/type/package/package_settings_spec.rb +23 -44
  655. data/spec/unit/type/package_spec.rb +57 -56
  656. data/spec/unit/type/resources_spec.rb +74 -72
  657. data/spec/unit/type/schedule_spec.rb +26 -24
  658. data/spec/unit/type/service_spec.rb +75 -49
  659. data/spec/unit/type/stage_spec.rb +1 -0
  660. data/spec/unit/type/tidy_spec.rb +62 -61
  661. data/spec/unit/type/user_spec.rb +25 -24
  662. data/spec/unit/type/whit_spec.rb +1 -0
  663. data/spec/unit/type_spec.rb +54 -55
  664. data/spec/unit/util/at_fork_spec.rb +19 -18
  665. data/spec/unit/util/autoload_spec.rb +56 -55
  666. data/spec/unit/util/backups_spec.rb +35 -34
  667. data/spec/unit/util/character_encoding_spec.rb +5 -5
  668. data/spec/unit/util/checksums_spec.rb +39 -38
  669. data/spec/unit/util/colors_spec.rb +2 -1
  670. data/spec/unit/util/command_line_spec.rb +20 -40
  671. data/spec/unit/util/constant_inflector_spec.rb +1 -0
  672. data/spec/unit/util/diff_spec.rb +8 -7
  673. data/spec/unit/util/errors_spec.rb +1 -0
  674. data/spec/unit/util/execution_spec.rb +163 -187
  675. data/spec/unit/util/execution_stub_spec.rb +1 -0
  676. data/spec/unit/util/feature_spec.rb +14 -21
  677. data/spec/unit/util/filetype_spec.rb +49 -49
  678. data/spec/unit/util/http_proxy_spec.rb +12 -12
  679. data/spec/unit/util/inifile_spec.rb +31 -26
  680. data/spec/unit/util/json_lockfile_spec.rb +5 -3
  681. data/spec/unit/util/ldap/connection_spec.rb +25 -26
  682. data/spec/unit/util/ldap/generator_spec.rb +1 -0
  683. data/spec/unit/util/ldap/manager_spec.rb +101 -102
  684. data/spec/unit/util/lockfile_spec.rb +1 -0
  685. data/spec/unit/util/log/destinations_spec.rb +33 -30
  686. data/spec/unit/util/log_spec.rb +34 -48
  687. data/spec/unit/util/logging_spec.rb +72 -58
  688. data/spec/unit/util/metric_spec.rb +1 -0
  689. data/spec/unit/util/monkey_patches_spec.rb +9 -7
  690. data/spec/unit/util/multi_match_spec.rb +1 -0
  691. data/spec/unit/util/network_device/config_spec.rb +1 -0
  692. data/spec/unit/util/network_device/transport/base_spec.rb +6 -5
  693. data/spec/unit/util/network_device_spec.rb +9 -7
  694. data/spec/unit/util/package_spec.rb +1 -0
  695. data/spec/unit/util/pidlock_spec.rb +15 -60
  696. data/spec/unit/util/plist_spec.rb +33 -40
  697. data/spec/unit/util/posix_spec.rb +51 -54
  698. data/spec/unit/util/rdoc_spec.rb +10 -9
  699. data/spec/unit/util/reference_spec.rb +1 -0
  700. data/spec/unit/util/resource_template_spec.rb +20 -20
  701. data/spec/unit/util/retry_action_spec.rb +8 -7
  702. data/spec/unit/util/rubygems_spec.rb +8 -7
  703. data/spec/unit/util/run_mode_spec.rb +4 -3
  704. data/spec/unit/util/selinux_spec.rb +72 -79
  705. data/spec/unit/util/splayer_spec.rb +9 -8
  706. data/spec/unit/util/ssl_spec.rb +1 -0
  707. data/spec/unit/util/storage_spec.rb +23 -22
  708. data/spec/unit/util/suidmanager_spec.rb +54 -45
  709. data/spec/unit/util/symbolic_file_mode_spec.rb +1 -0
  710. data/spec/unit/util/tag_set_spec.rb +1 -0
  711. data/spec/unit/util/tagging_spec.rb +1 -0
  712. data/spec/unit/util/terminal_spec.rb +10 -9
  713. data/spec/unit/util/user_attr_spec.rb +2 -1
  714. data/spec/unit/util/warnings_spec.rb +4 -3
  715. data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
  716. data/spec/unit/util/watcher_spec.rb +21 -51
  717. data/spec/unit/util/windows/access_control_entry_spec.rb +1 -0
  718. data/spec/unit/util/windows/access_control_list_spec.rb +1 -0
  719. data/spec/unit/util/windows/adsi_spec.rb +138 -136
  720. data/spec/unit/util/windows/api_types_spec.rb +1 -0
  721. data/spec/unit/util/windows/eventlog_spec.rb +12 -9
  722. data/spec/unit/util/windows/file_spec.rb +1 -0
  723. data/spec/unit/util/windows/root_certs_spec.rb +1 -0
  724. data/spec/unit/util/windows/security_descriptor_spec.rb +2 -0
  725. data/spec/unit/util/windows/service_spec.rb +103 -100
  726. data/spec/unit/util/windows/sid_spec.rb +13 -11
  727. data/spec/unit/util/windows/string_spec.rb +1 -0
  728. data/spec/unit/util_spec.rb +57 -55
  729. data/spec/unit/version_spec.rb +6 -6
  730. metadata +20 -32
  731. data/CODEOWNERS +0 -30
  732. data/ext/autotest/Rakefile +0 -8
  733. data/ext/autotest/config +0 -43
  734. data/ext/autotest/readme.rst +0 -16
  735. data/lib/puppet/confine/boolean.rb +0 -45
  736. data/lib/puppet/provider/package_targetable.rb +0 -68
  737. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load2.rb +0 -11
  738. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load3.rb +0 -11
  739. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load4.rb +0 -11
  740. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load5.rb +0 -12
  741. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/good_func_load.rb +0 -9
  742. data/spec/fixtures/unit/provider/package/pkgng/pkg.info +0 -7
  743. data/spec/fixtures/unit/provider/package/pkgng/pkg.query_absent +0 -1
  744. data/spec/integration/network/http_pool_spec.rb +0 -120
  745. data/spec/integration/provider/file/windows_spec.rb +0 -162
  746. data/spec/lib/puppet_spec/https.rb +0 -166
  747. data/spec/unit/settings/server_list_setting_spec.rb +0 -21
  748. data/spec/watchr.rb +0 -137
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
 
3
4
  require 'puppet/indirector/report/rest'
@@ -32,10 +33,10 @@ describe Puppet::Transaction::Report::Rest do
32
33
  end
33
34
 
34
35
  def mock_response(code, body, content_type='text/plain', encoding=nil)
35
- obj = double('http 200 ok', :code => code.to_s, :body => body)
36
- allow(obj).to receive(:[]).with('content-type').and_return(content_type)
37
- allow(obj).to receive(:[]).with('content-encoding').and_return(encoding)
38
- allow(obj).to receive(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).and_return(Puppet.version)
36
+ obj = stub('http 200 ok', :code => code.to_s, :body => body)
37
+ obj.stubs(:[]).with('content-type').returns(content_type)
38
+ obj.stubs(:[]).with('content-encoding').returns(encoding)
39
+ obj.stubs(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).returns(Puppet.version)
39
40
  obj
40
41
  end
41
42
 
@@ -45,18 +46,18 @@ describe Puppet::Transaction::Report::Rest do
45
46
 
46
47
  describe "#save" do
47
48
  let(:response) { mock_response(200, 'body') }
48
- let(:connection) { double('mock http connection', :put => response, :verify_callback= => nil) }
49
+ let(:connection) { stub('mock http connection', :put => response, :verify_callback= => nil) }
49
50
  let(:instance) { model.new('the thing', 'some contents') }
50
51
  let(:request) { save_request(instance.name, instance) }
51
52
  let(:body) { ["store", "http"].to_pson }
52
53
 
53
54
  before :each do
54
- allow(terminus).to receive(:network).and_return(connection)
55
+ terminus.stubs(:network).returns(connection)
55
56
  end
56
57
 
57
58
  it "deserializes the response as an array of report processor names" do
58
59
  response = mock_response('200', body, 'text/pson')
59
- expect(connection).to receive(:put).and_return(response)
60
+ connection.expects(:put).returns response
60
61
 
61
62
  expect(terminus.save(request)).to eq(["store", "http"])
62
63
  end
@@ -67,8 +68,8 @@ describe Puppet::Transaction::Report::Rest do
67
68
  Puppet[:preferred_serialization_format] = "json"
68
69
 
69
70
  response = mock_response('500', '{}', 'text/pson')
70
- allow(response).to receive(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).and_return("4.10.1")
71
- expect(connection).to receive(:put).and_return(response)
71
+ response.stubs(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).returns("4.10.1")
72
+ connection.expects(:put).returns response
72
73
 
73
74
  expect {
74
75
  terminus.save(request)
@@ -79,8 +80,8 @@ describe Puppet::Transaction::Report::Rest do
79
80
  Puppet[:preferred_serialization_format] = "pson"
80
81
 
81
82
  response = mock_response('500', '{}', 'text/pson')
82
- allow(response).to receive(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).and_return("4.10.1")
83
- expect(connection).to receive(:put).and_return(response)
83
+ response.stubs(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).returns("4.10.1")
84
+ connection.expects(:put).returns response
84
85
 
85
86
  expect {
86
87
  terminus.save(request)
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
 
3
4
  require 'puppet/transaction/report'
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
  require 'matchers/json'
3
4
  require 'puppet/indirector/request'
@@ -19,7 +20,7 @@ describe Puppet::Indirector::Request do
19
20
  end
20
21
 
21
22
  it "should use the name of the provided instance as its key if an instance is provided as the key instead of a string" do
22
- instance = double('instance', :name => "mykey")
23
+ instance = mock 'instance', :name => "mykey"
23
24
  request = Puppet::Indirector::Request.new(:ind, :method, nil, instance)
24
25
  expect(request.key).to eq("mykey")
25
26
  expect(request.instance).to equal(instance)
@@ -194,25 +195,25 @@ describe Puppet::Indirector::Request do
194
195
  end
195
196
 
196
197
  it "should look use the Indirection class to return the appropriate indirection" do
197
- ind = double('indirection')
198
- expect(Puppet::Indirector::Indirection).to receive(:instance).with(:myind).and_return(ind)
198
+ ind = mock 'indirection'
199
+ Puppet::Indirector::Indirection.expects(:instance).with(:myind).returns ind
199
200
  request = Puppet::Indirector::Request.new(:myind, :method, :key, nil)
200
201
 
201
202
  expect(request.indirection).to equal(ind)
202
203
  end
203
204
 
204
205
  it "should use its indirection to look up the appropriate model" do
205
- ind = double('indirection')
206
- expect(Puppet::Indirector::Indirection).to receive(:instance).with(:myind).and_return(ind)
206
+ ind = mock 'indirection'
207
+ Puppet::Indirector::Indirection.expects(:instance).with(:myind).returns ind
207
208
  request = Puppet::Indirector::Request.new(:myind, :method, :key, nil)
208
209
 
209
- expect(ind).to receive(:model).and_return("mymodel")
210
+ ind.expects(:model).returns "mymodel"
210
211
 
211
212
  expect(request.model).to eq("mymodel")
212
213
  end
213
214
 
214
215
  it "should fail intelligently when asked to find a model but the indirection cannot be found" do
215
- expect(Puppet::Indirector::Indirection).to receive(:instance).with(:myind).and_return(nil)
216
+ Puppet::Indirector::Indirection.expects(:instance).with(:myind).returns nil
216
217
  request = Puppet::Indirector::Request.new(:myind, :method, :key, nil)
217
218
 
218
219
  expect { request.model }.to raise_error(ArgumentError)
@@ -441,8 +442,8 @@ describe Puppet::Indirector::Request do
441
442
 
442
443
  context "when SRV returns servers" do
443
444
  before :each do
444
- @dns_mock = double('dns')
445
- expect(Resolv::DNS).to receive(:new).and_return(@dns_mock)
445
+ @dns_mock = mock('dns')
446
+ Resolv::DNS.expects(:new).returns(@dns_mock)
446
447
 
447
448
  @port = 7205
448
449
  @target = 'example.com'
@@ -450,9 +451,9 @@ describe Puppet::Indirector::Request do
450
451
  record.instance_variable_set(:@ttl, 10)
451
452
  @srv_records = [record]
452
453
 
453
- expect(@dns_mock).to receive(:getresources).
454
+ @dns_mock.expects(:getresources).
454
455
  with("_x-puppet._tcp.#{Puppet.settings[:srv_domain]}", Resolv::DNS::Resource::IN::SRV).
455
- and_return(@srv_records)
456
+ returns(@srv_records)
456
457
  end
457
458
 
458
459
  it "yields a request using the server and port from the SRV record" do
@@ -1,40 +1,43 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
- require 'puppet/type/user'
3
3
  require 'puppet/indirector/resource/ral'
4
4
 
5
5
  describe "Puppet::Resource::Ral" do
6
+
6
7
  it "disallows remote requests" do
7
8
  expect(Puppet::Resource::Ral.new.allow_remote_requests?).to eq(false)
8
9
  end
9
10
 
10
11
  describe "find" do
11
12
  before do
12
- @request = double('request', :key => "user/root")
13
+ @request = stub 'request', :key => "user/root"
13
14
  end
14
15
 
15
16
  it "should find an existing instance" do
16
- my_resource = double("my user resource")
17
+ my_resource = stub "my user resource"
17
18
 
18
- wrong_instance = double("wrong user", :name => "bob")
19
- my_instance = double("my user", :name => "root", :to_resource => my_resource)
19
+ wrong_instance = stub "wrong user", :name => "bob"
20
+ my_instance = stub "my user", :name => "root", :to_resource => my_resource
20
21
 
21
- expect(Puppet::Type::User).to receive(:instances).and_return([ wrong_instance, my_instance, wrong_instance ])
22
+ require 'puppet/type/user'
23
+ Puppet::Type::User.expects(:instances).returns([ wrong_instance, my_instance, wrong_instance ])
22
24
  expect(Puppet::Resource::Ral.new.find(@request)).to eq(my_resource)
23
25
  end
24
26
 
25
27
  it "should produce Puppet::Error instead of ArgumentError" do
26
- @bad_request = double('thiswillcauseanerror', :key => "thiswill/causeanerror")
28
+ @bad_request = stub 'thiswillcauseanerror', :key => "thiswill/causeanerror"
27
29
  expect{Puppet::Resource::Ral.new.find(@bad_request)}.to raise_error(Puppet::Error)
28
30
  end
29
31
 
30
32
  it "if there is no instance, it should create one" do
31
- wrong_instance = double("wrong user", :name => "bob")
32
- root = double("Root User")
33
- root_resource = double("Root Resource")
33
+ wrong_instance = stub "wrong user", :name => "bob"
34
+ root = mock "Root User"
35
+ root_resource = mock "Root Resource"
34
36
 
35
- expect(Puppet::Type::User).to receive(:instances).and_return([ wrong_instance, wrong_instance ])
36
- expect(Puppet::Type::User).to receive(:new).with(hash_including(name: "root")).and_return(root)
37
- expect(root).to receive(:to_resource).and_return(root_resource)
37
+ require 'puppet/type/user'
38
+ Puppet::Type::User.expects(:instances).returns([ wrong_instance, wrong_instance ])
39
+ Puppet::Type::User.expects(:new).with(has_entry(:name => "root")).returns(root)
40
+ root.expects(:to_resource).returns(root_resource)
38
41
 
39
42
  result = Puppet::Resource::Ral.new.find(@request)
40
43
 
@@ -44,68 +47,72 @@ describe "Puppet::Resource::Ral" do
44
47
 
45
48
  describe "search" do
46
49
  before do
47
- @request = double('request', :key => "user/", :options => {})
50
+ @request = stub 'request', :key => "user/", :options => {}
48
51
  end
49
52
 
50
53
  it "should convert ral resources into regular resources" do
51
- my_resource = double("my user resource")
52
- my_instance = double("my user", :name => "root", :to_resource => my_resource)
54
+ my_resource = stub "my user resource"
55
+ my_instance = stub "my user", :name => "root", :to_resource => my_resource
53
56
 
54
- expect(Puppet::Type::User).to receive(:instances).and_return([ my_instance ])
57
+ require 'puppet/type/user'
58
+ Puppet::Type::User.expects(:instances).returns([ my_instance ])
55
59
  expect(Puppet::Resource::Ral.new.search(@request)).to eq([my_resource])
56
60
  end
57
61
 
58
62
  it "should filter results by name if there's a name in the key" do
59
- my_resource = double("my user resource")
60
- allow(my_resource).to receive(:to_resource).and_return(my_resource)
61
- allow(my_resource).to receive(:[]).with(:name).and_return("root")
63
+ my_resource = stub "my user resource"
64
+ my_resource.stubs(:to_resource).returns(my_resource)
65
+ my_resource.stubs(:[]).with(:name).returns("root")
62
66
 
63
- wrong_resource = double("wrong resource")
64
- allow(wrong_resource).to receive(:to_resource).and_return(wrong_resource)
65
- allow(wrong_resource).to receive(:[]).with(:name).and_return("bad")
67
+ wrong_resource = stub "wrong resource"
68
+ wrong_resource.stubs(:to_resource).returns(wrong_resource)
69
+ wrong_resource.stubs(:[]).with(:name).returns("bad")
66
70
 
67
- my_instance = double("my user", :to_resource => my_resource)
68
- wrong_instance = double("wrong user", :to_resource => wrong_resource)
71
+ my_instance = stub "my user", :to_resource => my_resource
72
+ wrong_instance = stub "wrong user", :to_resource => wrong_resource
69
73
 
70
- @request = double('request', :key => "user/root", :options => {})
74
+ @request = stub 'request', :key => "user/root", :options => {}
71
75
 
72
- expect(Puppet::Type::User).to receive(:instances).and_return([ my_instance, wrong_instance ])
76
+ require 'puppet/type/user'
77
+ Puppet::Type::User.expects(:instances).returns([ my_instance, wrong_instance ])
73
78
  expect(Puppet::Resource::Ral.new.search(@request)).to eq([my_resource])
74
79
  end
75
80
 
76
81
  it "should filter results by query parameters" do
77
- wrong_resource = double("my user resource")
78
- allow(wrong_resource).to receive(:to_resource).and_return(wrong_resource)
79
- allow(wrong_resource).to receive(:[]).with(:name).and_return("root")
82
+ wrong_resource = stub "my user resource"
83
+ wrong_resource.stubs(:to_resource).returns(wrong_resource)
84
+ wrong_resource.stubs(:[]).with(:name).returns("root")
80
85
 
81
- my_resource = double("wrong resource")
82
- allow(my_resource).to receive(:to_resource).and_return(my_resource)
83
- allow(my_resource).to receive(:[]).with(:name).and_return("bob")
86
+ my_resource = stub "wrong resource"
87
+ my_resource.stubs(:to_resource).returns(my_resource)
88
+ my_resource.stubs(:[]).with(:name).returns("bob")
84
89
 
85
- my_instance = double("my user", :to_resource => my_resource)
86
- wrong_instance = double("wrong user", :to_resource => wrong_resource)
90
+ my_instance = stub "my user", :to_resource => my_resource
91
+ wrong_instance = stub "wrong user", :to_resource => wrong_resource
87
92
 
88
- @request = double('request', :key => "user/", :options => {:name => "bob"})
93
+ @request = stub 'request', :key => "user/", :options => {:name => "bob"}
89
94
 
90
- expect(Puppet::Type::User).to receive(:instances).and_return([ my_instance, wrong_instance ])
95
+ require 'puppet/type/user'
96
+ Puppet::Type::User.expects(:instances).returns([ my_instance, wrong_instance ])
91
97
  expect(Puppet::Resource::Ral.new.search(@request)).to eq([my_resource])
92
98
  end
93
99
 
94
100
  it "should return sorted results" do
95
- a_resource = double("alice resource")
96
- allow(a_resource).to receive(:to_resource).and_return(a_resource)
97
- allow(a_resource).to receive(:title).and_return("alice")
101
+ a_resource = stub "alice resource"
102
+ a_resource.stubs(:to_resource).returns(a_resource)
103
+ a_resource.stubs(:title).returns("alice")
98
104
 
99
- b_resource = double("bob resource")
100
- allow(b_resource).to receive(:to_resource).and_return(b_resource)
101
- allow(b_resource).to receive(:title).and_return("bob")
105
+ b_resource = stub "bob resource"
106
+ b_resource.stubs(:to_resource).returns(b_resource)
107
+ b_resource.stubs(:title).returns("bob")
102
108
 
103
- a_instance = double("alice user", :to_resource => a_resource)
104
- b_instance = double("bob user", :to_resource => b_resource)
109
+ a_instance = stub "alice user", :to_resource => a_resource
110
+ b_instance = stub "bob user", :to_resource => b_resource
105
111
 
106
- @request = double('request', :key => "user/", :options => {})
112
+ @request = stub 'request', :key => "user/", :options => {}
107
113
 
108
- expect(Puppet::Type::User).to receive(:instances).and_return([ b_instance, a_instance ])
114
+ require 'puppet/type/user'
115
+ Puppet::Type::User.expects(:instances).returns([ b_instance, a_instance ])
109
116
  expect(Puppet::Resource::Ral.new.search(@request)).to eq([a_resource, b_resource])
110
117
  end
111
118
  end
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
  require 'puppet/resource'
3
4
  require 'puppet/indirector/memory'
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
  require 'puppet/util/json'
3
4
  require 'puppet/indirector'
@@ -16,14 +17,14 @@ shared_examples_for "a REST terminus method" do |terminus_method|
16
17
  end
17
18
 
18
19
  it "falls back to pson for future requests" do
19
- allow(response).to receive(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).and_return("4.10.1")
20
+ response.stubs(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).returns("4.10.1")
20
21
  terminus.send(terminus_method, request)
21
22
 
22
23
  expect(Puppet[:preferred_serialization_format]).to eq("pson")
23
24
  end
24
25
 
25
26
  it "doesn't change the serialization format if the X-Puppet-Version header is missing" do
26
- allow(response).to receive(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).and_return(nil)
27
+ response.stubs(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).returns(nil)
27
28
 
28
29
  terminus.send(terminus_method, request)
29
30
 
@@ -31,7 +32,7 @@ shared_examples_for "a REST terminus method" do |terminus_method|
31
32
  end
32
33
 
33
34
  it "doesn't change the serialization format if the server major version is 5" do
34
- allow(response).to receive(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).and_return("5.0.3")
35
+ response.stubs(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).returns("5.0.3")
35
36
 
36
37
  terminus.send(terminus_method, request)
37
38
 
@@ -39,7 +40,7 @@ shared_examples_for "a REST terminus method" do |terminus_method|
39
40
  end
40
41
 
41
42
  it "doesn't change the serialization format if the current format is already pson" do
42
- allow(response).to receive(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).and_return("4.10.1")
43
+ response.stubs(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).returns("4.10.1")
43
44
  Puppet[:preferred_serialization_format] = "pson"
44
45
  terminus.send(terminus_method, request)
45
46
 
@@ -76,7 +77,7 @@ shared_examples_for "a REST terminus method" do |terminus_method|
76
77
  end
77
78
 
78
79
  it "does not attempt to deserialize the response into a model" do
79
- expect(model).not_to receive(:convert_from)
80
+ model.expects(:convert_from).never
80
81
 
81
82
  expect {
82
83
  terminus.send(terminus_method, request)
@@ -85,8 +86,8 @@ shared_examples_for "a REST terminus method" do |terminus_method|
85
86
 
86
87
  # I'm not sure what this means or if it's used
87
88
  it "if the body is empty raises an http error with the response header" do
88
- allow(response).to receive(:body).and_return("")
89
- allow(response).to receive(:message).and_return("fhqwhgads")
89
+ response.stubs(:body).returns ""
90
+ response.stubs(:message).returns "fhqwhgads"
90
91
 
91
92
  expect {
92
93
  terminus.send(terminus_method, request)
@@ -98,7 +99,7 @@ shared_examples_for "a REST terminus method" do |terminus_method|
98
99
  compressed_body = Zlib::Deflate.deflate(body)
99
100
 
100
101
  compressed_response = mock_response(code, compressed_body, 'application/json', 'deflate')
101
- expect(connection).to receive(http_method).and_return(compressed_response)
102
+ connection.expects(http_method).returns(compressed_response)
102
103
 
103
104
  expect {
104
105
  terminus.send(terminus_method, request)
@@ -120,7 +121,7 @@ shared_examples_for "a deserializing terminus method" do |terminus_method|
120
121
  end
121
122
 
122
123
  it "doesn't catch errors in deserialization" do
123
- expect(model).to receive(:convert_from).and_raise(Puppet::Error, "Whoa there")
124
+ model.expects(:convert_from).raises(Puppet::Error, "Whoa there")
124
125
 
125
126
  expect { terminus.send(terminus_method, request) }.to raise_error(Puppet::Error, "Whoa there")
126
127
  end
@@ -181,10 +182,10 @@ describe Puppet::Indirector::REST do
181
182
  end
182
183
 
183
184
  def mock_response(code, body, content_type='text/plain', encoding=nil)
184
- obj = double('http 200 ok', :code => code.to_s, :body => body)
185
- allow(obj).to receive(:[]).with('content-type').and_return(content_type)
186
- allow(obj).to receive(:[]).with('content-encoding').and_return(encoding)
187
- allow(obj).to receive(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).and_return(Puppet.version)
185
+ obj = stub('http 200 ok', :code => code.to_s, :body => body)
186
+ obj.stubs(:[]).with('content-type').returns(content_type)
187
+ obj.stubs(:[]).with('content-encoding').returns(encoding)
188
+ obj.stubs(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).returns(Puppet.version)
188
189
  obj
189
190
  end
190
191
 
@@ -213,13 +214,13 @@ describe Puppet::Indirector::REST do
213
214
  end
214
215
 
215
216
  it "should use any specified setting to pick the server" do
216
- expect(terminus_class).to receive(:server_setting).and_return(:ca_server)
217
+ terminus_class.expects(:server_setting).returns :ca_server
217
218
  Puppet[:ca_server] = "myserver"
218
219
  expect(terminus_class.server).to eq("myserver")
219
220
  end
220
221
 
221
222
  it "should default to :server for the server setting" do
222
- expect(terminus_class).to receive(:server_setting).and_return(nil)
223
+ terminus_class.expects(:server_setting).returns nil
223
224
  Puppet[:server] = "myserver"
224
225
  expect(terminus_class.server).to eq("myserver")
225
226
  end
@@ -229,39 +230,39 @@ describe Puppet::Indirector::REST do
229
230
  end
230
231
 
231
232
  it "should use any specified setting to pick the port" do
232
- expect(terminus_class).to receive(:port_setting).and_return(:ca_port)
233
+ terminus_class.expects(:port_setting).returns :ca_port
233
234
  Puppet[:ca_port] = "321"
234
235
  expect(terminus_class.port).to eq(321)
235
236
  end
236
237
 
237
238
  it "should default to :port for the port setting" do
238
- expect(terminus_class).to receive(:port_setting).and_return(nil)
239
+ terminus_class.expects(:port_setting).returns nil
239
240
  Puppet[:masterport] = "543"
240
241
  expect(terminus_class.port).to eq(543)
241
242
  end
242
243
 
243
244
  it "should use a failover-selected server if set" do
244
- expect(terminus_class).to receive(:server_setting).and_return(nil)
245
+ terminus_class.expects(:server_setting).returns nil
245
246
  Puppet.override(:server => "myserver") do
246
247
  expect(terminus_class.server).to eq("myserver")
247
248
  end
248
249
  end
249
250
 
250
251
  it "should use a failover-selected port if set" do
251
- expect(terminus_class).to receive(:port_setting).and_return(nil)
252
+ terminus_class.expects(:port_setting).returns nil
252
253
  Puppet.override(:serverport => 321) do
253
254
  expect(terminus_class.port).to eq(321)
254
255
  end
255
256
  end
256
257
 
257
258
  it "should use server_list for server when available" do
258
- expect(terminus_class).to receive(:server_setting).and_return(nil)
259
+ terminus_class.expects(:server_setting).returns nil
259
260
  Puppet[:server_list] = [["foo", "123"]]
260
261
  expect(terminus_class.server).to eq("foo")
261
262
  end
262
263
 
263
264
  it "should prefer failover-selected server from server list" do
264
- expect(terminus_class).to receive(:server_setting).and_return(nil)
265
+ terminus_class.expects(:server_setting).returns nil
265
266
  Puppet[:server_list] = [["foo", "123"],["bar", "321"]]
266
267
  Puppet.override(:server => "bar") do
267
268
  expect(terminus_class.server).to eq("bar")
@@ -269,13 +270,13 @@ describe Puppet::Indirector::REST do
269
270
  end
270
271
 
271
272
  it "should use server_list for port when available" do
272
- expect(terminus_class).to receive(:port_setting).and_return(nil)
273
+ terminus_class.expects(:port_setting).returns nil
273
274
  Puppet[:server_list] = [["foo", "123"]]
274
275
  expect(terminus_class.port).to eq(123)
275
276
  end
276
277
 
277
278
  it "should prefer failover-selected port from server list" do
278
- expect(terminus_class).to receive(:port_setting).and_return(nil)
279
+ terminus_class.expects(:port_setting).returns nil
279
280
  Puppet[:server_list] = [["foo", "123"],["bar", "321"]]
280
281
  Puppet.override(:serverport => "321") do
281
282
  expect(terminus_class.port).to eq(321)
@@ -283,7 +284,7 @@ describe Puppet::Indirector::REST do
283
284
  end
284
285
 
285
286
  it "should use an explicitly specified more-speciic server when failover is active" do
286
- expect(terminus_class).to receive(:server_setting).and_return(:ca_server)
287
+ terminus_class.expects(:server_setting).returns :ca_server
287
288
  Puppet[:ca_server] = "myserver"
288
289
  Puppet.override(:server => "anotherserver") do
289
290
  expect(terminus_class.server).to eq("myserver")
@@ -291,7 +292,7 @@ describe Puppet::Indirector::REST do
291
292
  end
292
293
 
293
294
  it "should use an explicitly specified more-specific port when failover is active" do
294
- expect(terminus_class).to receive(:port_setting).and_return(:ca_port)
295
+ terminus_class.expects(:port_setting).returns :ca_port
295
296
  Puppet[:ca_port] = 321
296
297
  Puppet.override(:serverport => 543) do
297
298
  expect(terminus_class.port).to eq(321)
@@ -299,8 +300,8 @@ describe Puppet::Indirector::REST do
299
300
  end
300
301
 
301
302
  it "should use a default port when a more-specific server is set" do
302
- expect(terminus_class).to receive(:server_setting).and_return(:ca_server)
303
- expect(terminus_class).to receive(:port_setting).and_return(:ca_port)
303
+ terminus_class.expects(:server_setting).returns :ca_server
304
+ terminus_class.expects(:port_setting).returns :ca_port
304
305
  Puppet[:ca_server] = "myserver"
305
306
  Puppet.override(:server => "anotherserver", :port => 666) do
306
307
  expect(terminus_class.port).to eq(8140)
@@ -312,43 +313,43 @@ describe Puppet::Indirector::REST do
312
313
  end
313
314
 
314
315
  it 'excludes yaml from the Accept header' do
315
- expect(model).to receive(:supported_formats).and_return([:json, :pson, :yaml, :binary])
316
+ model.expects(:supported_formats).returns([:json, :pson, :yaml, :binary])
316
317
 
317
318
  expect(terminus.headers['Accept']).to eq('application/json, text/pson, application/octet-stream')
318
319
  end
319
320
 
320
321
  it 'excludes b64_zlib_yaml from the Accept header' do
321
- expect(model).to receive(:supported_formats).and_return([:json, :pson, :b64_zlib_yaml])
322
+ model.expects(:supported_formats).returns([:json, :pson, :b64_zlib_yaml])
322
323
 
323
324
  expect(terminus.headers['Accept']).to eq('application/json, text/pson')
324
325
  end
325
326
 
326
327
  it 'excludes dot from the Accept header' do
327
- expect(model).to receive(:supported_formats).and_return([:json, :dot])
328
+ model.expects(:supported_formats).returns([:json, :dot])
328
329
 
329
330
  expect(terminus.headers['Accept']).to eq('application/json')
330
331
  end
331
332
 
332
333
  describe "when creating an HTTP client" do
333
334
  it "should use the class's server and port if the indirection request provides neither" do
334
- @request = double('request', :key => "foo", :server => nil, :port => nil)
335
- expect(terminus.class).to receive(:port).and_return(321)
336
- expect(terminus.class).to receive(:server).and_return("myserver")
337
- expect(Puppet::Network::HttpPool).to receive(:http_instance).with("myserver", 321).and_return("myconn")
335
+ @request = stub 'request', :key => "foo", :server => nil, :port => nil
336
+ terminus.class.expects(:port).returns 321
337
+ terminus.class.expects(:server).returns "myserver"
338
+ Puppet::Network::HttpPool.expects(:http_instance).with("myserver", 321).returns "myconn"
338
339
  expect(terminus.network(@request)).to eq("myconn")
339
340
  end
340
341
 
341
342
  it "should use the server from the indirection request if one is present" do
342
- @request = double('request', :key => "foo", :server => "myserver", :port => nil)
343
- allow(terminus.class).to receive(:port).and_return(321)
344
- expect(Puppet::Network::HttpPool).to receive(:http_instance).with("myserver", 321).and_return("myconn")
343
+ @request = stub 'request', :key => "foo", :server => "myserver", :port => nil
344
+ terminus.class.stubs(:port).returns 321
345
+ Puppet::Network::HttpPool.expects(:http_instance).with("myserver", 321).returns "myconn"
345
346
  expect(terminus.network(@request)).to eq("myconn")
346
347
  end
347
348
 
348
349
  it "should use the port from the indirection request if one is present" do
349
- @request = double('request', :key => "foo", :server => nil, :port => 321)
350
- allow(terminus.class).to receive(:server).and_return("myserver")
351
- expect(Puppet::Network::HttpPool).to receive(:http_instance).with("myserver", 321).and_return("myconn")
350
+ @request = stub 'request', :key => "foo", :server => nil, :port => 321
351
+ terminus.class.stubs(:server).returns "myserver"
352
+ Puppet::Network::HttpPool.expects(:http_instance).with("myserver", 321).returns "myconn"
352
353
  expect(terminus.network(@request)).to eq("myconn")
353
354
  end
354
355
  end
@@ -356,11 +357,11 @@ describe Puppet::Indirector::REST do
356
357
  describe "#find" do
357
358
  let(:http_method) { :get }
358
359
  let(:response) { mock_response(200, 'body') }
359
- let(:connection) { double('mock http connection', :get => response, :verify_callback= => nil) }
360
+ let(:connection) { stub('mock http connection', :get => response, :verify_callback= => nil) }
360
361
  let(:request) { find_request('foo') }
361
362
 
362
363
  before :each do
363
- allow(terminus).to receive(:network).and_return(connection)
364
+ terminus.stubs(:network).returns(connection)
364
365
  end
365
366
 
366
367
  it_behaves_like 'a REST terminus method', :find
@@ -382,11 +383,9 @@ describe Puppet::Indirector::REST do
382
383
 
383
384
  request = find_request('whoa', params)
384
385
 
385
- expect(connection).to receive(:post) do |_,req,_|
386
- expect(req.split("&").flatten).to match_array(params.map {|key,value| "#{key}=#{value}"})
387
-
388
- mock_response(200, 'body')
389
- end
386
+ connection.expects(:post).with do |uri, body|
387
+ body.split("&").sort == params.map {|key,value| "#{key}=#{value}"}.sort
388
+ end.returns(mock_response(200, 'body'))
390
389
 
391
390
  terminus.find(request)
392
391
  end
@@ -396,7 +395,7 @@ describe Puppet::Indirector::REST do
396
395
  it "calls get on the connection" do
397
396
  request = find_request('foo bar')
398
397
 
399
- expect(connection).to receive(:get).with("#{url_prefix}/test_model/foo%20bar?environment=production&", anything).and_return(mock_response('200', 'response body'))
398
+ connection.expects(:get).with("#{url_prefix}/test_model/foo%20bar?environment=production&", anything).returns(mock_response('200', 'response body'))
400
399
 
401
400
  expect(terminus.find(request)).to eq(model.new('foo bar', 'response body'))
402
401
  end
@@ -405,14 +404,14 @@ describe Puppet::Indirector::REST do
405
404
  it "returns nil on 404" do
406
405
  response = mock_response('404', nil)
407
406
 
408
- expect(connection).to receive(:get).and_return(response)
407
+ connection.expects(:get).returns(response)
409
408
 
410
409
  expect(terminus.find(request)).to eq(nil)
411
410
  end
412
411
 
413
412
  it 'raises no warning for a 404 (when not asked to do so)' do
414
413
  response = mock_response('404', 'this is the notfound you are looking for')
415
- expect(connection).to receive(:get).and_return(response)
414
+ connection.expects(:get).returns(response)
416
415
  expect{terminus.find(request)}.to_not raise_error()
417
416
  end
418
417
 
@@ -420,7 +419,7 @@ describe Puppet::Indirector::REST do
420
419
  it 'raises an error for a 404 when asked to do so' do
421
420
  request = find_request('foo', :fail_on_404 => true)
422
421
  response = mock_response('404', 'this is the notfound you are looking for')
423
- expect(connection).to receive(:get).and_return(response)
422
+ connection.expects(:get).returns(response)
424
423
 
425
424
  expect do
426
425
  terminus.find(request)
@@ -432,7 +431,7 @@ describe Puppet::Indirector::REST do
432
431
  it 'truncates the URI when it is very long' do
433
432
  request = find_request('foo', :fail_on_404 => true, :long_param => ('A' * 100) + 'B')
434
433
  response = mock_response('404', 'this is the notfound you are looking for')
435
- expect(connection).to receive(:get).and_return(response)
434
+ connection.expects(:get).returns(response)
436
435
 
437
436
  expect do
438
437
  terminus.find(request)
@@ -445,7 +444,7 @@ describe Puppet::Indirector::REST do
445
444
  Puppet.debug = true
446
445
  request = find_request('foo', :fail_on_404 => true, :long_param => ('A' * 100) + 'B')
447
446
  response = mock_response('404', 'this is the notfound you are looking for')
448
- expect(connection).to receive(:get).and_return(response)
447
+ connection.expects(:get).returns(response)
449
448
 
450
449
  expect do
451
450
  terminus.find(request)
@@ -456,9 +455,9 @@ describe Puppet::Indirector::REST do
456
455
  end
457
456
 
458
457
  it "asks the model to deserialize the response body and sets the name on the resulting object to the find key" do
459
- expect(connection).to receive(:get).and_return(response)
458
+ connection.expects(:get).returns response
460
459
 
461
- expect(model).to receive(:convert_from).with(response['content-type'], response.body).and_return(
460
+ model.expects(:convert_from).with(response['content-type'], response.body).returns(
462
461
  model.new('overwritten', 'decoded body')
463
462
  )
464
463
 
@@ -466,44 +465,42 @@ describe Puppet::Indirector::REST do
466
465
  end
467
466
 
468
467
  it "doesn't require the model to support name=" do
469
- class Puppet::TestModel2 < Puppet::TestModel
470
- undef_method :name=
471
- end
472
-
473
- expect(connection).to receive(:get).and_return(response)
474
- instance = Puppet::TestModel2.new('name', 'decoded body')
468
+ connection.expects(:get).returns response
469
+ instance = model.new('name', 'decoded body')
475
470
 
476
- expect(model).to receive(:convert_from).with(response['content-type'], response.body).and_return(instance)
471
+ model.expects(:convert_from).with(response['content-type'], response.body).returns(instance)
472
+ instance.expects(:respond_to?).with(:name=).returns(false)
473
+ instance.expects(:name=).never
477
474
 
478
475
  expect(terminus.find(request)).to eq(model.new('name', 'decoded body'))
479
476
  end
480
477
 
481
478
  it "provides an Accept header containing the list of supported mime types joined with commas" do
482
- expect(connection).to receive(:get).with(anything, hash_including("Accept" => "application/json, text/pson")).and_return(response)
479
+ connection.expects(:get).with(anything, has_entry("Accept" => "application/json, text/pson")).returns(response)
483
480
 
484
- expect(terminus.model).to receive(:supported_formats).and_return([:json, :pson])
481
+ terminus.model.expects(:supported_formats).returns [:json, :pson]
485
482
  terminus.find(request)
486
483
  end
487
484
 
488
485
  it "provides a version header with the current puppet version" do
489
- expect(connection).to receive(:get).with(anything, hash_including(Puppet::Network::HTTP::HEADER_PUPPET_VERSION => Puppet.version)).and_return(response)
486
+ connection.expects(:get).with(anything, has_entry(Puppet::Network::HTTP::HEADER_PUPPET_VERSION => Puppet.version)).returns(response)
490
487
 
491
488
  terminus.find(request)
492
489
  end
493
490
 
494
491
  it "adds an Accept-Encoding header" do
495
- expect(terminus).to receive(:add_accept_encoding).and_return({"accept-encoding" => "gzip"})
492
+ terminus.expects(:add_accept_encoding).returns({"accept-encoding" => "gzip"})
496
493
 
497
- expect(connection).to receive(:get).with(anything, hash_including("accept-encoding" => "gzip")).and_return(response)
494
+ connection.expects(:get).with(anything, has_entry("accept-encoding" => "gzip")).returns(response)
498
495
 
499
496
  terminus.find(request)
500
497
  end
501
498
 
502
499
  it "uses only the mime-type from the content-type header when asking the model to deserialize" do
503
500
  response = mock_response('200', 'mydata', "text/plain; charset=utf-8")
504
- expect(connection).to receive(:get).and_return(response)
501
+ connection.expects(:get).returns(response)
505
502
 
506
- expect(model).to receive(:convert_from).with("text/plain", "mydata").and_return("myobject")
503
+ model.expects(:convert_from).with("text/plain", "mydata").returns "myobject"
507
504
 
508
505
  expect(terminus.find(request)).to eq("myobject")
509
506
  end
@@ -513,9 +510,9 @@ describe Puppet::Indirector::REST do
513
510
  compressed_body = Zlib::Deflate.deflate(uncompressed_body)
514
511
 
515
512
  response = mock_response('200', compressed_body, 'text/plain', 'deflate')
516
- expect(connection).to receive(:get).and_return(response)
513
+ connection.expects(:get).returns(response)
517
514
 
518
- expect(model).to receive(:convert_from).with("text/plain", uncompressed_body).and_return("myobject")
515
+ model.expects(:convert_from).with("text/plain", uncompressed_body).returns "myobject"
519
516
 
520
517
  expect(terminus.find(request)).to eq("myobject")
521
518
  end
@@ -524,29 +521,29 @@ describe Puppet::Indirector::REST do
524
521
  describe "#head" do
525
522
  let(:http_method) { :head }
526
523
  let(:response) { mock_response(200, nil) }
527
- let(:connection) { double('mock http connection', :head => response, :verify_callback= => nil) }
524
+ let(:connection) { stub('mock http connection', :head => response, :verify_callback= => nil) }
528
525
  let(:request) { head_request('foo') }
529
526
 
530
527
  before :each do
531
- allow(terminus).to receive(:network).and_return(connection)
528
+ terminus.stubs(:network).returns(connection)
532
529
  end
533
530
 
534
531
  it_behaves_like 'a REST terminus method', :head
535
532
 
536
533
  it "returns true if there was a successful http response" do
537
- expect(connection).to receive(:head).and_return(mock_response('200', nil))
534
+ connection.expects(:head).returns mock_response('200', nil)
538
535
 
539
536
  expect(terminus.head(request)).to eq(true)
540
537
  end
541
538
 
542
539
  it "returns false on a 404 response" do
543
- expect(connection).to receive(:head).and_return(mock_response('404', nil))
540
+ connection.expects(:head).returns mock_response('404', nil)
544
541
 
545
542
  expect(terminus.head(request)).to eq(false)
546
543
  end
547
544
 
548
545
  it "provides a version header with the current puppet version" do
549
- expect(connection).to receive(:head).with(anything, hash_including(Puppet::Network::HTTP::HEADER_PUPPET_VERSION => Puppet.version)).and_return(response)
546
+ connection.expects(:head).with(anything, has_entry(Puppet::Network::HTTP::HEADER_PUPPET_VERSION => Puppet.version)).returns(response)
550
547
 
551
548
  terminus.head(request)
552
549
  end
@@ -555,18 +552,18 @@ describe Puppet::Indirector::REST do
555
552
  describe "#search" do
556
553
  let(:http_method) { :get }
557
554
  let(:response) { mock_response(200, 'data1,data2,data3') }
558
- let(:connection) { double('mock http connection', :get => response, :verify_callback= => nil) }
555
+ let(:connection) { stub('mock http connection', :get => response, :verify_callback= => nil) }
559
556
  let(:request) { search_request('foo') }
560
557
 
561
558
  before :each do
562
- allow(terminus).to receive(:network).and_return(connection)
559
+ terminus.stubs(:network).returns(connection)
563
560
  end
564
561
 
565
562
  it_behaves_like 'a REST terminus method', :search
566
563
  it_behaves_like 'a deserializing terminus method', :search
567
564
 
568
565
  it "should call the GET http method on a network connection" do
569
- expect(connection).to receive(:get).with("#{url_prefix}/test_models/foo?environment=production&", hash_including('Accept' => anything)).and_return(mock_response(200, 'data3, data4'))
566
+ connection.expects(:get).with("#{url_prefix}/test_models/foo?environment=production&", has_key('Accept')).returns mock_response(200, 'data3, data4')
570
567
 
571
568
  terminus.search(request)
572
569
  end
@@ -574,7 +571,7 @@ describe Puppet::Indirector::REST do
574
571
  it "returns an empty list on 404" do
575
572
  response = mock_response('404', nil)
576
573
 
577
- expect(connection).to receive(:get).and_return(response)
574
+ connection.expects(:get).returns(response)
578
575
 
579
576
  expect(terminus.search(request)).to eq([])
580
577
  end
@@ -584,20 +581,20 @@ describe Puppet::Indirector::REST do
584
581
  end
585
582
 
586
583
  it "should provide an Accept header containing the list of supported formats joined with commas" do
587
- expect(connection).to receive(:get).with(anything, hash_including("Accept" => "application/json, text/pson")).and_return(mock_response(200, ''))
584
+ connection.expects(:get).with(anything, has_entry("Accept" => "application/json, text/pson")).returns(mock_response(200, ''))
588
585
 
589
- expect(terminus.model).to receive(:supported_formats).and_return([:json, :pson])
586
+ terminus.model.expects(:supported_formats).returns [:json, :pson]
590
587
  terminus.search(request)
591
588
  end
592
589
 
593
590
  it "provides a version header with the current puppet version" do
594
- expect(connection).to receive(:get).with(anything, hash_including(Puppet::Network::HTTP::HEADER_PUPPET_VERSION => Puppet.version)).and_return(mock_response(200, ''))
591
+ connection.expects(:get).with(anything, has_entry(Puppet::Network::HTTP::HEADER_PUPPET_VERSION => Puppet.version)).returns(mock_response(200, ''))
595
592
 
596
593
  terminus.search(request)
597
594
  end
598
595
 
599
596
  it "should return an empty array if serialization returns nil" do
600
- allow(model).to receive(:convert_from_multiple).and_return(nil)
597
+ model.stubs(:convert_from_multiple).returns nil
601
598
 
602
599
  expect(terminus.search(request)).to eq([])
603
600
  end
@@ -606,18 +603,18 @@ describe Puppet::Indirector::REST do
606
603
  describe "#destroy" do
607
604
  let(:http_method) { :delete }
608
605
  let(:response) { mock_response(200, 'body') }
609
- let(:connection) { double('mock http connection', :delete => response, :verify_callback= => nil) }
606
+ let(:connection) { stub('mock http connection', :delete => response, :verify_callback= => nil) }
610
607
  let(:request) { delete_request('foo') }
611
608
 
612
609
  before :each do
613
- allow(terminus).to receive(:network).and_return(connection)
610
+ terminus.stubs(:network).returns(connection)
614
611
  end
615
612
 
616
613
  it_behaves_like 'a REST terminus method', :destroy
617
614
  it_behaves_like 'a deserializing terminus method', :destroy
618
615
 
619
616
  it "should call the DELETE http method on a network connection" do
620
- expect(connection).to receive(:delete).with("#{url_prefix}/test_model/foo?environment=production&", hash_including('Accept' => anything)).and_return(response)
617
+ connection.expects(:delete).with("#{url_prefix}/test_model/foo?environment=production&", has_key('Accept')).returns(response)
621
618
 
622
619
  terminus.destroy(request)
623
620
  end
@@ -629,7 +626,7 @@ describe Puppet::Indirector::REST do
629
626
  end
630
627
 
631
628
  it "should deserialize and return the http response" do
632
- expect(connection).to receive(:delete).and_return(response)
629
+ connection.expects(:delete).returns response
633
630
 
634
631
  expect(terminus.destroy(request)).to eq(model.new('', 'body'))
635
632
  end
@@ -637,20 +634,20 @@ describe Puppet::Indirector::REST do
637
634
  it "returns nil on 404" do
638
635
  response = mock_response('404', nil)
639
636
 
640
- expect(connection).to receive(:delete).and_return(response)
637
+ connection.expects(:delete).returns(response)
641
638
 
642
639
  expect(terminus.destroy(request)).to eq(nil)
643
640
  end
644
641
 
645
642
  it "should provide an Accept header containing the list of supported formats joined with commas" do
646
- expect(connection).to receive(:delete).with(anything, hash_including("Accept" => "application/json, text/pson")).and_return(response)
643
+ connection.expects(:delete).with(anything, has_entry("Accept" => "application/json, text/pson")).returns(response)
647
644
 
648
- expect(terminus.model).to receive(:supported_formats).and_return([:json, :pson])
645
+ terminus.model.expects(:supported_formats).returns [:json, :pson]
649
646
  terminus.destroy(request)
650
647
  end
651
648
 
652
649
  it "provides a version header with the current puppet version" do
653
- expect(connection).to receive(:delete).with(anything, hash_including(Puppet::Network::HTTP::HEADER_PUPPET_VERSION => Puppet.version)).and_return(response)
650
+ connection.expects(:delete).with(anything, has_entry(Puppet::Network::HTTP::HEADER_PUPPET_VERSION => Puppet.version)).returns(response)
654
651
 
655
652
  terminus.destroy(request)
656
653
  end
@@ -659,18 +656,18 @@ describe Puppet::Indirector::REST do
659
656
  describe "#save" do
660
657
  let(:http_method) { :put }
661
658
  let(:response) { mock_response(200, 'body') }
662
- let(:connection) { double('mock http connection', :put => response, :verify_callback= => nil) }
659
+ let(:connection) { stub('mock http connection', :put => response, :verify_callback= => nil) }
663
660
  let(:instance) { model.new('the thing', 'some contents') }
664
661
  let(:request) { save_request(instance.name, instance) }
665
662
 
666
663
  before :each do
667
- allow(terminus).to receive(:network).and_return(connection)
664
+ terminus.stubs(:network).returns(connection)
668
665
  end
669
666
 
670
667
  it_behaves_like 'a REST terminus method', :save
671
668
 
672
669
  it "should call the PUT http method on a network connection" do
673
- expect(connection).to receive(:put).with("#{url_prefix}/test_model/the%20thing?environment=production&", anything, hash_including("Content-Type")).and_return(response)
670
+ connection.expects(:put).with("#{url_prefix}/test_model/the%20thing?environment=production&", anything, has_key("Content-Type")).returns response
674
671
 
675
672
  terminus.save(request)
676
673
  end
@@ -682,8 +679,8 @@ describe Puppet::Indirector::REST do
682
679
  end
683
680
 
684
681
  it "should serialize the instance using the default format and pass the result as the body of the request" do
685
- expect(instance).to receive(:render).and_return("serial_instance")
686
- expect(connection).to receive(:put).with(anything, "serial_instance", anything).and_return(response)
682
+ instance.expects(:render).returns "serial_instance"
683
+ connection.expects(:put).with(anything, "serial_instance", anything).returns response
687
684
 
688
685
  terminus.save(request)
689
686
  end
@@ -691,36 +688,36 @@ describe Puppet::Indirector::REST do
691
688
  it "returns nil on 404" do
692
689
  response = mock_response('404', nil)
693
690
 
694
- expect(connection).to receive(:put).and_return(response)
691
+ connection.expects(:put).returns(response)
695
692
 
696
693
  expect(terminus.save(request)).to eq(nil)
697
694
  end
698
695
 
699
696
  it "returns nil" do
700
- expect(connection).to receive(:put).and_return(response)
697
+ connection.expects(:put).returns response
701
698
 
702
699
  expect(terminus.save(request)).to be_nil
703
700
  end
704
701
 
705
702
  it "should provide an Accept header containing the list of supported formats joined with commas" do
706
- expect(connection).to receive(:put).with(anything, anything, hash_including("Accept" => "application/json, text/pson")).and_return(response)
703
+ connection.expects(:put).with(anything, anything, has_entry("Accept" => "application/json, text/pson")).returns(response)
707
704
 
708
- expect(instance).to receive(:render).and_return('')
709
- expect(model).to receive(:supported_formats).and_return([:json, :pson])
710
- expect(instance).to receive(:mime).and_return("supported")
705
+ instance.expects(:render).returns('')
706
+ model.expects(:supported_formats).returns [:json, :pson]
707
+ instance.expects(:mime).returns "supported"
711
708
 
712
709
  terminus.save(request)
713
710
  end
714
711
 
715
712
  it "provides a version header with the current puppet version" do
716
- expect(connection).to receive(:put).with(anything, anything, hash_including(Puppet::Network::HTTP::HEADER_PUPPET_VERSION => Puppet.version)).and_return(response)
713
+ connection.expects(:put).with(anything, anything, has_entry(Puppet::Network::HTTP::HEADER_PUPPET_VERSION => Puppet.version)).returns(response)
717
714
 
718
715
  terminus.save(request)
719
716
  end
720
717
 
721
718
  it "should provide a Content-Type header containing the mime-type of the sent object" do
722
- expect(instance).to receive(:mime).and_return("mime")
723
- expect(connection).to receive(:put).with(anything, anything, hash_including('Content-Type' => "mime")).and_return(response)
719
+ instance.expects(:mime).returns "mime"
720
+ connection.expects(:put).with(anything, anything, has_entry('Content-Type' => "mime")).returns(response)
724
721
 
725
722
  terminus.save(request)
726
723
  end
@@ -729,31 +726,31 @@ describe Puppet::Indirector::REST do
729
726
  describe '#handle_response' do
730
727
  # There are multiple request types to choose from, this may not be the one I want for this situation
731
728
  let(:response) { mock_response(200, 'body') }
732
- let(:connection) { double('mock http connection', :put => response, :verify_callback= => nil) }
729
+ let(:connection) { stub('mock http connection', :put => response, :verify_callback= => nil) }
733
730
  let(:instance) { model.new('the thing', 'some contents') }
734
731
  let(:request) { save_request(instance.name, instance) }
735
732
 
736
733
  before :each do
737
- allow(terminus).to receive(:network).and_return(connection)
734
+ terminus.stubs(:network).returns(connection)
738
735
  end
739
736
 
740
737
  it 'adds server_agent_version to the context if not already set' do
741
- expect(Puppet).to receive(:push_context).with(:server_agent_version => Puppet.version)
738
+ Puppet.expects(:push_context).with(:server_agent_version => Puppet.version)
742
739
  terminus.handle_response(request, response)
743
740
  end
744
741
 
745
742
  it 'does not add server_agent_version to the context if it is already set' do
746
743
  Puppet.override(:server_agent_version => "5.3.4") do
747
- expect(Puppet).not_to receive(:push_context)
744
+ Puppet.expects(:push_context).never
748
745
  terminus.handle_response(request, response)
749
746
  end
750
747
  end
751
748
 
752
749
  it 'downgrades to pson and emits a warning' do
753
- allow(response).to receive(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).and_return('4.2.8')
750
+ response.stubs(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).returns('4.2.8')
754
751
  Puppet[:preferred_serialization_format] = 'other'
755
752
 
756
- expect(Puppet).to receive(:warning).with('Downgrading to PSON for future requests')
753
+ Puppet.expects(:warning).with('Downgrading to PSON for future requests')
757
754
 
758
755
  terminus.handle_response(request, response)
759
756
 
@@ -781,7 +778,7 @@ describe Puppet::Indirector::REST do
781
778
  request = Puppet::Indirector::Request.new(:indirection, method, 'key', nil)
782
779
  stub_response = mock_response('200', 'body')
783
780
 
784
- expect(request).to receive(:do_request).with(terminus.class.srv_service, terminus.class.server, terminus.class.port).and_return(stub_response)
781
+ request.expects(:do_request).with(terminus.class.srv_service, terminus.class.server, terminus.class.port).returns(stub_response)
785
782
 
786
783
  terminus.send(method, request)
787
784
  end