puppet 6.0.10 → 6.1.0

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
  describe Puppet::Type.type(:package).provider(:pkgdmg) do
@@ -9,7 +10,7 @@ describe Puppet::Type.type(:package).provider(:pkgdmg) do
9
10
 
10
11
  describe "when installing it should fail when" do
11
12
  before :each do
12
- expect(Puppet::Util).not_to receive(:execute)
13
+ Puppet::Util.expects(:execute).never
13
14
  end
14
15
 
15
16
  it "no source is specified" do
@@ -28,33 +29,33 @@ describe Puppet::Type.type(:package).provider(:pkgdmg) do
28
29
  let(:fake_hdiutil_plist) { {"system-entities" => [{"mount-point" => fake_mountpoint}]} }
29
30
 
30
31
  before do
31
- fh = double('filehandle')
32
- allow(fh).to receive(:path).and_return("/tmp/foo")
32
+ fh = mock 'filehandle'
33
+ fh.stubs(:path).yields "/tmp/foo"
33
34
  resource[:source] = "foo.dmg"
34
- allow(File).to receive(:open).and_yield(fh)
35
- allow(Dir).to receive(:mktmpdir).and_return("/tmp/testtmp123")
36
- allow(FileUtils).to receive(:remove_entry_secure)
35
+ File.stubs(:open).yields fh
36
+ Dir.stubs(:mktmpdir).returns "/tmp/testtmp123"
37
+ FileUtils.stubs(:remove_entry_secure)
37
38
  end
38
39
 
39
40
  it "should fail when a disk image with no system entities is mounted" do
40
- allow(described_class).to receive(:hdiutil).and_return('empty plist')
41
- expect(Puppet::Util::Plist).to receive(:parse_plist).with('empty plist').and_return({})
41
+ described_class.stubs(:hdiutil).returns 'empty plist'
42
+ Puppet::Util::Plist.expects(:parse_plist).with('empty plist').returns({})
42
43
  expect { provider.install }.to raise_error(Puppet::Error, /No disk entities/)
43
44
  end
44
45
 
45
46
  it "should call hdiutil to mount and eject the disk image" do
46
- allow(Dir).to receive(:entries).and_return([])
47
- expect(provider.class).to receive(:hdiutil).with("eject", fake_mountpoint).and_return(0)
48
- expect(provider.class).to receive(:hdiutil).with("mount", "-plist", "-nobrowse", "-readonly", "-noidme", "-mountrandom", "/tmp", '/tmp/foo').and_return('a plist')
49
- expect(Puppet::Util::Plist).to receive(:parse_plist).with('a plist').and_return(fake_hdiutil_plist)
47
+ Dir.stubs(:entries).returns []
48
+ provider.class.expects(:hdiutil).with("eject", fake_mountpoint).returns 0
49
+ provider.class.expects(:hdiutil).with("mount", "-plist", "-nobrowse", "-readonly", "-noidme", "-mountrandom", "/tmp", nil).returns 'a plist'
50
+ Puppet::Util::Plist.expects(:parse_plist).with('a plist').returns fake_hdiutil_plist
50
51
  provider.install
51
52
  end
52
53
 
53
54
  it "should call installpkg if a pkg/mpkg is found on the dmg" do
54
- allow(Dir).to receive(:entries).and_return(["foo.pkg"])
55
- allow(provider.class).to receive(:hdiutil).and_return('a plist')
56
- expect(Puppet::Util::Plist).to receive(:parse_plist).with('a plist').and_return(fake_hdiutil_plist)
57
- expect(provider.class).to receive(:installpkg).with("#{fake_mountpoint}/foo.pkg", resource[:name], "foo.dmg").and_return("")
55
+ Dir.stubs(:entries).returns ["foo.pkg"]
56
+ provider.class.stubs(:hdiutil).returns 'a plist'
57
+ Puppet::Util::Plist.expects(:parse_plist).with('a plist').returns fake_hdiutil_plist
58
+ provider.class.expects(:installpkg).with("#{fake_mountpoint}/foo.pkg", resource[:name], "foo.dmg").returns ""
58
59
  provider.install
59
60
  end
60
61
 
@@ -66,69 +67,66 @@ describe Puppet::Type.type(:package).provider(:pkgdmg) do
66
67
  end
67
68
 
68
69
  it "should call tmpdir and then call curl with that directory" do
69
- expect(Dir).to receive(:mktmpdir).and_return(tmpdir)
70
- allow(Dir).to receive(:entries).and_return(["foo.pkg"])
71
- expect(described_class).to receive(:curl) do |*args|
72
- expect(args[0]).to eq("-o")
73
- expect(args[1]).to include(tmpdir)
74
- expect(args).to include("--fail")
75
- expect(args).not_to include("-k")
70
+ Dir.expects(:mktmpdir).returns tmpdir
71
+ Dir.stubs(:entries).returns ["foo.pkg"]
72
+ described_class.expects(:curl).with do |*args|
73
+ args[0] == "-o" && args[1].include?(tmpdir) && args.include?("--fail") && ! args.include?("-k")
76
74
  end
77
- allow(described_class).to receive(:hdiutil).and_return('a plist')
78
- expect(Puppet::Util::Plist).to receive(:parse_plist).with('a plist').and_return(fake_hdiutil_plist)
79
- expect(described_class).to receive(:installpkg)
75
+ described_class.stubs(:hdiutil).returns 'a plist'
76
+ Puppet::Util::Plist.expects(:parse_plist).with('a plist').returns fake_hdiutil_plist
77
+ described_class.expects(:installpkg)
80
78
 
81
79
  provider.install
82
80
  end
83
81
 
84
82
  it "should use an http proxy host and port if specified" do
85
- expect(Puppet::Util::HttpProxy).to receive(:no_proxy?).and_return(false)
86
- expect(Puppet::Util::HttpProxy).to receive(:http_proxy_host).and_return('some_host')
87
- expect(Puppet::Util::HttpProxy).to receive(:http_proxy_port).and_return('some_port')
88
- expect(Dir).to receive(:mktmpdir).and_return(tmpdir)
89
- allow(Dir).to receive(:entries).and_return(["foo.pkg"])
90
- expect(described_class).to receive(:curl) do |*args|
91
- expect(args).to include('some_host:some_port')
92
- expect(args).to include('--proxy')
83
+ Puppet::Util::HttpProxy.expects(:no_proxy?).returns false
84
+ Puppet::Util::HttpProxy.expects(:http_proxy_host).returns 'some_host'
85
+ Puppet::Util::HttpProxy.expects(:http_proxy_port).returns 'some_port'
86
+ Dir.expects(:mktmpdir).returns tmpdir
87
+ Dir.stubs(:entries).returns ["foo.pkg"]
88
+ described_class.expects(:curl).with do |*args|
89
+ expect(args).to be_include 'some_host:some_port'
90
+ expect(args).to be_include '--proxy'
93
91
  end
94
- allow(described_class).to receive(:hdiutil).and_return('a plist')
95
- expect(Puppet::Util::Plist).to receive(:parse_plist).with('a plist').and_return(fake_hdiutil_plist)
96
- expect(described_class).to receive(:installpkg)
92
+ described_class.stubs(:hdiutil).returns 'a plist'
93
+ Puppet::Util::Plist.expects(:parse_plist).with('a plist').returns fake_hdiutil_plist
94
+ described_class.expects(:installpkg)
97
95
 
98
96
  provider.install
99
97
  end
100
98
 
101
99
  it "should use an http proxy host only if specified" do
102
- expect(Puppet::Util::HttpProxy).to receive(:no_proxy?).and_return(false)
103
- expect(Puppet::Util::HttpProxy).to receive(:http_proxy_host).and_return('some_host')
104
- expect(Puppet::Util::HttpProxy).to receive(:http_proxy_port).and_return(nil)
105
- expect(Dir).to receive(:mktmpdir).and_return(tmpdir)
106
- allow(Dir).to receive(:entries).and_return(["foo.pkg"])
107
- expect(described_class).to receive(:curl) do |*args|
108
- expect(args).to include('some_host')
109
- expect(args).to include('--proxy')
100
+ Puppet::Util::HttpProxy.expects(:no_proxy?).returns false
101
+ Puppet::Util::HttpProxy.expects(:http_proxy_host).returns 'some_host'
102
+ Puppet::Util::HttpProxy.expects(:http_proxy_port).returns nil
103
+ Dir.expects(:mktmpdir).returns tmpdir
104
+ Dir.stubs(:entries).returns ["foo.pkg"]
105
+ described_class.expects(:curl).with do |*args|
106
+ expect(args).to be_include 'some_host'
107
+ expect(args).to be_include '--proxy'
110
108
  end
111
- allow(described_class).to receive(:hdiutil).and_return('a plist')
112
- expect(Puppet::Util::Plist).to receive(:parse_plist).with('a plist').and_return(fake_hdiutil_plist)
113
- expect(described_class).to receive(:installpkg)
109
+ described_class.stubs(:hdiutil).returns 'a plist'
110
+ Puppet::Util::Plist.expects(:parse_plist).with('a plist').returns fake_hdiutil_plist
111
+ described_class.expects(:installpkg)
114
112
 
115
113
  provider.install
116
114
  end
117
115
 
118
116
  it "should not use the configured proxy if no_proxy contains a match for the destination" do
119
- expect(Puppet::Util::HttpProxy).to receive(:no_proxy?).and_return(true)
120
- expect(Puppet::Util::HttpProxy).not_to receive(:http_proxy_host)
121
- expect(Puppet::Util::HttpProxy).not_to receive(:http_proxy_port)
122
- expect(Dir).to receive(:mktmpdir).and_return(tmpdir)
123
- allow(Dir).to receive(:entries).and_return(["foo.pkg"])
124
- expect(described_class).to receive(:curl) do |*args|
125
- expect(args).not_to include('some_host:some_port')
126
- expect(args).not_to include('--proxy')
117
+ Puppet::Util::HttpProxy.expects(:no_proxy?).returns true
118
+ Puppet::Util::HttpProxy.expects(:http_proxy_host).never
119
+ Puppet::Util::HttpProxy.expects(:http_proxy_port).never
120
+ Dir.expects(:mktmpdir).returns tmpdir
121
+ Dir.stubs(:entries).returns ["foo.pkg"]
122
+ described_class.expects(:curl).with do |*args|
123
+ expect(args).not_to be_include 'some_host:some_port'
124
+ expect(args).not_to be_include '--proxy'
127
125
  true
128
126
  end
129
- allow(described_class).to receive(:hdiutil).and_return('a plist')
130
- expect(Puppet::Util::Plist).to receive(:parse_plist).with('a plist').and_return(fake_hdiutil_plist)
131
- expect(described_class).to receive(:installpkg)
127
+ described_class.stubs(:hdiutil).returns 'a plist'
128
+ Puppet::Util::Plist.expects(:parse_plist).with('a plist').returns fake_hdiutil_plist
129
+ described_class.expects(:installpkg)
132
130
 
133
131
  provider.install
134
132
  end
@@ -140,7 +138,7 @@ describe Puppet::Type.type(:package).provider(:pkgdmg) do
140
138
  it "should call installpkg if a flat pkg file is found instead of a .dmg image" do
141
139
  resource[:source] = "/tmp/test.pkg"
142
140
  resource[:name] = "testpkg"
143
- expect(provider.class).to receive(:installpkgdmg).with("/tmp/test.pkg", "testpkg").and_return("")
141
+ provider.class.expects(:installpkgdmg).with("/tmp/test.pkg", "testpkg").returns ""
144
142
  provider.install
145
143
  end
146
144
  end
@@ -154,15 +152,15 @@ describe Puppet::Type.type(:package).provider(:pkgdmg) do
154
152
  resource[:name] = 'testpkg'
155
153
  resource[:source] = remote_source
156
154
 
157
- allow(Dir).to receive(:mktmpdir).and_return(tmpdir)
155
+ Dir.stubs(:mktmpdir).returns tmpdir
158
156
  end
159
157
 
160
158
  it "should call installpkg if a flat pkg file is found instead of a .dmg image" do
161
- expect(described_class).to receive(:curl) do |*args|
162
- expect(args).to include(tmpfile)
163
- expect(args).to include(remote_source)
159
+ described_class.expects(:curl).with do |*args|
160
+ expect(args).to be_include tmpfile
161
+ expect(args).to be_include remote_source
164
162
  end
165
- expect(provider.class).to receive(:installpkg).with(tmpfile, 'testpkg', remote_source)
163
+ provider.class.expects(:installpkg).with(tmpfile, 'testpkg', remote_source)
166
164
  provider.install
167
165
  end
168
166
  end
@@ -13,18 +13,16 @@ describe Puppet::Type.type(:package).provider(:pkgin) do
13
13
  describe "#install" do
14
14
  describe "a package not installed" do
15
15
  before { resource[:ensure] = :absent }
16
-
17
16
  it "uses pkgin install to install" do
18
- expect(subject).to receive(:pkgin).with("-y", :install, "vim").once()
17
+ subject.expects(:pkgin).with("-y", :install, "vim").once()
19
18
  subject.install
20
19
  end
21
20
  end
22
21
 
23
22
  describe "a package with a fixed version" do
24
23
  before { resource[:ensure] = '7.2.446' }
25
-
26
24
  it "uses pkgin install to install a fixed version" do
27
- expect(subject).to receive(:pkgin).with("-y", :install, "vim-7.2.446").once()
25
+ subject.expects(:pkgin).with("-y", :install, "vim-7.2.446").once()
28
26
  subject.install
29
27
  end
30
28
  end
@@ -32,7 +30,7 @@ describe Puppet::Type.type(:package).provider(:pkgin) do
32
30
 
33
31
  describe "#uninstall" do
34
32
  it "uses pkgin remove to uninstall" do
35
- expect(subject).to receive(:pkgin).with("-y", :remove, "vim").once()
33
+ subject.expects(:pkgin).with("-y", :remove, "vim").once()
36
34
  subject.uninstall
37
35
  end
38
36
  end
@@ -43,7 +41,7 @@ describe Puppet::Type.type(:package).provider(:pkgin) do
43
41
  end
44
42
 
45
43
  before do
46
- allow(described_class).to receive(:pkgin).with(:list).and_return(pkgin_ls_output)
44
+ described_class.stubs(:pkgin).with(:list).returns(pkgin_ls_output)
47
45
  end
48
46
 
49
47
  it "returns an array of providers for each package" do
@@ -65,7 +63,7 @@ describe Puppet::Type.type(:package).provider(:pkgin) do
65
63
 
66
64
  describe "#latest" do
67
65
  before do
68
- allow(described_class).to receive(:pkgin).with(:search, "vim").and_return(pkgin_search_output)
66
+ described_class.stubs(:pkgin).with(:search, "vim").returns(pkgin_search_output)
69
67
  end
70
68
 
71
69
  context "when the package is installed" do
@@ -74,7 +72,7 @@ describe Puppet::Type.type(:package).provider(:pkgin) do
74
72
  end
75
73
 
76
74
  it "returns installed version" do
77
- expect(subject).to receive(:properties).and_return({ :ensure => "7.2.446" })
75
+ subject.expects(:properties).returns( { :ensure => "7.2.446" } )
78
76
  expect(subject.latest).to eq("7.2.446")
79
77
  end
80
78
  end
@@ -95,7 +93,7 @@ describe Puppet::Type.type(:package).provider(:pkgin) do
95
93
  end
96
94
 
97
95
  it "returns current version" do
98
- expect(subject).to receive(:properties).and_return({ :ensure => "7.2.446" })
96
+ subject.expects(:properties).returns( { :ensure => "7.2.446" } )
99
97
  expect(subject.latest).to eq("7.2.446")
100
98
  end
101
99
  end
@@ -117,7 +115,7 @@ SEARCH
117
115
  end
118
116
 
119
117
  it "returns the newest available version" do
120
- allow(described_class).to receive(:pkgin).with(:search, "vim").and_return(pkgin_search_output)
118
+ described_class.stubs(:pkgin).with(:search, "vim").returns(pkgin_search_output)
121
119
  expect(subject.latest).to eq("7.3")
122
120
  end
123
121
  end
@@ -28,25 +28,26 @@ describe Puppet::Type.type(:package).provider(:pkgng) do
28
28
  catalog = Puppet::Resource::Catalog.new
29
29
  catalog.host_config = false
30
30
  resources.each do |resource|
31
+ #resource.expects(:err).never
31
32
  catalog.add_resource(resource)
32
33
  end
33
34
  catalog.apply
34
35
  end
35
36
 
36
37
  before do
37
- allow(described_class).to receive(:command).with(:pkg).and_return('/usr/local/sbin/pkg')
38
+ described_class.stubs(:command).with(:pkg) { '/usr/local/sbin/pkg' }
38
39
 
39
- info = File.read(my_fixture('pkg.info'))
40
- allow(described_class).to receive(:get_query).and_return(info)
40
+ info = File.read(my_fixture('pkg.query'))
41
+ described_class.stubs(:get_query).returns(info)
41
42
 
42
43
  version_list = File.read(my_fixture('pkg.version'))
43
- allow(described_class).to receive(:get_version_list).and_return(version_list)
44
+ described_class.stubs(:get_version_list).returns(version_list)
44
45
  end
45
46
 
46
47
  context "#instances" do
47
48
  it "should return the empty set if no packages are listed" do
48
- allow(described_class).to receive(:get_query).and_return('')
49
- allow(described_class).to receive(:get_version_list).and_return('')
49
+ described_class.stubs(:get_query).returns('')
50
+ described_class.stubs(:get_version_list).returns('')
50
51
  expect(described_class.instances).to be_empty
51
52
  end
52
53
 
@@ -62,14 +63,14 @@ describe Puppet::Type.type(:package).provider(:pkgng) do
62
63
  end
63
64
 
64
65
  it "should return an empty array when pkg calls raise an exception" do
65
- allow(described_class).to receive(:get_query).and_raise(Puppet::ExecutionFailure, 'An error occurred.')
66
+ described_class.stubs(:get_query).raises(Puppet::ExecutionFailure, 'An error occurred.')
66
67
  expect(described_class.instances).to eq([])
67
68
  end
68
69
 
69
70
  describe "version" do
70
71
  it "should retrieve the correct version of the current package" do
71
72
  zsh = described_class.instances.find {|i| i.properties[:origin] == 'shells/zsh' }
72
- expect(zsh.properties[:version]).to eq('5.0.2_1')
73
+ expect( zsh.properties[:version]).to eq('5.0.2_1')
73
74
  end
74
75
  end
75
76
  end
@@ -81,8 +82,8 @@ describe Puppet::Type.type(:package).provider(:pkgng) do
81
82
  :provider => :pkgng,
82
83
  :ensure => '7.33.1'
83
84
  )
84
- expect(resource.provider).to receive(:pkg) do |arg|
85
- expect(arg).to include('curl-7.33.1')
85
+ resource.provider.expects(:pkg) do |arg|
86
+ arg.should include('curl-7.33.1')
86
87
  end
87
88
  resource.provider.install
88
89
  end
@@ -93,8 +94,8 @@ describe Puppet::Type.type(:package).provider(:pkgng) do
93
94
  :provider => :pkgng,
94
95
  :ensure => '7.33.1'
95
96
  )
96
- expect(resource.provider).to receive(:pkg) do |arg|
97
- expect(arg).to include('curl-7.33.1')
97
+ resource.provider.expects(:pkg) do |arg|
98
+ arg.should include('curl-7.33.1')
98
99
  end
99
100
  resource.provider.install
100
101
  end
@@ -105,8 +106,8 @@ describe Puppet::Type.type(:package).provider(:pkgng) do
105
106
  :provider => :pkgng,
106
107
  :source => 'urn:freebsd:repo:FreeBSD'
107
108
  )
108
- expect(resource.provider).to receive(:pkg) do |arg|
109
- expect(arg).to include('FreeBSD')
109
+ resource.provider.expects(:pkg) do |arg|
110
+ arg.should include('FreeBSD')
110
111
  end
111
112
  resource.provider.install
112
113
  end
@@ -114,20 +115,22 @@ describe Puppet::Type.type(:package).provider(:pkgng) do
114
115
 
115
116
  context "#prefetch" do
116
117
  it "should fail gracefully when " do
117
- allow(described_class).to receive(:instances).and_return([])
118
+ described_class.stubs(:instances).returns([])
118
119
  expect{ described_class.prefetch({}) }.to_not raise_error
119
120
  end
120
121
  end
121
122
 
122
123
  context "#query" do
123
124
  it "should return the installed version if present" do
125
+ pkg_query_zsh = File.read(my_fixture('pkg.query.zsh'))
126
+ described_class.stubs(:get_resource_info).with('zsh').returns(pkg_query_zsh)
124
127
  described_class.prefetch({installed_name => installed_resource})
125
- expect(installed_provider.query).to eq({:version=>'5.0.2_1'})
128
+ expect(installed_provider.query).to be >= {:version=>'5.0.2_1'}
126
129
  end
127
130
 
128
131
  it "should return nil if not present" do
129
- fixture = File.read(my_fixture('pkg.query_absent'))
130
- allow(described_class).to receive(:get_resource_info).with('bash').and_return(fixture)
132
+ described_class.stubs(:get_resource_info).with('bash').raises(Puppet::ExecutionFailure, 'An error occurred')
133
+
131
134
  expect(provider.query).to equal(nil)
132
135
  end
133
136
  end
@@ -145,13 +148,15 @@ describe Puppet::Type.type(:package).provider(:pkgng) do
145
148
  end
146
149
 
147
150
  it "should call update to upgrade the version" do
151
+ described_class.stubs(:get_resource_info).with('ftp/curl').returns('curl 7.61.1 ftp/curl')
152
+
148
153
  resource = Puppet::Type.type(:package).new(
149
154
  :name => 'ftp/curl',
150
155
  :provider => pkgng,
151
156
  :ensure => :latest
152
157
  )
153
158
 
154
- expect(resource.provider).to receive(:update)
159
+ resource.provider.expects(:update)
155
160
 
156
161
  resource.property(:ensure).sync
157
162
  end
@@ -160,13 +165,17 @@ describe Puppet::Type.type(:package).provider(:pkgng) do
160
165
  describe "get_latest_version" do
161
166
  it "should rereturn nil when the current package is the latest" do
162
167
  version_list = File.read(my_fixture('pkg.version'))
163
- nmap_latest_version = described_class.get_latest_version('security/nmap', version_list)
168
+ described_class.stubs(:get_version_list).returns(version_list)
169
+ nmap_latest_version = described_class.get_latest_version('security/nmap')
170
+
164
171
  expect(nmap_latest_version).to be_nil
165
172
  end
166
173
 
167
174
  it "should match the package name exactly" do
168
175
  version_list = File.read(my_fixture('pkg.version'))
169
- bash_comp_latest_version = described_class.get_latest_version('shells/bash-completion', version_list)
176
+ described_class.stubs(:get_version_list).returns(version_list)
177
+ bash_comp_latest_version = described_class.get_latest_version('shells/bash-completion')
178
+
170
179
  expect(bash_comp_latest_version).to eq('2.1_3')
171
180
  end
172
181
  end
@@ -174,7 +183,7 @@ describe Puppet::Type.type(:package).provider(:pkgng) do
174
183
  describe "confine" do
175
184
  context "on FreeBSD" do
176
185
  it "should be the default provider" do
177
- expect(Facter).to receive(:value).with(:operatingsystem).at_least(:once).and_return(:freebsd)
186
+ Facter.expects(:value).with(:operatingsystem).at_least_once.returns :freebsd
178
187
  expect(described_class).to be_default
179
188
  end
180
189
  end
@@ -1,16 +1,19 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
 
3
- describe Puppet::Type.type(:package).provider(:pkgutil) do
4
+ provider = Puppet::Type.type(:package).provider(:pkgutil)
5
+
6
+ describe provider do
4
7
  before(:each) do
5
8
  @resource = Puppet::Type.type(:package).new(
6
9
  :name => "TESTpkg",
7
10
  :ensure => :present,
8
11
  :provider => :pkgutil
9
12
  )
10
- @provider = described_class.new(@resource)
13
+ @provider = provider.new(@resource)
11
14
 
12
15
  # Stub all file and config tests
13
- allow(described_class).to receive(:healthcheck)
16
+ provider.stubs(:healthcheck)
14
17
  end
15
18
 
16
19
  it "should have an install method" do
@@ -32,59 +35,59 @@ describe Puppet::Type.type(:package).provider(:pkgutil) do
32
35
  describe "when installing" do
33
36
  it "should use a command without versioned package" do
34
37
  @resource[:ensure] = :latest
35
- expect(@provider).to receive(:pkguti).with('-y', '-i', 'TESTpkg')
38
+ @provider.expects(:pkguti).with('-y', '-i', 'TESTpkg')
36
39
  @provider.install
37
40
  end
38
41
 
39
42
  it "should support a single temp repo URL" do
40
43
  @resource[:ensure] = :latest
41
44
  @resource[:source] = "http://example.net/repo"
42
- expect(@provider).to receive(:pkguti).with('-t', 'http://example.net/repo', '-y', '-i', 'TESTpkg')
45
+ @provider.expects(:pkguti).with('-t', 'http://example.net/repo', '-y', '-i', 'TESTpkg')
43
46
  @provider.install
44
47
  end
45
48
 
46
49
  it "should support multiple temp repo URLs as array" do
47
50
  @resource[:ensure] = :latest
48
51
  @resource[:source] = [ 'http://example.net/repo', 'http://example.net/foo' ]
49
- expect(@provider).to receive(:pkguti).with('-t', 'http://example.net/repo', '-t', 'http://example.net/foo', '-y', '-i', 'TESTpkg')
52
+ @provider.expects(:pkguti).with('-t', 'http://example.net/repo', '-t', 'http://example.net/foo', '-y', '-i', 'TESTpkg')
50
53
  @provider.install
51
54
  end
52
55
  end
53
56
 
54
57
  describe "when updating" do
55
58
  it "should use a command without versioned package" do
56
- expect(@provider).to receive(:pkguti).with('-y', '-u', 'TESTpkg')
59
+ @provider.expects(:pkguti).with('-y', '-u', 'TESTpkg')
57
60
  @provider.update
58
61
  end
59
62
 
60
63
  it "should support a single temp repo URL" do
61
64
  @resource[:source] = "http://example.net/repo"
62
- expect(@provider).to receive(:pkguti).with('-t', 'http://example.net/repo', '-y', '-u', 'TESTpkg')
65
+ @provider.expects(:pkguti).with('-t', 'http://example.net/repo', '-y', '-u', 'TESTpkg')
63
66
  @provider.update
64
67
  end
65
68
 
66
69
  it "should support multiple temp repo URLs as array" do
67
70
  @resource[:source] = [ 'http://example.net/repo', 'http://example.net/foo' ]
68
- expect(@provider).to receive(:pkguti).with('-t', 'http://example.net/repo', '-t', 'http://example.net/foo', '-y', '-u', 'TESTpkg')
71
+ @provider.expects(:pkguti).with('-t', 'http://example.net/repo', '-t', 'http://example.net/foo', '-y', '-u', 'TESTpkg')
69
72
  @provider.update
70
73
  end
71
74
  end
72
75
 
73
76
  describe "when uninstalling" do
74
77
  it "should call the remove operation" do
75
- expect(@provider).to receive(:pkguti).with('-y', '-r', 'TESTpkg')
78
+ @provider.expects(:pkguti).with('-y', '-r', 'TESTpkg')
76
79
  @provider.uninstall
77
80
  end
78
81
 
79
82
  it "should support a single temp repo URL" do
80
83
  @resource[:source] = "http://example.net/repo"
81
- expect(@provider).to receive(:pkguti).with('-t', 'http://example.net/repo', '-y', '-r', 'TESTpkg')
84
+ @provider.expects(:pkguti).with('-t', 'http://example.net/repo', '-y', '-r', 'TESTpkg')
82
85
  @provider.uninstall
83
86
  end
84
87
 
85
88
  it "should support multiple temp repo URLs as array" do
86
89
  @resource[:source] = [ 'http://example.net/repo', 'http://example.net/foo' ]
87
- expect(@provider).to receive(:pkguti).with('-t', 'http://example.net/repo', '-t', 'http://example.net/foo', '-y', '-r', 'TESTpkg')
90
+ @provider.expects(:pkguti).with('-t', 'http://example.net/repo', '-t', 'http://example.net/foo', '-y', '-r', 'TESTpkg')
88
91
  @provider.uninstall
89
92
  end
90
93
  end
@@ -94,7 +97,7 @@ describe Puppet::Type.type(:package).provider(:pkgutil) do
94
97
  fake_data = "
95
98
  noisy output here
96
99
  TESTpkg 1.4.5,REV=2007.11.18 1.4.5,REV=2007.11.20"
97
- expect(described_class).to receive(:pkguti).with('-c', '--single', 'TESTpkg').and_return(fake_data)
100
+ provider.expects(:pkguti).with('-c', '--single', 'TESTpkg').returns fake_data
98
101
  expect(@provider.latest).to eq("1.4.5,REV=2007.11.20")
99
102
  end
100
103
 
@@ -103,7 +106,7 @@ TESTpkg 1.4.5,REV=2007.11.18 1.4.5,REV=2007.11.20"
103
106
  fake_data = "
104
107
  noisy output here
105
108
  TESTpkg 1.4.5,REV=2007.11.18 1.4.5,REV=2007.11.20"
106
- expect(described_class).to receive(:pkguti).with('-t', 'http://example.net/repo', '-c', '--single', 'TESTpkg').and_return(fake_data)
109
+ provider.expects(:pkguti).with('-t', 'http://example.net/repo', '-c', '--single', 'TESTpkg').returns fake_data
107
110
  expect(@provider.latest).to eq("1.4.5,REV=2007.11.20")
108
111
  end
109
112
 
@@ -111,19 +114,19 @@ TESTpkg 1.4.5,REV=2007.11.18 1.4.5,REV=2007.11.20"
111
114
  fake_data = "
112
115
  noisy output here
113
116
  TESTpkg 1.4.5,REV=2007.11.18 SAME"
114
- expect(described_class).to receive(:pkguti).with('-c', '--single', 'TESTpkg').and_return(fake_data)
117
+ provider.expects(:pkguti).with('-c', '--single', 'TESTpkg').returns fake_data
115
118
  expect(@provider.latest).to eq("1.4.5,REV=2007.11.18")
116
119
  end
117
120
 
118
121
  it "should handle a non-existent package" do
119
122
  fake_data = "noisy output here
120
123
  Not in catalog"
121
- expect(described_class).to receive(:pkguti).with('-c', '--single', 'TESTpkg').and_return(fake_data)
124
+ provider.expects(:pkguti).with('-c', '--single', 'TESTpkg').returns fake_data
122
125
  expect(@provider.latest).to eq(nil)
123
126
  end
124
127
 
125
128
  it "should warn on unknown pkgutil noise" do
126
- expect(described_class).to receive(:pkguti).with('-c', '--single', 'TESTpkg').and_return("testingnoise")
129
+ provider.expects(:pkguti).with('-c', '--single', 'TESTpkg').returns("testingnoise")
127
130
  expect(@provider.latest).to eq(nil)
128
131
  end
129
132
 
@@ -137,7 +140,7 @@ gpg: Good signature from \"Distribution Manager <dm@blastwave.org>\"
137
140
  ==> 2770 packages loaded from /var/opt/csw/pkgutil/catalog.mirror.opencsw.org_opencsw_unstable_i386_5.11
138
141
  package installed catalog
139
142
  TESTpkg 1.4.5,REV=2007.11.18 1.4.5,REV=2007.11.20"
140
- expect(described_class).to receive(:pkguti).with('-c', '--single', 'TESTpkg').and_return(fake_data)
143
+ provider.expects(:pkguti).with('-c', '--single', 'TESTpkg').returns fake_data
141
144
  expect(@provider.latest).to eq("1.4.5,REV=2007.11.20")
142
145
  end
143
146
 
@@ -145,7 +148,7 @@ TESTpkg 1.4.5,REV=2007.11.18 1.4.5,REV=2007.11.20"
145
148
  fake_data = "
146
149
  noisy output here
147
150
  REALpkg 1.4.5,REV=2007.11.18 1.4.5,REV=2007.11.20"
148
- expect(described_class).to receive(:pkguti).with('-c', '--single', 'TESTpkg').and_return(fake_data)
151
+ provider.expects(:pkguti).with('-c', '--single', 'TESTpkg').returns fake_data
149
152
  expect(@provider.query[:name]).to eq("TESTpkg")
150
153
  end
151
154
  end
@@ -153,79 +156,80 @@ REALpkg 1.4.5,REV=2007.11.18 1.4.5,REV=2007.11.20"
153
156
  describe "when querying current version" do
154
157
  it "should return TESTpkg's version string" do
155
158
  fake_data = "TESTpkg 1.4.5,REV=2007.11.18 1.4.5,REV=2007.11.20"
156
- expect(described_class).to receive(:pkguti).with('-c', '--single', 'TESTpkg').and_return(fake_data)
159
+ provider.expects(:pkguti).with('-c', '--single', 'TESTpkg').returns fake_data
157
160
  expect(@provider.query[:ensure]).to eq("1.4.5,REV=2007.11.18")
158
161
  end
159
162
 
160
163
  it "should handle a package that isn't installed" do
161
164
  fake_data = "TESTpkg notinst 1.4.5,REV=2007.11.20"
162
- expect(described_class).to receive(:pkguti).with('-c', '--single', 'TESTpkg').and_return(fake_data)
165
+ provider.expects(:pkguti).with('-c', '--single', 'TESTpkg').returns fake_data
163
166
  expect(@provider.query[:ensure]).to eq(:absent)
164
167
  end
165
168
 
166
169
  it "should handle a non-existent package" do
167
170
  fake_data = "noisy output here
168
171
  Not in catalog"
169
- expect(described_class).to receive(:pkguti).with('-c', '--single', 'TESTpkg').and_return(fake_data)
172
+ provider.expects(:pkguti).with('-c', '--single', 'TESTpkg').returns fake_data
170
173
  expect(@provider.query[:ensure]).to eq(:absent)
171
174
  end
172
175
 
173
176
  it "should support a temp repo URL" do
174
177
  @resource[:source] = "http://example.net/repo"
175
178
  fake_data = "TESTpkg 1.4.5,REV=2007.11.18 1.4.5,REV=2007.11.20"
176
- expect(described_class).to receive(:pkguti).with('-t', 'http://example.net/repo', '-c', '--single', 'TESTpkg').and_return(fake_data)
179
+ provider.expects(:pkguti).with('-t', 'http://example.net/repo', '-c', '--single', 'TESTpkg').returns fake_data
177
180
  expect(@provider.query[:ensure]).to eq("1.4.5,REV=2007.11.18")
178
181
  end
179
182
  end
180
183
 
181
184
  describe "when querying current instances" do
182
185
  it "should warn on unknown pkgutil noise" do
183
- expect(described_class).to receive(:pkguti).with(['-a']).and_return("testingnoise")
184
- expect(described_class).to receive(:pkguti).with(['-c']).and_return("testingnoise")
185
- expect(Puppet).to receive(:warning).twice
186
- expect(described_class).not_to receive(:new)
187
- expect(described_class.instances).to eq([])
186
+ provider.expects(:pkguti).with(['-a']).returns("testingnoise")
187
+ provider.expects(:pkguti).with(['-c']).returns("testingnoise")
188
+ Puppet.expects(:warning).times(2)
189
+ provider.expects(:new).never
190
+ expect(provider.instances).to eq([])
188
191
  end
189
192
 
190
193
  it "should return TESTpkg's version string" do
191
194
  fake_data = "TESTpkg TESTpkg 1.4.5,REV=2007.11.20"
192
- expect(described_class).to receive(:pkguti).with(['-a']).and_return(fake_data)
195
+ provider.expects(:pkguti).with(['-a']).returns fake_data
193
196
 
194
197
  fake_data = "TESTpkg 1.4.5,REV=2007.11.18 1.4.5,REV=2007.11.20"
195
- expect(described_class).to receive(:pkguti).with(['-c']).and_return(fake_data)
198
+ provider.expects(:pkguti).with(['-c']).returns fake_data
196
199
 
197
- testpkg = double('pkg1')
198
- expect(described_class).to receive(:new).with(:ensure => "1.4.5,REV=2007.11.18", :name => "TESTpkg", :provider => :pkgutil).and_return(testpkg)
199
- expect(described_class.instances).to eq([testpkg])
200
+ testpkg = mock 'pkg1'
201
+ provider.expects(:new).with(:ensure => "1.4.5,REV=2007.11.18", :name => "TESTpkg", :provider => :pkgutil).returns testpkg
202
+ expect(provider.instances).to eq([testpkg])
200
203
  end
201
204
 
202
205
  it "should also return both TESTpkg and mypkg alias instances" do
203
206
  fake_data = "mypkg TESTpkg 1.4.5,REV=2007.11.20"
204
- expect(described_class).to receive(:pkguti).with(['-a']).and_return(fake_data)
207
+ provider.expects(:pkguti).with(['-a']).returns fake_data
205
208
 
206
209
  fake_data = "TESTpkg 1.4.5,REV=2007.11.18 1.4.5,REV=2007.11.20"
207
- expect(described_class).to receive(:pkguti).with(['-c']).and_return(fake_data)
210
+ provider.expects(:pkguti).with(['-c']).returns fake_data
208
211
 
209
- testpkg = double('pkg1')
210
- expect(described_class).to receive(:new).with(:ensure => "1.4.5,REV=2007.11.18", :name => "TESTpkg", :provider => :pkgutil).and_return(testpkg)
212
+ testpkg = mock 'pkg1'
213
+ provider.expects(:new).with(:ensure => "1.4.5,REV=2007.11.18", :name => "TESTpkg", :provider => :pkgutil).returns testpkg
211
214
 
212
- aliaspkg = double('pkg2')
213
- expect(described_class).to receive(:new).with(:ensure => "1.4.5,REV=2007.11.18", :name => "mypkg", :provider => :pkgutil).and_return(aliaspkg)
215
+ aliaspkg = mock 'pkg2'
216
+ provider.expects(:new).with(:ensure => "1.4.5,REV=2007.11.18", :name => "mypkg", :provider => :pkgutil).returns aliaspkg
214
217
 
215
- expect(described_class.instances).to eq([testpkg,aliaspkg])
218
+ expect(provider.instances).to eq([testpkg,aliaspkg])
216
219
  end
217
220
 
218
221
  it "shouldn't mind noise in the -a output" do
219
222
  fake_data = "noisy output here"
220
- expect(described_class).to receive(:pkguti).with(['-a']).and_return(fake_data)
223
+ provider.expects(:pkguti).with(['-a']).returns fake_data
221
224
 
222
225
  fake_data = "TESTpkg 1.4.5,REV=2007.11.18 1.4.5,REV=2007.11.20"
223
- expect(described_class).to receive(:pkguti).with(['-c']).and_return(fake_data)
226
+ provider.expects(:pkguti).with(['-c']).returns fake_data
224
227
 
225
- testpkg = double('pkg1')
226
- expect(described_class).to receive(:new).with(:ensure => "1.4.5,REV=2007.11.18", :name => "TESTpkg", :provider => :pkgutil).and_return(testpkg)
228
+ testpkg = mock 'pkg1'
229
+ provider.expects(:new).with(:ensure => "1.4.5,REV=2007.11.18", :name => "TESTpkg", :provider => :pkgutil).returns testpkg
227
230
 
228
- expect(described_class.instances).to eq([testpkg])
231
+ expect(provider.instances).to eq([testpkg])
229
232
  end
230
233
  end
234
+
231
235
  end