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
@@ -7,7 +7,6 @@ describe Puppet::Type.type(:package).provider(:pip3) do
7
7
  it { is_expected.to be_upgradeable }
8
8
  it { is_expected.to be_versionable }
9
9
  it { is_expected.to be_install_options }
10
- it { is_expected.to be_targetable }
11
10
 
12
11
  it "should inherit most things from pip provider" do
13
12
  expect(described_class < Puppet::Type.type(:package).provider(:pip))
@@ -17,20 +16,4 @@ describe Puppet::Type.type(:package).provider(:pip3) do
17
16
  expect(described_class.cmd).to eq(["pip3"])
18
17
  end
19
18
 
20
- context 'calculated specificity' do
21
- context 'when is not defaultfor' do
22
- subject { described_class.specificity }
23
- it { is_expected.to eql 1 }
24
- end
25
-
26
- context 'when is defaultfor' do
27
- let(:os) { Facter.value(:operatingsystem) }
28
- subject do
29
- described_class.defaultfor(operatingsystem: os)
30
- described_class.specificity
31
- end
32
- it { is_expected.to be > 100 }
33
- end
34
- end
35
-
36
19
  end
@@ -3,21 +3,12 @@ require 'spec_helper'
3
3
  osfamilies = { 'windows' => ['pip.exe'], 'other' => ['pip', 'pip-python'] }
4
4
 
5
5
  describe Puppet::Type.type(:package).provider(:pip) do
6
-
7
- it { is_expected.to be_installable }
8
- it { is_expected.to be_uninstallable }
9
- it { is_expected.to be_upgradeable }
10
- it { is_expected.to be_versionable }
11
- it { is_expected.to be_install_options }
12
- it { is_expected.to be_targetable }
13
-
14
- before do
6
+ before do
15
7
  @resource = Puppet::Resource.new(:package, "fake_package")
16
- allow(@resource).to receive(:original_parameters).and_return({})
17
8
  @provider = described_class.new(@resource)
18
- @client = double('client')
19
- allow(@client).to receive(:call).with('package_releases', 'real_package').and_return(["1.3", "1.2.5", "1.2.4"])
20
- allow(@client).to receive(:call).with('package_releases', 'fake_package').and_return([])
9
+ @client = stub_everything('client')
10
+ @client.stubs(:call).with('package_releases', 'real_package').returns(["1.3", "1.2.5", "1.2.4"])
11
+ @client.stubs(:call).with('package_releases', 'fake_package').returns([])
21
12
  end
22
13
 
23
14
  context "parse" do
@@ -36,17 +27,17 @@ describe Puppet::Type.type(:package).provider(:pip) do
36
27
 
37
28
  context "cmd" do
38
29
  it "should return 'pip.exe' by default on Windows systems" do
39
- allow(Puppet::Util::Platform).to receive(:windows?).and_return(true)
30
+ Puppet::Util::Platform.stubs(:windows?).returns true
40
31
  expect(described_class.cmd[0]).to eq('pip.exe')
41
32
  end
42
33
 
43
34
  it "could return pip-python on legacy redhat systems which rename pip" do
44
- allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
35
+ Puppet::Util::Platform.stubs(:windows?).returns false
45
36
  expect(described_class.cmd[1]).to eq('pip-python')
46
37
  end
47
38
 
48
39
  it "should return pip by default on other systems" do
49
- allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
40
+ Puppet::Util::Platform.stubs(:windows?).returns false
50
41
  expect(described_class.cmd[0]).to eq('pip')
51
42
  end
52
43
  end
@@ -54,18 +45,18 @@ describe Puppet::Type.type(:package).provider(:pip) do
54
45
  context "instances" do
55
46
  osfamilies.each do |osfamily, pip_cmds|
56
47
  it "should return an array on #{osfamily} systems when #{pip_cmds.join(' or ')} is present" do
57
- allow(Puppet::Util::Platform).to receive(:windows?).and_return(osfamily == 'windows')
48
+ Puppet::Util::Platform.stubs(:windows?).returns (osfamily == 'windows')
58
49
  pip_cmds.each do |pip_cmd|
59
50
  pip_cmds.each do |cmd|
60
51
  unless cmd == pip_cmd
61
- expect(described_class).to receive(:which).with(cmd).and_return(nil)
52
+ described_class.expects(:which).with(cmd).returns(nil)
62
53
  end
63
54
  end
64
- allow(described_class).to receive(:pip_version).with(pip_cmd).and_return('8.0.1')
65
- expect(described_class).to receive(:which).with(pip_cmd).and_return(pip_cmd)
66
- p = double("process")
67
- expect(p).to receive(:collect).and_yield("real_package==1.2.5")
68
- expect(described_class).to receive(:execpipe).with([pip_cmd, ["freeze"]]).and_yield(p)
55
+ described_class.stubs(:pip_version).returns('8.0.1')
56
+ described_class.expects(:which).with(pip_cmd).returns("/fake/bin/#{pip_cmd}")
57
+ p = stub("process")
58
+ p.expects(:collect).yields("real_package==1.2.5")
59
+ described_class.expects(:execpipe).with(["/fake/bin/#{pip_cmd}", "freeze"]).yields(p)
69
60
  described_class.instances
70
61
  end
71
62
  end
@@ -74,21 +65,21 @@ describe Puppet::Type.type(:package).provider(:pip) do
74
65
  versions = ['8.1.0', '9.0.1']
75
66
  versions.each do |version|
76
67
  it "should use the --all option when version is '#{version}'" do
77
- allow(Puppet::Util::Platform).to receive(:windows?).and_return(osfamily == 'windows')
78
- allow(described_class).to receive(:provider_command).and_return('/fake/bin/pip')
79
- allow(described_class).to receive(:pip_version).with('/fake/bin/pip').and_return(version)
80
- p = double("process")
81
- expect(p).to receive(:collect).and_yield("real_package==1.2.5")
82
- expect(described_class).to receive(:execpipe).with(["/fake/bin/pip", ["freeze", "--all"]]).and_yield(p)
68
+ Puppet::Util::Platform.stubs(:windows?).returns (osfamily == 'windows')
69
+ described_class.stubs(:pip_cmd).returns('/fake/bin/pip')
70
+ described_class.stubs(:pip_version).returns(version)
71
+ p = stub("process")
72
+ p.expects(:collect).yields("real_package==1.2.5")
73
+ described_class.expects(:execpipe).with(["/fake/bin/pip", "freeze", "--all"]).yields(p)
83
74
  described_class.instances
84
75
  end
85
76
  end
86
77
  end
87
78
 
88
79
  it "should return an empty array on #{osfamily} systems when #{pip_cmds.join(' and ')} are missing" do
89
- allow(Puppet::Util::Platform).to receive(:windows?).and_return(osfamily == 'windows')
80
+ Puppet::Util::Platform.stubs(:windows?).returns (osfamily == 'windows')
90
81
  pip_cmds.each do |cmd|
91
- expect(described_class).to receive(:which).with(cmd).and_return(nil)
82
+ described_class.expects(:which).with(cmd).returns nil
92
83
  end
93
84
  expect(described_class.instances).to eq([])
94
85
  end
@@ -98,46 +89,40 @@ describe Puppet::Type.type(:package).provider(:pip) do
98
89
  context "query" do
99
90
  before do
100
91
  @resource[:name] = "real_package"
101
- allow(described_class).to receive(:provider_command).and_return('/fake/bin/pip')
102
- allow(described_class).to receive(:validate_command).with('/fake/bin/pip')
103
92
  end
104
93
 
105
94
  it "should return a hash when pip and the package are present" do
106
- expect(described_class).to receive(:instances).and_return([described_class.new({
95
+ described_class.expects(:instances).returns [described_class.new({
107
96
  :ensure => "1.2.5",
108
97
  :name => "real_package",
109
98
  :provider => :pip,
110
- :command => '/fake/bin/pip',
111
- })])
99
+ })]
112
100
 
113
101
  expect(@provider.query).to eq({
114
102
  :ensure => "1.2.5",
115
103
  :name => "real_package",
116
104
  :provider => :pip,
117
- :command => '/fake/bin/pip',
118
105
  })
119
106
  end
120
107
 
121
108
  it "should return nil when the package is missing" do
122
- expect(described_class).to receive(:instances).and_return([])
109
+ described_class.expects(:instances).returns []
123
110
  expect(@provider.query).to eq(nil)
124
111
  end
125
112
 
126
113
  it "should be case insensitive" do
127
114
  @resource[:name] = "Real_Package"
128
115
 
129
- expect(described_class).to receive(:instances).and_return([described_class.new({
116
+ described_class.expects(:instances).returns [described_class.new({
130
117
  :ensure => "1.2.5",
131
118
  :name => "real_package",
132
119
  :provider => :pip,
133
- :command => '/fake/bin/pip',
134
- })])
120
+ })]
135
121
 
136
122
  expect(@provider.query).to eq({
137
123
  :ensure => "1.2.5",
138
124
  :name => "real_package",
139
125
  :provider => :pip,
140
- :command => '/fake/bin/pip',
141
126
  })
142
127
  end
143
128
  end
@@ -145,12 +130,10 @@ describe Puppet::Type.type(:package).provider(:pip) do
145
130
  context "latest" do
146
131
  context "with pip version < 1.5.4" do
147
132
  before :each do
148
- allow(described_class).to receive(:pip_version).with("/fake/bin/pip").and_return('1.0.1')
149
- allow(described_class).to receive(:which).with('pip').and_return("/fake/bin/pip")
150
- allow(described_class).to receive(:which).with('pip-python').and_return("/fake/bin/pip")
151
- allow(described_class).to receive(:which).with('pip.exe').and_return("/fake/bin/pip")
152
- allow(described_class).to receive(:provider_command).and_return('/fake/bin/pip')
153
- allow(described_class).to receive(:validate_command).with('/fake/bin/pip')
133
+ described_class.stubs(:pip_version).returns('1.0.1')
134
+ described_class.stubs(:which).with('pip').returns("/fake/bin/pip")
135
+ described_class.stubs(:which).with('pip-python').returns("/fake/bin/pip")
136
+ described_class.stubs(:which).with('pip.exe').returns("/fake/bin/pip")
154
137
  end
155
138
 
156
139
  it "should find a version number for new_pip_package" do
@@ -163,7 +146,7 @@ describe Puppet::Type.type(:package).provider(:pip) do
163
146
  Successfully downloaded real-package
164
147
  EOS
165
148
  )
166
- expect(Puppet::Util::Execution).to receive(:execpipe).and_yield(p).once
149
+ Puppet::Util::Execution.expects(:execpipe).yields(p).once
167
150
  @resource[:name] = "real_package"
168
151
  expect(@provider.latest).to eq('0.10.1')
169
152
  end
@@ -193,7 +176,7 @@ describe Puppet::Type.type(:package).provider(:pip) do
193
176
  Storing complete log in /root/.pip/pip.log
194
177
  EOS
195
178
  )
196
- expect(Puppet::Util::Execution).to receive(:execpipe).and_yield(p).once
179
+ Puppet::Util::Execution.expects(:execpipe).yields(p).once
197
180
  @resource[:name] = "fake_package"
198
181
  expect(@provider.latest).to eq(nil)
199
182
  end
@@ -203,12 +186,10 @@ describe Puppet::Type.type(:package).provider(:pip) do
203
186
  # For Pip 1.5.4 and above, you can get a version list from CLI - which allows for native pip behavior
204
187
  # with regards to custom repositories, proxies and the like
205
188
  before :each do
206
- allow(described_class).to receive(:pip_version).with("/fake/bin/pip").and_return('1.5.4')
207
- allow(described_class).to receive(:which).with('pip').and_return("/fake/bin/pip")
208
- allow(described_class).to receive(:which).with('pip-python').and_return("/fake/bin/pip")
209
- allow(described_class).to receive(:which).with('pip.exe').and_return("/fake/bin/pip")
210
- allow(described_class).to receive(:provider_command).and_return('/fake/bin/pip')
211
- allow(described_class).to receive(:validate_command).with('/fake/bin/pip')
189
+ described_class.stubs(:pip_version).returns('1.5.4')
190
+ described_class.stubs(:which).with('pip').returns("/fake/bin/pip")
191
+ described_class.stubs(:which).with('pip-python').returns("/fake/bin/pip")
192
+ described_class.stubs(:which).with('pip.exe').returns("/fake/bin/pip")
212
193
  end
213
194
 
214
195
  it "should find a version number for real_package" do
@@ -219,7 +200,7 @@ describe Puppet::Type.type(:package).provider(:pip) do
219
200
  No matching distribution found for real-package==versionplease
220
201
  EOS
221
202
  )
222
- expect(Puppet::Util::Execution).to receive(:execpipe).with(["/fake/bin/pip", "install", "real_package==versionplease"]).and_yield(p).once
203
+ Puppet::Util::Execution.expects(:execpipe).with(["/fake/bin/pip", "install", "real_package==versionplease"]).yields(p).once
223
204
  @resource[:name] = "real_package"
224
205
  latest = @provider.latest
225
206
  expect(latest).to eq('1.9b1')
@@ -233,7 +214,7 @@ describe Puppet::Type.type(:package).provider(:pip) do
233
214
  No matching distribution found for fake-package==versionplease
234
215
  EOS
235
216
  )
236
- expect(Puppet::Util::Execution).to receive(:execpipe).with(["/fake/bin/pip", "install", "fake_package==versionplease"]).and_yield(p).once
217
+ Puppet::Util::Execution.expects(:execpipe).with(["/fake/bin/pip", "install", "fake_package==versionplease"]).yields(p).once
237
218
  @resource[:name] = "fake_package"
238
219
  expect(@provider.latest).to eq(nil)
239
220
  end
@@ -246,7 +227,7 @@ describe Puppet::Type.type(:package).provider(:pip) do
246
227
  No distributions matching the version for real-package==versionplease
247
228
  EOS
248
229
  )
249
- expect(Puppet::Util::Execution).to receive(:execpipe).with(["/fake/bin/pip", "install", "real_package==versionplease"]).and_yield(p).once
230
+ Puppet::Util::Execution.expects(:execpipe).with(["/fake/bin/pip", "install", "real_package==versionplease"]).yields(p).once
250
231
  @resource[:name] = "real_package"
251
232
  latest = @provider.latest
252
233
  expect(latest).to eq('15.0.2')
@@ -258,14 +239,13 @@ describe Puppet::Type.type(:package).provider(:pip) do
258
239
  before do
259
240
  @resource[:name] = "fake_package"
260
241
  @url = "git+https://example.com/fake_package.git"
261
- allow(described_class).to receive(:provider_command).and_return('/fake/bin/pip')
262
- allow(described_class).to receive(:validate_command).with('/fake/bin/pip')
263
242
  end
264
243
 
265
244
  it "should install" do
266
245
  @resource[:ensure] = :installed
267
246
  @resource[:source] = nil
268
- expect(@provider).to receive(:execute).with(["/fake/bin/pip", ["install", "-q", "fake_package"]])
247
+ @provider.expects(:lazy_pip).
248
+ with("install", '-q', "fake_package")
269
249
  @provider.install
270
250
  end
271
251
 
@@ -273,9 +253,8 @@ describe Puppet::Type.type(:package).provider(:pip) do
273
253
  # The -e flag makes the provider non-idempotent
274
254
  @resource[:ensure] = :installed
275
255
  @resource[:source] = @url
276
- # TJK
277
- expect(@provider).to receive(:execute) do |*args|
278
- expect(args).not_to include("-e")
256
+ @provider.expects(:lazy_pip).with() do |*args|
257
+ not args.include?("-e")
279
258
  end
280
259
  @provider.install
281
260
  end
@@ -283,31 +262,31 @@ describe Puppet::Type.type(:package).provider(:pip) do
283
262
  it "should install from SCM" do
284
263
  @resource[:ensure] = :installed
285
264
  @resource[:source] = @url
286
- expect(@provider).to receive(:execute).with(["/fake/bin/pip", ["install", "-q", "#{@url}#egg=fake_package"]])
265
+ @provider.expects(:lazy_pip).
266
+ with("install", '-q', "#{@url}#egg=fake_package")
287
267
  @provider.install
288
268
  end
289
269
 
290
270
  it "should install a particular SCM revision" do
291
271
  @resource[:ensure] = "0123456"
292
272
  @resource[:source] = @url
293
- # TJK
294
- expect(@provider).to receive(:execute).with(["/fake/bin/pip", ["install", "-q", "#{@url}@0123456#egg=fake_package"]])
273
+ @provider.expects(:lazy_pip).
274
+ with("install", "-q", "#{@url}@0123456#egg=fake_package")
295
275
  @provider.install
296
276
  end
297
277
 
298
278
  it "should install a particular version" do
299
279
  @resource[:ensure] = "0.0.0"
300
280
  @resource[:source] = nil
301
- # TJK
302
- expect(@provider).to receive(:execute).with(["/fake/bin/pip", ["install", "-q", "fake_package==0.0.0"]])
281
+ @provider.expects(:lazy_pip).with("install", "-q", "fake_package==0.0.0")
303
282
  @provider.install
304
283
  end
305
284
 
306
285
  it "should upgrade" do
307
286
  @resource[:ensure] = :latest
308
287
  @resource[:source] = nil
309
- # TJK
310
- expect(@provider).to receive(:execute).with(["/fake/bin/pip", ["install", "-q", "--upgrade", "fake_package"]])
288
+ @provider.expects(:lazy_pip).
289
+ with("install", "-q", "--upgrade", "fake_package")
311
290
  @provider.install
312
291
  end
313
292
 
@@ -315,54 +294,86 @@ describe Puppet::Type.type(:package).provider(:pip) do
315
294
  @resource[:ensure] = :installed
316
295
  @resource[:source] = nil
317
296
  @resource[:install_options] = [{"--timeout" => "10"}, "--no-index"]
318
- expect(@provider).to receive(:execute).with(["/fake/bin/pip", ["install", "-q", "--timeout=10", "--no-index", "fake_package"]])
297
+ @provider.expects(:lazy_pip).
298
+ with("install", "-q", "--timeout=10", "--no-index", "fake_package")
319
299
  @provider.install
320
300
  end
321
301
  end
322
302
 
323
303
  context "uninstall" do
324
- before do
325
- allow(described_class).to receive(:provider_command).and_return('/fake/bin/pip')
326
- allow(described_class).to receive(:validate_command).with('/fake/bin/pip')
327
- end
328
-
329
304
  it "should uninstall" do
330
305
  @resource[:name] = "fake_package"
331
- expect(@provider).to receive(:execute).with(["/fake/bin/pip", ["uninstall", "-y", "-q", "fake_package"]])
306
+ @provider.expects(:lazy_pip).
307
+ with('uninstall', '-y', '-q', 'fake_package')
332
308
  @provider.uninstall
333
309
  end
334
310
  end
335
311
 
336
312
  context "update" do
337
313
  it "should just call install" do
338
- expect(@provider).to receive(:install).and_return(nil)
314
+ @provider.expects(:install).returns(nil)
339
315
  @provider.update
340
316
  end
341
317
  end
342
318
 
343
319
  context "pip_version" do
320
+ it "should return nil on missing pip" do
321
+ described_class.stubs(:pip_cmd).returns(nil)
322
+ expect(described_class.pip_version).to eq(nil)
323
+ end
324
+
344
325
  it "should look up version if pip is present" do
345
- allow(described_class).to receive(:pip_cmd).and_return('/fake/bin/pip')
346
- p = double("process")
347
- expect(p).to receive(:collect).and_yield('pip 8.0.2 from /usr/local/lib/python2.7/dist-packages (python 2.7)')
348
- expect(described_class).to receive(:execpipe).with(['/fake/bin/pip', '--version']).and_yield(p)
349
- expect(described_class.pip_version('/fake/bin/pip')).to eq('8.0.2')
326
+ described_class.stubs(:pip_cmd).returns('/fake/bin/pip')
327
+ p = stub("process")
328
+ p.expects(:collect).yields('pip 8.0.2 from /usr/local/lib/python2.7/dist-packages (python 2.7)')
329
+ described_class.expects(:execpipe).with(['/fake/bin/pip', '--version']).yields(p)
330
+ expect(described_class.pip_version).to eq('8.0.2')
350
331
  end
351
332
  end
352
333
 
353
- context 'calculated specificity' do
354
- context 'when is not defaultfor' do
355
- subject { described_class.specificity }
356
- it { is_expected.to eql 1 }
334
+ context "lazy_pip" do
335
+ after(:each) do
336
+ Puppet::Type::Package::ProviderPip.instance_variable_set(:@confine_collection, nil)
337
+ end
338
+
339
+ it "should succeed if pip is present" do
340
+ @provider.stubs(:pip).returns(nil)
341
+ @provider.method(:lazy_pip).call "freeze"
357
342
  end
358
343
 
359
- context 'when is defaultfor' do
360
- let(:os) { Facter.value(:operatingsystem) }
361
- subject do
362
- described_class.defaultfor(operatingsystem: os)
363
- described_class.specificity
344
+ osfamilies.each do |osfamily, pip_cmds|
345
+ pip_cmds.each do |pip_cmd|
346
+ it "should retry on #{osfamily} systems if #{pip_cmd} has not yet been found" do
347
+ Puppet::Util::Platform.stubs(:windows?).returns (osfamily == 'windows')
348
+ @provider.expects(:pip).twice.with('freeze').raises(NoMethodError).then.returns(nil)
349
+ pip_cmds.each do |cmd|
350
+ unless cmd == pip_cmd
351
+ @provider.expects(:which).with(cmd).returns(nil)
352
+ end
353
+ end
354
+ @provider.expects(:which).with(pip_cmd).returns("/fake/bin/#{pip_cmd}")
355
+ @provider.method(:lazy_pip).call "freeze"
356
+ end
357
+ end
358
+
359
+ it "should fail on #{osfamily} systems if #{pip_cmds.join(' and ')} are missing" do
360
+ Puppet::Util::Platform.stubs(:windows?).returns (osfamily == 'windows')
361
+ @provider.expects(:pip).with('freeze').raises(NoMethodError)
362
+ pip_cmds.each do |pip_cmd|
363
+ @provider.expects(:which).with(pip_cmd).returns(nil)
364
+ end
365
+ expect { @provider.method(:lazy_pip).call("freeze") }.to raise_error(NoMethodError)
366
+ end
367
+
368
+ it "should output a useful error message on #{osfamily} systems if #{pip_cmds.join(' and ')} are missing" do
369
+ Puppet::Util::Platform.stubs(:windows?).returns (osfamily == 'windows')
370
+ @provider.expects(:pip).with('freeze').raises(NoMethodError)
371
+ pip_cmds.each do |pip_cmd|
372
+ @provider.expects(:which).with(pip_cmd).returns(nil)
373
+ end
374
+ expect { @provider.method(:lazy_pip).call("freeze") }.
375
+ to raise_error(NoMethodError, "Could not locate command #{pip_cmds.join(' and ')}.")
364
376
  end
365
- it { is_expected.to be > 100 }
366
377
  end
367
378
  end
368
379
  end
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
 
3
4
  describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platform.jruby? do
@@ -15,7 +16,7 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
15
16
  end
16
17
 
17
18
  before :each do
18
- allow(described_class).to receive(:command).with(:pkg).and_return('/bin/pkg')
19
+ described_class.stubs(:command).with(:pkg).returns('/bin/pkg')
19
20
  end
20
21
 
21
22
  def self.it_should_respond_to(*actions)
@@ -31,20 +32,20 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
31
32
  context 'default' do
32
33
  [ 10 ].each do |ver|
33
34
  it "should not be the default provider on Solaris #{ver}" do
34
- allow(Facter).to receive(:value).with(:osfamily).and_return(:Solaris)
35
- allow(Facter).to receive(:value).with(:kernelrelease).and_return("5.#{ver}")
36
- allow(Facter).to receive(:value).with(:operatingsystem).and_return(:Solaris)
37
- allow(Facter).to receive(:value).with(:operatingsystemmajrelease).and_return("#{ver}")
35
+ Facter.stubs(:value).with(:osfamily).returns(:Solaris)
36
+ Facter.stubs(:value).with(:kernelrelease).returns("5.#{ver}")
37
+ Facter.stubs(:value).with(:operatingsystem).returns(:Solaris)
38
+ Facter.stubs(:value).with(:operatingsystemmajrelease).returns("#{ver}")
38
39
  expect(described_class).to_not be_default
39
40
  end
40
41
  end
41
42
 
42
43
  [ 11, 12 ].each do |ver|
43
44
  it "should be the default provider on Solaris #{ver}" do
44
- allow(Facter).to receive(:value).with(:osfamily).and_return(:Solaris)
45
- allow(Facter).to receive(:value).with(:kernelrelease).and_return("5.#{ver}")
46
- allow(Facter).to receive(:value).with(:operatingsystem).and_return(:Solaris)
47
- allow(Facter).to receive(:value).with(:operatingsystemmajrelease).and_return("#{ver}")
45
+ Facter.stubs(:value).with(:osfamily).returns(:Solaris)
46
+ Facter.stubs(:value).with(:kernelrelease).returns("5.#{ver}")
47
+ Facter.stubs(:value).with(:operatingsystem).returns(:Solaris)
48
+ Facter.stubs(:value).with(:operatingsystemmajrelease).returns("#{ver}")
48
49
  expect(described_class).to be_default
49
50
  end
50
51
  end
@@ -103,62 +104,61 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
103
104
 
104
105
  context ":latest" do
105
106
  before do
106
- expect(described_class).to receive(:pkg).with(:refresh)
107
+ described_class.expects(:pkg).with(:refresh)
107
108
  end
108
-
109
109
  it "should work correctly for ensure latest on solaris 11 (UFOXI) when there are no further packages to install" do
110
- expect(described_class).to receive(:pkg).with(:list,'-Hvn','dummy').and_return(File.read(my_fixture('dummy_solaris11.installed')))
110
+ described_class.expects(:pkg).with(:list,'-Hvn','dummy').returns File.read(my_fixture('dummy_solaris11.installed'))
111
111
  expect(provider.latest).to eq('1.0.6,5.11-0.175.0.0.0.2.537:20131230T130000Z')
112
112
  end
113
113
 
114
114
  it "should work correctly for ensure latest on solaris 11 in the presence of a certificate expiration warning" do
115
- expect(described_class).to receive(:pkg).with(:list,'-Hvn','dummy').and_return(File.read(my_fixture('dummy_solaris11.certificate_warning')))
115
+ described_class.expects(:pkg).with(:list,'-Hvn','dummy').returns File.read(my_fixture('dummy_solaris11.certificate_warning'))
116
116
  expect(provider.latest).to eq("1.0.6-0.175.0.0.0.2.537")
117
117
  end
118
118
 
119
119
  it "should work correctly for ensure latest on solaris 11(known UFOXI)" do
120
- expect(Puppet::Util::Execution).to receive(:execute)
120
+ Puppet::Util::Execution.expects(:execute)
121
121
  .with(['/bin/pkg', 'update', '-n', 'dummy'], {:failonfail => false, :combine => true})
122
- .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
123
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
122
+ .returns(Puppet::Util::Execution::ProcessOutput.new('', 0))
123
+ $CHILD_STATUS.stubs(:exitstatus).returns 0
124
124
 
125
- expect(described_class).to receive(:pkg).with(:list,'-Hvn','dummy').and_return(File.read(my_fixture('dummy_solaris11.known')))
125
+ described_class.expects(:pkg).with(:list,'-Hvn','dummy').returns File.read(my_fixture('dummy_solaris11.known'))
126
126
  expect(provider.latest).to eq('1.0.6,5.11-0.175.0.0.0.2.537:20131230T130000Z')
127
127
  end
128
128
 
129
129
  it "should work correctly for ensure latest on solaris 11 (IFO)" do
130
- expect(described_class).to receive(:pkg).with(:list,'-Hvn','dummy').and_return(File.read(my_fixture('dummy_solaris11.ifo.installed')))
130
+ described_class.expects(:pkg).with(:list,'-Hvn','dummy').returns File.read(my_fixture('dummy_solaris11.ifo.installed'))
131
131
  expect(provider.latest).to eq('1.0.6,5.11-0.175.0.0.0.2.537:20131230T130000Z')
132
132
  end
133
133
 
134
134
  it "should work correctly for ensure latest on solaris 11(known IFO)" do
135
- expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'update', '-n', 'dummy'], {:failonfail => false, :combine => true}).and_return('')
136
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
135
+ Puppet::Util::Execution.expects(:execute).with(['/bin/pkg', 'update', '-n', 'dummy'], {:failonfail => false, :combine => true}).returns ''
136
+ $CHILD_STATUS.stubs(:exitstatus).returns 0
137
137
 
138
- expect(described_class).to receive(:pkg).with(:list,'-Hvn','dummy').and_return(File.read(my_fixture('dummy_solaris11.ifo.known')))
138
+ described_class.expects(:pkg).with(:list,'-Hvn','dummy').returns File.read(my_fixture('dummy_solaris11.ifo.known'))
139
139
  expect(provider.latest).to eq('1.0.6,5.11-0.175.0.0.0.2.537:20131230T130000Z')
140
140
  end
141
141
 
142
142
  it "issues a warning when the certificate has expired" do
143
143
  warning = "Certificate '/var/pkg/ssl/871b4ed0ade09926e6adf95f86bf17535f987684' for publisher 'solarisstudio', needed to access 'https://pkg.oracle.com/solarisstudio/release/', will expire in '29' days."
144
- expect(Puppet).to receive(:warning).with("pkg warning: #{warning}")
144
+ Puppet.expects(:warning).with("pkg warning: #{warning}")
145
145
 
146
- expect(described_class).to receive(:pkg).with(:list,'-Hvn','dummy').and_return(File.read(my_fixture('dummy_solaris11.certificate_warning')))
146
+ described_class.expects(:pkg).with(:list,'-Hvn','dummy').returns File.read(my_fixture('dummy_solaris11.certificate_warning'))
147
147
  provider.latest
148
148
  end
149
149
 
150
150
  it "doesn't issue a warning when the certificate hasn't expired" do
151
- expect(Puppet).not_to receive(:warning).with(/pkg warning/)
151
+ Puppet.expects(:warning).with(/pkg warning/).never
152
152
 
153
- expect(described_class).to receive(:pkg).with(:list,'-Hvn','dummy').and_return(File.read(my_fixture('dummy_solaris11.installed')))
153
+ described_class.expects(:pkg).with(:list,'-Hvn','dummy').returns File.read(my_fixture('dummy_solaris11.installed'))
154
154
  provider.latest
155
155
  end
156
156
  end
157
157
 
158
158
  context ":instances" do
159
159
  it "should correctly parse lines on solaris 11" do
160
- expect(described_class).to receive(:pkg).with(:list, '-Hv').and_return(File.read(my_fixture('solaris11')))
161
- expect(described_class).not_to receive(:warning)
160
+ described_class.expects(:pkg).with(:list, '-Hv').returns File.read(my_fixture('solaris11'))
161
+ described_class.expects(:warning).never
162
162
  instances = described_class.instances.map { |p| {:name => p.get(:name), :ensure => p.get(:ensure) }}
163
163
  expect(instances.size).to eq(2)
164
164
  expect(instances[0]).to eq({:name => 'dummy/dummy', :ensure => '3.0,5.11-0.175.0.0.0.2.537:20131230T130000Z'})
@@ -167,14 +167,14 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
167
167
 
168
168
  it "should fail on incorrect lines" do
169
169
  fake_output = File.read(my_fixture('incomplete'))
170
- expect(described_class).to receive(:pkg).with(:list,'-Hv').and_return(fake_output)
170
+ described_class.expects(:pkg).with(:list,'-Hv').returns fake_output
171
171
  expect {
172
172
  described_class.instances
173
173
  }.to raise_error(ArgumentError, /Unknown line format pkg/)
174
174
  end
175
175
 
176
176
  it "should fail on unknown package status" do
177
- expect(described_class).to receive(:pkg).with(:list,'-Hv').and_return(File.read(my_fixture('unknown_status')))
177
+ described_class.expects(:pkg).with(:list,'-Hv').returns File.read(my_fixture('unknown_status'))
178
178
  expect {
179
179
  described_class.instances
180
180
  }.to raise_error(ArgumentError, /Unknown format pkg/)
@@ -184,10 +184,10 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
184
184
  context ":query" do
185
185
  context "on solaris 10" do
186
186
  it "should find the package" do
187
- expect(Puppet::Util::Execution).to receive(:execute)
187
+ Puppet::Util::Execution.expects(:execute)
188
188
  .with(['/bin/pkg', 'list', '-Hv', 'dummy'], {:failonfail => false, :combine => true})
189
- .and_return(Puppet::Util::Execution::ProcessOutput.new(File.read(my_fixture('dummy_solaris10')), 0))
190
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
189
+ .returns(Puppet::Util::Execution::ProcessOutput.new(File.read(my_fixture('dummy_solaris10')), 0))
190
+ $CHILD_STATUS.stubs(:exitstatus).returns 0
191
191
  expect(provider.query).to eq({
192
192
  :name => 'dummy',
193
193
  :ensure => '2.5.5,5.10-0.111:20131230T130000Z',
@@ -198,20 +198,20 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
198
198
  end
199
199
 
200
200
  it "should return :absent when the package is not found" do
201
- expect(Puppet::Util::Execution).to receive(:execute)
201
+ Puppet::Util::Execution.expects(:execute)
202
202
  .with(['/bin/pkg', 'list', '-Hv', 'dummy'], {:failonfail => false, :combine => true})
203
- .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
204
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(1)
203
+ .returns(Puppet::Util::Execution::ProcessOutput.new('', 0))
204
+ $CHILD_STATUS.stubs(:exitstatus).returns 1
205
205
  expect(provider.query).to eq({:ensure => :absent, :name => "dummy"})
206
206
  end
207
207
  end
208
208
 
209
209
  context "on solaris 11" do
210
210
  it "should find the package" do
211
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
212
- expect(Puppet::Util::Execution).to receive(:execute)
211
+ $CHILD_STATUS.stubs(:exitstatus).returns 0
212
+ Puppet::Util::Execution.expects(:execute)
213
213
  .with(['/bin/pkg', 'list', '-Hv', 'dummy'], {:failonfail => false, :combine => true})
214
- .and_return(Puppet::Util::Execution::ProcessOutput.new(File.read(my_fixture('dummy_solaris11.installed')), 0))
214
+ .returns(Puppet::Util::Execution::ProcessOutput.new(File.read(my_fixture('dummy_solaris11.installed')), 0))
215
215
  expect(provider.query).to eq({
216
216
  :name => 'dummy',
217
217
  :status => 'installed',
@@ -222,19 +222,20 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
222
222
  end
223
223
 
224
224
  it "should return :absent when the package is not found" do
225
- expect(Puppet::Util::Execution).to receive(:execute)
225
+ Puppet::Util::Execution
226
+ .expects(:execute)
226
227
  .with(['/bin/pkg', 'list', '-Hv', 'dummy'], {:failonfail => false, :combine => true})
227
- .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
228
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(1)
228
+ .returns(Puppet::Util::Execution::ProcessOutput.new('', 0))
229
+ $CHILD_STATUS.stubs(:exitstatus).returns 1
229
230
  expect(provider.query).to eq({:ensure => :absent, :name => "dummy"})
230
231
  end
231
232
  end
232
233
 
233
234
  it "should return fail when the packageline cannot be parsed" do
234
- expect(Puppet::Util::Execution).to receive(:execute)
235
+ Puppet::Util::Execution.expects(:execute)
235
236
  .with(['/bin/pkg', 'list', '-Hv', 'dummy'], {:failonfail => false, :combine => true})
236
- .and_return(Puppet::Util::Execution::ProcessOutput.new(File.read(my_fixture('incomplete')), 0))
237
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
237
+ .returns(Puppet::Util::Execution::ProcessOutput.new(File.read(my_fixture('incomplete')), 0))
238
+ $CHILD_STATUS.stubs(:exitstatus).returns 0
238
239
  expect {
239
240
  provider.query
240
241
  }.to raise_error(ArgumentError, /Unknown line format/)
@@ -248,92 +249,91 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
248
249
  ].each do |hash|
249
250
  context "with :operatingsystemrelease #{hash[:osrel]}" do
250
251
  before :each do
251
- allow(Facter).to receive(:value).with(:operatingsystemrelease).and_return(hash[:osrel])
252
+ Facter.stubs(:value).with(:operatingsystemrelease).returns hash[:osrel]
252
253
  end
253
-
254
254
  it "should accept all licenses" do
255
- expect(provider).to receive(:query).with(no_args).and_return({:ensure => :absent})
256
- expect(Puppet::Util::Execution).to receive(:execute)
255
+ provider.expects(:query).with().returns({:ensure => :absent})
256
+ Puppet::Util::Execution.expects(:execute)
257
257
  .with(['/bin/pkg', 'install', *hash[:flags], 'dummy'], {:failonfail => false, :combine => true})
258
- .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
259
- expect(Puppet::Util::Execution).to receive(:execute)
258
+ .returns(Puppet::Util::Execution::ProcessOutput.new('', 0))
259
+ Puppet::Util::Execution.expects(:execute)
260
260
  .with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
261
- .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
262
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
261
+ .returns(Puppet::Util::Execution::ProcessOutput.new('', 0))
262
+ $CHILD_STATUS.stubs(:exitstatus).returns 0
263
263
  provider.install
264
264
  end
265
265
 
266
266
  it "should install specific version(1)" do
267
267
  # Should install also check if the version installed is the same version we are asked to install? or should we rely on puppet for that?
268
268
  resource[:ensure] = '0.0.7,5.11-0.151006:20131230T130000Z'
269
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
270
- expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
271
- expect(Puppet::Util::Execution).to receive(:execute)
269
+ $CHILD_STATUS.stubs(:exitstatus).returns 0
270
+ Puppet::Util::Execution.expects(:execute).with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
271
+ Puppet::Util::Execution.expects(:execute)
272
272
  .with(['/bin/pkg', 'list', '-Hv', 'dummy'], {:failonfail => false, :combine => true})
273
- .and_return(Puppet::Util::Execution::ProcessOutput.new('pkg://foo/dummy@0.0.6,5.11-0.151006:20131230T130000Z installed -----', 0))
274
- expect(Puppet::Util::Execution).to receive(:execute)
273
+ .returns(Puppet::Util::Execution::ProcessOutput.new('pkg://foo/dummy@0.0.6,5.11-0.151006:20131230T130000Z installed -----', 0))
274
+ Puppet::Util::Execution.expects(:execute)
275
275
  .with(['/bin/pkg', 'update', *hash[:flags], 'dummy@0.0.7,5.11-0.151006:20131230T130000Z'], {:failonfail => false, :combine => true})
276
- .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
276
+ .returns(Puppet::Util::Execution::ProcessOutput.new('', 0))
277
277
  provider.install
278
278
  end
279
279
 
280
280
  it "should install specific version(2)" do
281
281
  resource[:ensure] = '0.0.8'
282
- expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
283
- expect(Puppet::Util::Execution).to receive(:execute)
282
+ Puppet::Util::Execution.expects(:execute).with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
283
+ Puppet::Util::Execution.expects(:execute)
284
284
  .with(['/bin/pkg', 'list', '-Hv', 'dummy'], {:failonfail => false, :combine => true})
285
- .and_return(Puppet::Util::Execution::ProcessOutput.new('pkg://foo/dummy@0.0.7,5.11-0.151006:20131230T130000Z installed -----', 0))
286
- expect(Puppet::Util::Execution).to receive(:execute)
285
+ .returns(Puppet::Util::Execution::ProcessOutput.new('pkg://foo/dummy@0.0.7,5.11-0.151006:20131230T130000Z installed -----', 0))
286
+ Puppet::Util::Execution.expects(:execute)
287
287
  .with(['/bin/pkg', 'update', *hash[:flags], 'dummy@0.0.8'], {:failonfail => false, :combine => true})
288
- .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
289
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
288
+ .returns(Puppet::Util::Execution::ProcessOutput.new('', 0))
289
+ $CHILD_STATUS.stubs(:exitstatus).returns 0
290
290
  provider.install
291
291
  end
292
292
 
293
293
  it "should downgrade to specific version" do
294
294
  resource[:ensure] = '0.0.7'
295
- expect(provider).to receive(:query).with(no_args).and_return({:ensure => '0.0.8,5.11-0.151106:20131230T130000Z'})
296
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
297
- expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
298
- expect(Puppet::Util::Execution).to receive(:execute)
295
+ provider.expects(:query).with().returns({:ensure => '0.0.8,5.11-0.151106:20131230T130000Z'})
296
+ $CHILD_STATUS.stubs(:exitstatus).returns 0
297
+ Puppet::Util::Execution.expects(:execute).with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
298
+ Puppet::Util::Execution.expects(:execute)
299
299
  .with(['/bin/pkg', 'update', *hash[:flags], 'dummy@0.0.7'], {:failonfail => false, :combine => true})
300
- .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
300
+ .returns(Puppet::Util::Execution::ProcessOutput.new('', 0))
301
301
  provider.install
302
302
  end
303
303
 
304
304
  it "should install any if version is not specified" do
305
305
  resource[:ensure] = :present
306
- expect(provider).to receive(:query).with(no_args).and_return({:ensure => :absent})
307
- expect(Puppet::Util::Execution).to receive(:execute)
306
+ provider.expects(:query).with().returns({:ensure => :absent})
307
+ Puppet::Util::Execution.expects(:execute)
308
308
  .with(['/bin/pkg', 'install', *hash[:flags], 'dummy'], {:failonfail => false, :combine => true})
309
- .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
310
- expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
311
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
309
+ .returns(Puppet::Util::Execution::ProcessOutput.new('', 0))
310
+ Puppet::Util::Execution.expects(:execute).with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
311
+ $CHILD_STATUS.stubs(:exitstatus).returns 0
312
312
  provider.install
313
313
  end
314
314
 
315
315
  it "should install if no version was previously installed, and a specific version was requested" do
316
316
  resource[:ensure] = '0.0.7'
317
- expect(provider).to receive(:query).with(no_args).and_return({:ensure => :absent})
318
- expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
319
- expect(Puppet::Util::Execution).to receive(:execute)
317
+ provider.expects(:query).with().returns({:ensure => :absent})
318
+ Puppet::Util::Execution.expects(:execute).with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
319
+ Puppet::Util::Execution.expects(:execute)
320
320
  .with(['/bin/pkg', 'install', *hash[:flags], 'dummy@0.0.7'], {:failonfail => false, :combine => true})
321
- .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
322
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
321
+ .returns(Puppet::Util::Execution::ProcessOutput.new('', 0))
322
+ $CHILD_STATUS.stubs(:exitstatus).returns 0
323
323
  provider.install
324
324
  end
325
325
 
326
326
  it "installs the latest matching version when given implicit version, and none are installed" do
327
327
  resource[:ensure] = '1.0-0.151006'
328
328
  is = :absent
329
- expect(provider).to receive(:query).with(no_args).and_return({:ensure => is})
330
- expect(described_class).to receive(:pkg)
329
+ provider.expects(:query).with().returns({:ensure => is})
330
+ described_class.expects(:pkg)
331
331
  .with(:list, '-Hvfa', 'dummy@1.0-0.151006')
332
- .and_return(Puppet::Util::Execution::ProcessOutput.new(File.read(my_fixture('dummy_implicit_version')), 0))
333
- expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'install', '-n', 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
334
- expect(provider).to receive(:unhold).with(no_args)
335
- expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'install', *hash[:flags], 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
336
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
332
+ .returns(Puppet::Util::Execution::ProcessOutput.new(File.read(my_fixture('dummy_implicit_version')), 0))
333
+ Puppet::Util::Execution.expects(:execute).with(['/bin/pkg', 'install', '-n', 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
334
+ provider.expects(:unhold).with()
335
+ Puppet::Util::Execution.expects(:execute).with(['/bin/pkg', 'install', *hash[:flags], 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
336
+ $CHILD_STATUS.stubs(:exitstatus).returns 0
337
337
  provider.insync?(is)
338
338
  provider.install
339
339
  end
@@ -341,12 +341,12 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
341
341
  it "updates to the latest matching version when given implicit version" do
342
342
  resource[:ensure] = '1.0-0.151006'
343
343
  is = '1.0,5.11-0.151006:20140219T191204Z'
344
- expect(provider).to receive(:query).with(no_args).and_return({:ensure => is})
345
- expect(described_class).to receive(:pkg).with(:list, '-Hvfa', 'dummy@1.0-0.151006').and_return(File.read(my_fixture('dummy_implicit_version')))
346
- expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'update', '-n', 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
347
- expect(provider).to receive(:unhold).with(no_args)
348
- expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'update', *hash[:flags], 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
349
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
344
+ provider.expects(:query).with().returns({:ensure => is})
345
+ described_class.expects(:pkg).with(:list, '-Hvfa', 'dummy@1.0-0.151006').returns File.read(my_fixture('dummy_implicit_version'))
346
+ Puppet::Util::Execution.expects(:execute).with(['/bin/pkg', 'update', '-n', 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
347
+ provider.expects(:unhold).with()
348
+ Puppet::Util::Execution.expects(:execute).with(['/bin/pkg', 'update', *hash[:flags], 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
349
+ $CHILD_STATUS.stubs(:exitstatus).returns 0
350
350
  provider.insync?(is)
351
351
  provider.install
352
352
  end
@@ -354,23 +354,23 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
354
354
  it "issues a warning when an implicit version number is used, and in sync" do
355
355
  resource[:ensure] = '1.0-0.151006'
356
356
  is = '1.0,5.11-0.151006:20140220T084443Z'
357
- expect(provider).to receive(:warning).with("Implicit version 1.0-0.151006 has 3 possible matches")
358
- expect(described_class).to receive(:pkg)
357
+ provider.expects(:warning).with("Implicit version 1.0-0.151006 has 3 possible matches")
358
+ described_class.expects(:pkg)
359
359
  .with(:list, '-Hvfa', 'dummy@1.0-0.151006')
360
- .and_return(Puppet::Util::Execution::ProcessOutput.new(File.read(my_fixture('dummy_implicit_version')), 0))
361
- expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'update', '-n', 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
362
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(4)
360
+ .returns(Puppet::Util::Execution::ProcessOutput.new(File.read(my_fixture('dummy_implicit_version')), 0))
361
+ Puppet::Util::Execution.expects(:execute).with(['/bin/pkg', 'update', '-n', 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
362
+ $CHILD_STATUS.stubs(:exitstatus).returns 4
363
363
  provider.insync?(is)
364
364
  end
365
365
 
366
366
  it "issues a warning when choosing a version number for an implicit match" do
367
367
  resource[:ensure] = '1.0-0.151006'
368
368
  is = :absent
369
- expect(provider).to receive(:warning).with("Implicit version 1.0-0.151006 has 3 possible matches")
370
- expect(provider).to receive(:warning).with("Selecting version '1.0,5.11-0.151006:20140220T084443Z' for implicit '1.0-0.151006'")
371
- expect(described_class).to receive(:pkg).with(:list, '-Hvfa', 'dummy@1.0-0.151006').and_return(File.read(my_fixture('dummy_implicit_version')))
372
- expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'install', '-n', 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
373
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
369
+ provider.expects(:warning).with("Implicit version 1.0-0.151006 has 3 possible matches")
370
+ provider.expects(:warning).with("Selecting version '1.0,5.11-0.151006:20140220T084443Z' for implicit '1.0-0.151006'")
371
+ described_class.expects(:pkg).with(:list, '-Hvfa', 'dummy@1.0-0.151006').returns File.read(my_fixture('dummy_implicit_version'))
372
+ Puppet::Util::Execution.expects(:execute).with(['/bin/pkg', 'install', '-n', 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
373
+ $CHILD_STATUS.stubs(:exitstatus).returns 0
374
374
  provider.insync?(is)
375
375
  end
376
376
  end
@@ -379,17 +379,17 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
379
379
 
380
380
  context ":update" do
381
381
  it "should not raise error if not necessary" do
382
- expect(provider).to receive(:install).with(true).and_return({:exit => 0})
382
+ provider.expects(:install).with(true).returns({:exit => 0})
383
383
  provider.update
384
384
  end
385
385
 
386
386
  it "should not raise error if not necessary (2)" do
387
- expect(provider).to receive(:install).with(true).and_return({:exit => 4})
387
+ provider.expects(:install).with(true).returns({:exit => 4})
388
388
  provider.update
389
389
  end
390
390
 
391
391
  it "should raise error if necessary" do
392
- expect(provider).to receive(:install).with(true).and_return({:exit => 1})
392
+ provider.expects(:install).with(true).returns({:exit => 1})
393
393
  expect {
394
394
  provider.update
395
395
  }.to raise_error(Puppet::Error, /Unable to update/)
@@ -398,14 +398,14 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
398
398
 
399
399
  context ":uninstall" do
400
400
  it "should support current pkg version" do
401
- expect(described_class).to receive(:pkg).with(:version).and_return('630e1ffc7a19')
402
- expect(described_class).to receive(:pkg).with([:uninstall, resource[:name]])
401
+ described_class.expects(:pkg).with(:version).returns('630e1ffc7a19')
402
+ described_class.expects(:pkg).with([:uninstall, resource[:name]])
403
403
  provider.uninstall
404
404
  end
405
405
 
406
406
  it "should support original pkg commands" do
407
- expect(described_class).to receive(:pkg).with(:version).and_return('052adf36c3f4')
408
- expect(described_class).to receive(:pkg).with([:uninstall, '-r', resource[:name]])
407
+ described_class.expects(:pkg).with(:version).returns('052adf36c3f4')
408
+ described_class.expects(:pkg).with([:uninstall, '-r', resource[:name]])
409
409
  provider.uninstall
410
410
  end
411
411
  end