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

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

Potentially problematic release.


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

Files changed (748) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/Gemfile.lock +31 -27
  4. data/Guardfile.example +76 -0
  5. data/LICENSE +189 -4
  6. data/MAINTAINERS +47 -0
  7. data/README.md +3 -3
  8. data/lib/hiera/scope.rb +0 -7
  9. data/lib/puppet.rb +6 -5
  10. data/lib/puppet/application.rb +3 -3
  11. data/lib/puppet/application/cert.rb +2 -2
  12. data/lib/puppet/application/device.rb +83 -109
  13. data/lib/puppet/application/filebucket.rb +1 -10
  14. data/lib/puppet/application/ssl.rb +0 -2
  15. data/lib/puppet/configurer.rb +9 -10
  16. data/lib/puppet/confine/false.rb +1 -7
  17. data/lib/puppet/confine/true.rb +1 -7
  18. data/lib/puppet/defaults.rb +39 -51
  19. data/lib/puppet/forge.rb +1 -4
  20. data/lib/puppet/functions/abs.rb +1 -1
  21. data/lib/puppet/functions/call.rb +1 -2
  22. data/lib/puppet/functions/new.rb +1 -1
  23. data/lib/puppet/indirector/request.rb +15 -26
  24. data/lib/puppet/network/http/connection.rb +12 -32
  25. data/lib/puppet/network/http/factory.rb +0 -5
  26. data/lib/puppet/pal/catalog_compiler.rb +96 -0
  27. data/lib/puppet/pal/compiler.rb +221 -0
  28. data/lib/puppet/pal/function_signature.rb +52 -0
  29. data/lib/puppet/pal/json_catalog_encoder.rb +67 -0
  30. data/lib/puppet/pal/pal_api.rb +15 -0
  31. data/lib/puppet/pal/pal_impl.rb +523 -0
  32. data/lib/puppet/pal/plan_signature.rb +71 -0
  33. data/lib/puppet/pal/script_compiler.rb +71 -0
  34. data/lib/puppet/pal/task_signature.rb +58 -0
  35. data/lib/puppet/parser/functions/generate.rb +7 -6
  36. data/lib/puppet/plugins/configuration.rb +5 -1
  37. data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -1
  38. data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -3
  39. data/lib/puppet/pops/issues.rb +0 -4
  40. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +4 -60
  41. data/lib/puppet/pops/model/factory.rb +4 -38
  42. data/lib/puppet/pops/model/pn_transformer.rb +0 -5
  43. data/lib/puppet/pops/parser/egrammar.ra +2 -2
  44. data/lib/puppet/pops/parser/heredoc_support.rb +7 -17
  45. data/lib/puppet/pops/parser/lexer2.rb +1 -6
  46. data/lib/puppet/pops/parser/locator.rb +86 -106
  47. data/lib/puppet/pops/parser/parser_support.rb +2 -11
  48. data/lib/puppet/pops/types/string_converter.rb +7 -2
  49. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  50. data/lib/puppet/pops/types/types.rb +3 -5
  51. data/lib/puppet/pops/validation/checker4_0.rb +13 -0
  52. data/lib/puppet/provider.rb +2 -1
  53. data/lib/puppet/provider/exec.rb +6 -1
  54. data/lib/puppet/provider/file/windows.rb +1 -49
  55. data/lib/puppet/provider/group/windows_adsi.rb +1 -4
  56. data/lib/puppet/provider/package.rb +0 -2
  57. data/lib/puppet/provider/package/dpkg.rb +2 -15
  58. data/lib/puppet/provider/package/gem.rb +42 -102
  59. data/lib/puppet/provider/package/pip.rb +111 -135
  60. data/lib/puppet/provider/package/pip3.rb +1 -1
  61. data/lib/puppet/provider/package/pkgng.rb +37 -21
  62. data/lib/puppet/provider/package/puppet_gem.rb +1 -1
  63. data/lib/puppet/provider/package/rpm.rb +16 -27
  64. data/lib/puppet/provider/package/windows.rb +1 -5
  65. data/lib/puppet/provider/package/yum.rb +1 -2
  66. data/lib/puppet/provider/service/systemd.rb +17 -0
  67. data/lib/puppet/provider/service/upstart.rb +5 -17
  68. data/lib/puppet/provider/service/windows.rb +8 -3
  69. data/lib/puppet/provider/user/directoryservice.rb +4 -16
  70. data/lib/puppet/provider/user/useradd.rb +13 -16
  71. data/lib/puppet/resource.rb +3 -1
  72. data/lib/puppet/rest/client.rb +83 -0
  73. data/lib/puppet/rest/route.rb +1 -1
  74. data/lib/puppet/settings.rb +5 -10
  75. data/lib/puppet/settings/server_list_setting.rb +0 -9
  76. data/lib/puppet/ssl/host.rb +11 -0
  77. data/lib/puppet/ssl/validator/default_validator.rb +0 -31
  78. data/lib/puppet/syntax_checkers/epp.rb +34 -0
  79. data/lib/puppet/syntax_checkers/pp.rb +34 -0
  80. data/lib/puppet/transaction.rb +7 -12
  81. data/lib/puppet/transaction/event_manager.rb +5 -1
  82. data/lib/puppet/transaction/resource_harness.rb +0 -1
  83. data/lib/puppet/type.rb +6 -0
  84. data/lib/puppet/type/exec.rb +5 -27
  85. data/lib/puppet/type/file/mode.rb +1 -6
  86. data/lib/puppet/type/file/source.rb +1 -0
  87. data/lib/puppet/type/filebucket.rb +8 -12
  88. data/lib/puppet/type/package.rb +11 -44
  89. data/lib/puppet/type/schedule.rb +0 -4
  90. data/lib/puppet/type/service.rb +12 -0
  91. data/lib/puppet/type/user.rb +1 -1
  92. data/lib/puppet/util/command_line.rb +1 -5
  93. data/lib/puppet/util/connection.rb +6 -15
  94. data/lib/puppet/util/http_proxy.rb +2 -3
  95. data/lib/puppet/util/log.rb +2 -7
  96. data/lib/puppet/util/pidlock.rb +1 -15
  97. data/lib/puppet/util/windows/process.rb +5 -73
  98. data/lib/puppet/util/windows/registry.rb +1 -7
  99. data/lib/puppet/util/windows/security.rb +8 -29
  100. data/lib/puppet/util/windows/service.rb +33 -27
  101. data/lib/puppet/util/windows/user.rb +4 -14
  102. data/lib/puppet/version.rb +1 -1
  103. data/lib/puppet_pal.rb +5 -1132
  104. data/locales/ja/puppet.po +297 -363
  105. data/locales/puppet.pot +445 -517
  106. data/man/man5/puppet.conf.5 +12 -20
  107. data/man/man8/puppet-agent.8 +1 -1
  108. data/man/man8/puppet-apply.8 +1 -1
  109. data/man/man8/puppet-catalog.8 +1 -1
  110. data/man/man8/puppet-config.8 +1 -1
  111. data/man/man8/puppet-describe.8 +1 -1
  112. data/man/man8/puppet-device.8 +1 -1
  113. data/man/man8/puppet-doc.8 +1 -1
  114. data/man/man8/puppet-epp.8 +1 -1
  115. data/man/man8/puppet-facts.8 +1 -1
  116. data/man/man8/puppet-filebucket.8 +2 -6
  117. data/man/man8/puppet-generate.8 +1 -1
  118. data/man/man8/puppet-help.8 +1 -1
  119. data/man/man8/puppet-key.8 +1 -1
  120. data/man/man8/puppet-lookup.8 +1 -1
  121. data/man/man8/puppet-man.8 +1 -1
  122. data/man/man8/puppet-module.8 +1 -1
  123. data/man/man8/puppet-node.8 +1 -1
  124. data/man/man8/puppet-parser.8 +1 -1
  125. data/man/man8/puppet-plugin.8 +1 -1
  126. data/man/man8/puppet-report.8 +1 -1
  127. data/man/man8/puppet-resource.8 +1 -1
  128. data/man/man8/puppet-script.8 +1 -1
  129. data/man/man8/puppet-ssl.8 +1 -1
  130. data/man/man8/puppet-status.8 +1 -1
  131. data/man/man8/puppet.8 +2 -2
  132. data/spec/fixtures/unit/provider/package/pkgng/pkg.query +7 -1
  133. data/spec/fixtures/unit/provider/package/pkgng/pkg.query.zsh +1 -0
  134. data/spec/integration/agent/logging_spec.rb +7 -5
  135. data/spec/integration/application/apply_spec.rb +16 -18
  136. data/spec/integration/application/doc_spec.rb +2 -1
  137. data/spec/integration/application/lookup_spec.rb +5 -5
  138. data/spec/integration/configurer_spec.rb +6 -5
  139. data/spec/integration/defaults_spec.rb +6 -5
  140. data/spec/integration/directory_environments_spec.rb +1 -1
  141. data/spec/integration/faces/config_spec.rb +4 -3
  142. data/spec/integration/faces/documentation_spec.rb +1 -0
  143. data/spec/integration/faces/plugin_spec.rb +1 -1
  144. data/spec/integration/file_bucket/file_spec.rb +4 -2
  145. data/spec/integration/file_serving/content_spec.rb +1 -0
  146. data/spec/integration/file_serving/fileset_spec.rb +1 -0
  147. data/spec/integration/file_serving/metadata_spec.rb +1 -0
  148. data/spec/integration/file_serving/terminus_helper_spec.rb +1 -0
  149. data/spec/integration/indirector/catalog/compiler_spec.rb +11 -10
  150. data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
  151. data/spec/integration/indirector/facts/facter_spec.rb +5 -4
  152. data/spec/integration/indirector/file_content/file_server_spec.rb +8 -7
  153. data/spec/integration/indirector/file_metadata/file_server_spec.rb +8 -7
  154. data/spec/integration/network/authconfig_spec.rb +24 -23
  155. data/spec/integration/network/formats_spec.rb +1 -0
  156. data/spec/integration/node/environment_spec.rb +1 -0
  157. data/spec/integration/node/facts_spec.rb +10 -9
  158. data/spec/integration/node_spec.rb +7 -6
  159. data/spec/integration/parser/catalog_spec.rb +5 -1
  160. data/spec/integration/parser/collection_spec.rb +2 -1
  161. data/spec/integration/parser/compiler_spec.rb +6 -6
  162. data/spec/integration/parser/scope_spec.rb +1 -1
  163. data/spec/integration/parser/undef_param_spec.rb +1 -1
  164. data/spec/integration/provider/service/init_spec.rb +5 -4
  165. data/spec/integration/provider/service/systemd_spec.rb +2 -0
  166. data/spec/integration/provider/service/windows_spec.rb +2 -1
  167. data/spec/integration/reference/providers_spec.rb +2 -1
  168. data/spec/integration/reports_spec.rb +2 -1
  169. data/spec/integration/resource/catalog_spec.rb +17 -14
  170. data/spec/integration/resource/type_collection_spec.rb +5 -4
  171. data/spec/integration/ssl/certificate_request_spec.rb +1 -0
  172. data/spec/integration/ssl/host_spec.rb +2 -1
  173. data/spec/integration/ssl/key_spec.rb +1 -0
  174. data/spec/integration/test/test_helper_spec.rb +1 -0
  175. data/spec/integration/transaction/report_spec.rb +11 -6
  176. data/spec/integration/transaction_spec.rb +19 -18
  177. data/spec/integration/type/exec_spec.rb +1 -0
  178. data/spec/integration/type/file_spec.rb +33 -13
  179. data/spec/integration/type/package_spec.rb +24 -20
  180. data/spec/integration/type/tidy_spec.rb +2 -1
  181. data/spec/integration/type_spec.rb +1 -0
  182. data/spec/integration/util/autoload_spec.rb +2 -1
  183. data/spec/integration/util/rdoc/parser_spec.rb +1 -0
  184. data/spec/integration/util/settings_spec.rb +1 -0
  185. data/spec/integration/util/windows/adsi_spec.rb +5 -3
  186. data/spec/integration/util/windows/principal_spec.rb +1 -0
  187. data/spec/integration/util/windows/process_spec.rb +6 -4
  188. data/spec/integration/util/windows/registry_spec.rb +51 -93
  189. data/spec/integration/util/windows/security_spec.rb +4 -2
  190. data/spec/integration/util/windows/user_spec.rb +20 -37
  191. data/spec/integration/util_spec.rb +7 -4
  192. data/spec/lib/puppet_spec/compiler.rb +1 -1
  193. data/spec/lib/puppet_spec/files.rb +1 -0
  194. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
  195. data/spec/lib/puppet_spec/scope.rb +2 -1
  196. data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
  197. data/spec/shared_behaviours/file_server_terminus.rb +9 -8
  198. data/spec/shared_behaviours/file_serving.rb +8 -6
  199. data/spec/shared_behaviours/file_serving_model.rb +5 -3
  200. data/spec/shared_behaviours/hiera_indirections.rb +4 -3
  201. data/spec/shared_behaviours/iterative_functions.rb +1 -0
  202. data/spec/shared_behaviours/memory_terminus.rb +2 -2
  203. data/spec/shared_examples/rhel_package_provider.rb +70 -112
  204. data/spec/spec_helper.rb +2 -11
  205. data/spec/unit/agent/disabler_spec.rb +5 -4
  206. data/spec/unit/agent/locker_spec.rb +13 -12
  207. data/spec/unit/agent_spec.rb +85 -80
  208. data/spec/unit/application/agent_spec.rb +93 -88
  209. data/spec/unit/application/apply_spec.rb +83 -82
  210. data/spec/unit/application/config_spec.rb +1 -0
  211. data/spec/unit/application/describe_spec.rb +7 -6
  212. data/spec/unit/application/device_spec.rb +419 -395
  213. data/spec/unit/application/doc_spec.rb +46 -44
  214. data/spec/unit/application/face_base_spec.rb +62 -61
  215. data/spec/unit/application/facts_spec.rb +4 -3
  216. data/spec/unit/application/filebucket_spec.rb +74 -66
  217. data/spec/unit/application/indirection_base_spec.rb +6 -8
  218. data/spec/unit/application/lookup_spec.rb +26 -26
  219. data/spec/unit/application/resource_spec.rb +48 -42
  220. data/spec/unit/application/ssl_spec.rb +3 -8
  221. data/spec/unit/application_spec.rb +98 -86
  222. data/spec/unit/capability_spec.rb +6 -6
  223. data/spec/unit/certificate_factory_spec.rb +5 -3
  224. data/spec/unit/configurer/downloader_spec.rb +21 -20
  225. data/spec/unit/configurer/fact_handler_spec.rb +3 -2
  226. data/spec/unit/configurer/plugin_handler_spec.rb +8 -41
  227. data/spec/unit/configurer_spec.rb +198 -194
  228. data/spec/unit/confine/exists_spec.rb +15 -17
  229. data/spec/unit/confine/false_spec.rb +6 -32
  230. data/spec/unit/confine/feature_spec.rb +5 -7
  231. data/spec/unit/confine/true_spec.rb +6 -32
  232. data/spec/unit/confine/variable_spec.rb +15 -14
  233. data/spec/unit/confine_collection_spec.rb +29 -28
  234. data/spec/unit/confine_spec.rb +14 -13
  235. data/spec/unit/confiner_spec.rb +11 -10
  236. data/spec/unit/context/trusted_information_spec.rb +1 -1
  237. data/spec/unit/daemon_spec.rb +36 -35
  238. data/spec/unit/data_providers/function_data_provider_spec.rb +1 -0
  239. data/spec/unit/data_providers/hiera_data_provider_spec.rb +1 -0
  240. data/spec/unit/datatypes_spec.rb +4 -3
  241. data/spec/unit/defaults_spec.rb +27 -18
  242. data/spec/unit/environments_spec.rb +7 -7
  243. data/spec/unit/etc_spec.rb +32 -30
  244. data/spec/unit/external/pson_spec.rb +1 -0
  245. data/spec/unit/face/catalog_spec.rb +1 -0
  246. data/spec/unit/face/config_spec.rb +35 -31
  247. data/spec/unit/face/epp_face_spec.rb +4 -3
  248. data/spec/unit/face/facts_spec.rb +6 -5
  249. data/spec/unit/face/generate_spec.rb +5 -4
  250. data/spec/unit/face/help_spec.rb +8 -7
  251. data/spec/unit/face/key_spec.rb +1 -0
  252. data/spec/unit/face/man_spec.rb +2 -1
  253. data/spec/unit/face/module/install_spec.rb +5 -3
  254. data/spec/unit/face/module/list_spec.rb +12 -2
  255. data/spec/unit/face/module/search_spec.rb +9 -11
  256. data/spec/unit/face/module/uninstall_spec.rb +8 -4
  257. data/spec/unit/face/node_spec.rb +24 -23
  258. data/spec/unit/face/parser_spec.rb +18 -3
  259. data/spec/unit/face/plugin_spec.rb +9 -36
  260. data/spec/unit/face/status_spec.rb +1 -0
  261. data/spec/unit/file_bucket/dipper_spec.rb +20 -24
  262. data/spec/unit/file_bucket/file_spec.rb +2 -0
  263. data/spec/unit/file_serving/base_spec.rb +15 -14
  264. data/spec/unit/file_serving/configuration/parser_spec.rb +28 -27
  265. data/spec/unit/file_serving/configuration_spec.rb +66 -63
  266. data/spec/unit/file_serving/content_spec.rb +11 -10
  267. data/spec/unit/file_serving/fileset_spec.rb +58 -63
  268. data/spec/unit/file_serving/http_metadata_spec.rb +7 -8
  269. data/spec/unit/file_serving/metadata_spec.rb +36 -36
  270. data/spec/unit/file_serving/mount/file_spec.rb +32 -31
  271. data/spec/unit/file_serving/mount/locales_spec.rb +24 -23
  272. data/spec/unit/file_serving/mount/modules_spec.rb +15 -14
  273. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +24 -23
  274. data/spec/unit/file_serving/mount/plugins_spec.rb +24 -23
  275. data/spec/unit/file_serving/mount/tasks_spec.rb +15 -14
  276. data/spec/unit/file_serving/mount_spec.rb +1 -0
  277. data/spec/unit/file_serving/terminus_helper_spec.rb +42 -37
  278. data/spec/unit/file_serving/terminus_selector_spec.rb +13 -12
  279. data/spec/unit/file_system/uniquefile_spec.rb +4 -4
  280. data/spec/unit/file_system_spec.rb +2 -2
  281. data/spec/unit/forge/errors_spec.rb +1 -1
  282. data/spec/unit/forge/forge_spec.rb +16 -17
  283. data/spec/unit/forge/module_release_spec.rb +18 -18
  284. data/spec/unit/forge/repository_spec.rb +30 -29
  285. data/spec/unit/forge_spec.rb +11 -15
  286. data/spec/unit/functions/binary_file_spec.rb +3 -3
  287. data/spec/unit/functions/contain_spec.rb +2 -0
  288. data/spec/unit/functions/defined_spec.rb +1 -0
  289. data/spec/unit/functions/epp_spec.rb +2 -2
  290. data/spec/unit/functions/find_file_spec.rb +7 -7
  291. data/spec/unit/functions/include_spec.rb +4 -0
  292. data/spec/unit/functions/lookup_fixture_spec.rb +1 -0
  293. data/spec/unit/functions/lookup_spec.rb +2 -1
  294. data/spec/unit/functions/module_directory_spec.rb +12 -12
  295. data/spec/unit/functions/new_spec.rb +0 -15
  296. data/spec/unit/functions/require_spec.rb +3 -0
  297. data/spec/unit/functions/shared.rb +8 -5
  298. data/spec/unit/functions/versioncmp_spec.rb +2 -1
  299. data/spec/unit/functions4_spec.rb +10 -9
  300. data/spec/unit/gettext/config_spec.rb +4 -4
  301. data/spec/unit/gettext/module_loading_spec.rb +7 -7
  302. data/spec/unit/graph/rb_tree_map_spec.rb +2 -0
  303. data/spec/unit/graph/relationship_graph_spec.rb +2 -1
  304. data/spec/unit/graph/simple_graph_spec.rb +10 -9
  305. data/spec/unit/hiera/scope_spec.rb +0 -7
  306. data/spec/unit/hiera_puppet_spec.rb +20 -20
  307. data/spec/unit/indirector/catalog/compiler_spec.rb +149 -147
  308. data/spec/unit/indirector/catalog/json_spec.rb +2 -1
  309. data/spec/unit/indirector/catalog/msgpack_spec.rb +1 -0
  310. data/spec/unit/indirector/catalog/rest_spec.rb +1 -0
  311. data/spec/unit/indirector/catalog/store_configs_spec.rb +1 -0
  312. data/spec/unit/indirector/catalog/yaml_spec.rb +1 -0
  313. data/spec/unit/indirector/certificate/file_spec.rb +1 -0
  314. data/spec/unit/indirector/certificate/rest_spec.rb +10 -8
  315. data/spec/unit/indirector/certificate_request/file_spec.rb +1 -0
  316. data/spec/unit/indirector/certificate_request/rest_spec.rb +1 -0
  317. data/spec/unit/indirector/direct_file_server_spec.rb +18 -17
  318. data/spec/unit/indirector/envelope_spec.rb +2 -1
  319. data/spec/unit/indirector/exec_spec.rb +5 -4
  320. data/spec/unit/indirector/face_spec.rb +9 -9
  321. data/spec/unit/indirector/facts/facter_spec.rb +43 -37
  322. data/spec/unit/indirector/facts/network_device_spec.rb +9 -8
  323. data/spec/unit/indirector/facts/rest_spec.rb +8 -7
  324. data/spec/unit/indirector/facts/store_configs_spec.rb +1 -0
  325. data/spec/unit/indirector/facts/yaml_spec.rb +1 -0
  326. data/spec/unit/indirector/file_bucket_file/file_spec.rb +4 -3
  327. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +1 -0
  328. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +5 -4
  329. data/spec/unit/indirector/file_content/file_server_spec.rb +1 -0
  330. data/spec/unit/indirector/file_content/file_spec.rb +1 -0
  331. data/spec/unit/indirector/file_content/rest_spec.rb +1 -0
  332. data/spec/unit/indirector/file_content/selector_spec.rb +1 -0
  333. data/spec/unit/indirector/file_metadata/file_server_spec.rb +1 -0
  334. data/spec/unit/indirector/file_metadata/file_spec.rb +13 -12
  335. data/spec/unit/indirector/file_metadata/rest_spec.rb +1 -0
  336. data/spec/unit/indirector/file_metadata/selector_spec.rb +1 -0
  337. data/spec/unit/indirector/file_server_spec.rb +87 -87
  338. data/spec/unit/indirector/indirection_spec.rb +226 -242
  339. data/spec/unit/indirector/json_spec.rb +9 -7
  340. data/spec/unit/indirector/key/file_spec.rb +22 -21
  341. data/spec/unit/indirector/memory_spec.rb +7 -6
  342. data/spec/unit/indirector/msgpack_spec.rb +9 -7
  343. data/spec/unit/indirector/node/exec_spec.rb +3 -2
  344. data/spec/unit/indirector/node/memory_spec.rb +4 -2
  345. data/spec/unit/indirector/node/msgpack_spec.rb +1 -0
  346. data/spec/unit/indirector/node/plain_spec.rb +4 -2
  347. data/spec/unit/indirector/node/rest_spec.rb +1 -0
  348. data/spec/unit/indirector/node/store_configs_spec.rb +1 -0
  349. data/spec/unit/indirector/node/yaml_spec.rb +1 -0
  350. data/spec/unit/indirector/none_spec.rb +5 -5
  351. data/spec/unit/indirector/plain_spec.rb +8 -7
  352. data/spec/unit/indirector/report/msgpack_spec.rb +1 -0
  353. data/spec/unit/indirector/report/processor_spec.rb +22 -21
  354. data/spec/unit/indirector/report/rest_spec.rb +12 -11
  355. data/spec/unit/indirector/report/yaml_spec.rb +1 -0
  356. data/spec/unit/indirector/request_spec.rb +12 -11
  357. data/spec/unit/indirector/resource/ral_spec.rb +54 -47
  358. data/spec/unit/indirector/resource/store_configs_spec.rb +1 -0
  359. data/spec/unit/indirector/rest_spec.rb +110 -113
  360. data/spec/unit/indirector/ssl_file_spec.rb +65 -64
  361. data/spec/unit/indirector/status/local_spec.rb +1 -0
  362. data/spec/unit/indirector/status/rest_spec.rb +1 -0
  363. data/spec/unit/indirector/store_configs_spec.rb +1 -0
  364. data/spec/unit/indirector/terminus_spec.rb +27 -27
  365. data/spec/unit/indirector/yaml_spec.rb +6 -5
  366. data/spec/unit/indirector_spec.rb +2 -1
  367. data/spec/unit/info_service_spec.rb +1 -1
  368. data/spec/unit/interface/action_builder_spec.rb +1 -0
  369. data/spec/unit/interface/action_manager_spec.rb +1 -0
  370. data/spec/unit/interface/action_spec.rb +3 -2
  371. data/spec/unit/interface/documentation_spec.rb +1 -0
  372. data/spec/unit/interface/face_collection_spec.rb +12 -19
  373. data/spec/unit/interface_spec.rb +3 -3
  374. data/spec/unit/man_spec.rb +4 -3
  375. data/spec/unit/module_spec.rb +51 -46
  376. data/spec/unit/module_tool/applications/installer_spec.rb +11 -10
  377. data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
  378. data/spec/unit/module_tool/applications/uninstaller_spec.rb +2 -1
  379. data/spec/unit/module_tool/applications/unpacker_spec.rb +13 -13
  380. data/spec/unit/module_tool/applications/upgrader_spec.rb +5 -5
  381. data/spec/unit/module_tool/install_directory_spec.rb +8 -8
  382. data/spec/unit/module_tool/installed_modules_spec.rb +3 -3
  383. data/spec/unit/module_tool/tar/gnu_spec.rb +6 -6
  384. data/spec/unit/module_tool/tar/mini_spec.rb +12 -12
  385. data/spec/unit/module_tool/tar_spec.rb +13 -12
  386. data/spec/unit/module_tool_spec.rb +12 -7
  387. data/spec/unit/network/auth_config_parser_spec.rb +13 -11
  388. data/spec/unit/network/authconfig_spec.rb +18 -17
  389. data/spec/unit/network/authorization_spec.rb +5 -4
  390. data/spec/unit/network/authstore_spec.rb +1 -0
  391. data/spec/unit/network/format_handler_spec.rb +1 -0
  392. data/spec/unit/network/format_spec.rb +10 -9
  393. data/spec/unit/network/format_support_spec.rb +29 -28
  394. data/spec/unit/network/formats_spec.rb +5 -4
  395. data/spec/unit/network/http/api/indirected_routes_spec.rb +29 -24
  396. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +2 -2
  397. data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -1
  398. data/spec/unit/network/http/api/master/v3/environments_spec.rb +7 -6
  399. data/spec/unit/network/http/api_spec.rb +2 -0
  400. data/spec/unit/network/http/compression_spec.rb +22 -21
  401. data/spec/unit/network/http/connection_spec.rb +121 -30
  402. data/spec/unit/network/http/factory_spec.rb +6 -11
  403. data/spec/unit/network/http/handler_spec.rb +18 -9
  404. data/spec/unit/network/http/nocache_pool_spec.rb +7 -6
  405. data/spec/unit/network/http/pool_spec.rb +29 -28
  406. data/spec/unit/network/http/request_spec.rb +2 -0
  407. data/spec/unit/network/http/response_spec.rb +13 -11
  408. data/spec/unit/network/http/route_spec.rb +1 -0
  409. data/spec/unit/network/http/session_spec.rb +2 -1
  410. data/spec/unit/network/http/site_spec.rb +1 -0
  411. data/spec/unit/network/http_pool_spec.rb +9 -18
  412. data/spec/unit/network/http_spec.rb +1 -0
  413. data/spec/unit/network/resolver_spec.rb +26 -25
  414. data/spec/unit/network/rights_spec.rb +53 -52
  415. data/spec/unit/node/environment_spec.rb +15 -14
  416. data/spec/unit/node/facts_spec.rb +7 -5
  417. data/spec/unit/node_spec.rb +10 -4
  418. data/spec/unit/other/selinux_spec.rb +1 -0
  419. data/spec/unit/parameter/boolean_spec.rb +2 -1
  420. data/spec/unit/parameter/package_options_spec.rb +2 -1
  421. data/spec/unit/parameter/path_spec.rb +1 -0
  422. data/spec/unit/parameter/value_collection_spec.rb +1 -0
  423. data/spec/unit/parameter/value_spec.rb +1 -0
  424. data/spec/unit/parameter_spec.rb +9 -9
  425. data/spec/unit/parser/ast/block_expression_spec.rb +8 -6
  426. data/spec/unit/parser/ast/leaf_spec.rb +21 -20
  427. data/spec/unit/parser/compiler_spec.rb +96 -84
  428. data/spec/unit/parser/environment_compiler_spec.rb +8 -7
  429. data/spec/unit/parser/files_spec.rb +1 -0
  430. data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
  431. data/spec/unit/parser/functions/digest_spec.rb +1 -0
  432. data/spec/unit/parser/functions/fail_spec.rb +2 -1
  433. data/spec/unit/parser/functions/file_spec.rb +14 -13
  434. data/spec/unit/parser/functions/fqdn_rand_spec.rb +6 -5
  435. data/spec/unit/parser/functions/generate_spec.rb +8 -7
  436. data/spec/unit/parser/functions/inline_template_spec.rb +1 -0
  437. data/spec/unit/parser/functions/regsubst_spec.rb +1 -0
  438. data/spec/unit/parser/functions/scanf_spec.rb +1 -0
  439. data/spec/unit/parser/functions/shellquote_spec.rb +1 -0
  440. data/spec/unit/parser/functions/split_spec.rb +1 -0
  441. data/spec/unit/parser/functions/sprintf_spec.rb +1 -0
  442. data/spec/unit/parser/functions/tag_spec.rb +2 -1
  443. data/spec/unit/parser/functions/tagged_spec.rb +3 -2
  444. data/spec/unit/parser/functions/template_spec.rb +13 -13
  445. data/spec/unit/parser/functions/versioncmp_spec.rb +2 -1
  446. data/spec/unit/parser/functions_spec.rb +7 -6
  447. data/spec/unit/parser/relationship_spec.rb +1 -0
  448. data/spec/unit/parser/resource_spec.rb +42 -42
  449. data/spec/unit/parser/scope_spec.rb +35 -39
  450. data/spec/unit/parser/templatewrapper_spec.rb +12 -11
  451. data/spec/unit/parser/type_loader_spec.rb +19 -17
  452. data/spec/unit/pops/adaptable_spec.rb +1 -0
  453. data/spec/unit/pops/benchmark_spec.rb +1 -0
  454. data/spec/unit/pops/evaluator/access_ops_spec.rb +1 -0
  455. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +1 -0
  456. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -0
  457. data/spec/unit/pops/evaluator/collections_ops_spec.rb +1 -0
  458. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +1 -0
  459. data/spec/unit/pops/evaluator/conditionals_spec.rb +1 -0
  460. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +47 -10
  461. data/spec/unit/pops/evaluator/logical_ops_spec.rb +1 -0
  462. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +1 -0
  463. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +1 -0
  464. data/spec/unit/pops/evaluator/variables_spec.rb +1 -0
  465. data/spec/unit/pops/factory_spec.rb +4 -3
  466. data/spec/unit/pops/issues_spec.rb +20 -19
  467. data/spec/unit/pops/loaders/loader_spec.rb +4 -8
  468. data/spec/unit/pops/loaders/loaders_spec.rb +31 -101
  469. data/spec/unit/pops/lookup/context_spec.rb +1 -0
  470. data/spec/unit/pops/lookup/interpolation_spec.rb +3 -2
  471. data/spec/unit/pops/merge_strategy_spec.rb +1 -0
  472. data/spec/unit/pops/migration_spec.rb +5 -3
  473. data/spec/unit/pops/model/model_spec.rb +1 -0
  474. data/spec/unit/pops/model/pn_transformer_spec.rb +1 -4
  475. data/spec/unit/pops/parser/locator_spec.rb +6 -48
  476. data/spec/unit/pops/parser/parse_application_spec.rb +1 -0
  477. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +1 -0
  478. data/spec/unit/pops/parser/parse_calls_spec.rb +1 -0
  479. data/spec/unit/pops/parser/parse_capabilities_spec.rb +1 -0
  480. data/spec/unit/pops/parser/parse_conditionals_spec.rb +1 -0
  481. data/spec/unit/pops/parser/parse_containers_spec.rb +1 -0
  482. data/spec/unit/pops/parser/parse_heredoc_spec.rb +15 -111
  483. data/spec/unit/pops/parser/parse_plan_spec.rb +1 -0
  484. data/spec/unit/pops/parser/parse_resource_spec.rb +1 -0
  485. data/spec/unit/pops/parser/parse_site_spec.rb +1 -0
  486. data/spec/unit/pops/parser/pn_parser_spec.rb +1 -0
  487. data/spec/unit/pops/pn_spec.rb +1 -0
  488. data/spec/unit/pops/resource/resource_type_impl_spec.rb +1 -0
  489. data/spec/unit/pops/serialization/serialization_spec.rb +1 -1
  490. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  491. data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
  492. data/spec/unit/pops/types/ruby_generator_spec.rb +2 -2
  493. data/spec/unit/pops/types/string_converter_spec.rb +5 -1
  494. data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
  495. data/spec/unit/pops/types/type_calculator_spec.rb +30 -30
  496. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +0 -9
  497. data/spec/unit/pops/types/type_parser_spec.rb +13 -13
  498. data/spec/unit/pops/validator/validator_spec.rb +2 -1
  499. data/spec/unit/pops/visitor_spec.rb +1 -0
  500. data/spec/unit/property/boolean_spec.rb +1 -1
  501. data/spec/unit/property/ensure_spec.rb +1 -0
  502. data/spec/unit/property/keyvalue_spec.rb +34 -32
  503. data/spec/unit/property/list_spec.rb +27 -26
  504. data/spec/unit/property/ordered_list_spec.rb +14 -10
  505. data/spec/unit/property_spec.rb +43 -42
  506. data/spec/unit/provider/aix_object_spec.rb +45 -47
  507. data/spec/unit/provider/command_spec.rb +9 -9
  508. data/spec/unit/provider/exec/posix_spec.rb +31 -6
  509. data/spec/unit/provider/exec/shell_spec.rb +1 -0
  510. data/spec/unit/provider/exec/windows_spec.rb +4 -2
  511. data/spec/unit/provider/exec_spec.rb +1 -0
  512. data/spec/unit/provider/file/posix_spec.rb +24 -22
  513. data/spec/unit/provider/file/windows_spec.rb +17 -15
  514. data/spec/unit/provider/group/aix_spec.rb +2 -3
  515. data/spec/unit/provider/group/groupadd_spec.rb +26 -30
  516. data/spec/unit/provider/group/ldap_spec.rb +18 -18
  517. data/spec/unit/provider/group/pw_spec.rb +11 -11
  518. data/spec/unit/provider/group/windows_adsi_spec.rb +53 -59
  519. data/spec/unit/provider/ldap_spec.rb +62 -61
  520. data/spec/unit/provider/nameservice/directoryservice_spec.rb +36 -35
  521. data/spec/unit/provider/nameservice_spec.rb +40 -38
  522. data/spec/unit/provider/package/aix_spec.rb +15 -15
  523. data/spec/unit/provider/package/appdmg_spec.rb +13 -13
  524. data/spec/unit/provider/package/apt_spec.rb +27 -44
  525. data/spec/unit/provider/package/aptitude_spec.rb +7 -6
  526. data/spec/unit/provider/package/aptrpm_spec.rb +12 -7
  527. data/spec/unit/provider/package/base_spec.rb +4 -4
  528. data/spec/unit/provider/package/dnf_spec.rb +20 -18
  529. data/spec/unit/provider/package/dpkg_spec.rb +53 -70
  530. data/spec/unit/provider/package/freebsd_spec.rb +11 -11
  531. data/spec/unit/provider/package/gem_spec.rb +55 -132
  532. data/spec/unit/provider/package/hpux_spec.rb +8 -8
  533. data/spec/unit/provider/package/macports_spec.rb +42 -46
  534. data/spec/unit/provider/package/nim_spec.rb +39 -30
  535. data/spec/unit/provider/package/openbsd_spec.rb +39 -36
  536. data/spec/unit/provider/package/opkg_spec.rb +26 -23
  537. data/spec/unit/provider/package/pacman_spec.rb +118 -97
  538. data/spec/unit/provider/package/pip3_spec.rb +0 -17
  539. data/spec/unit/provider/package/pip_spec.rb +106 -95
  540. data/spec/unit/provider/package/pkg_spec.rb +109 -109
  541. data/spec/unit/provider/package/pkgdmg_spec.rb +63 -65
  542. data/spec/unit/provider/package/pkgin_spec.rb +8 -10
  543. data/spec/unit/provider/package/pkgng_spec.rb +31 -22
  544. data/spec/unit/provider/package/pkgutil_spec.rb +49 -45
  545. data/spec/unit/provider/package/portage_spec.rb +74 -70
  546. data/spec/unit/provider/package/puppet_gem_spec.rb +13 -37
  547. data/spec/unit/provider/package/rpm_spec.rb +76 -154
  548. data/spec/unit/provider/package/sun_spec.rb +18 -16
  549. data/spec/unit/provider/package/tdnf_spec.rb +2 -2
  550. data/spec/unit/provider/package/up2date_spec.rb +4 -2
  551. data/spec/unit/provider/package/urpmi_spec.rb +17 -15
  552. data/spec/unit/provider/package/windows/exe_package_spec.rb +15 -12
  553. data/spec/unit/provider/package/windows/msi_package_spec.rb +22 -19
  554. data/spec/unit/provider/package/windows/package_spec.rb +42 -37
  555. data/spec/unit/provider/package/windows_spec.rb +32 -47
  556. data/spec/unit/provider/package/yum_spec.rb +7 -7
  557. data/spec/unit/provider/package/zypper_spec.rb +87 -87
  558. data/spec/unit/provider/parsedfile_spec.rb +45 -44
  559. data/spec/unit/provider/service/base_spec.rb +5 -4
  560. data/spec/unit/provider/service/bsd_spec.rb +29 -27
  561. data/spec/unit/provider/service/daemontools_spec.rb +35 -35
  562. data/spec/unit/provider/service/debian_spec.rb +38 -38
  563. data/spec/unit/provider/service/freebsd_spec.rb +18 -18
  564. data/spec/unit/provider/service/gentoo_spec.rb +55 -50
  565. data/spec/unit/provider/service/init_spec.rb +52 -53
  566. data/spec/unit/provider/service/launchd_spec.rb +116 -138
  567. data/spec/unit/provider/service/openbsd_spec.rb +50 -50
  568. data/spec/unit/provider/service/openrc_spec.rb +45 -43
  569. data/spec/unit/provider/service/openwrt_spec.rb +31 -26
  570. data/spec/unit/provider/service/rcng_spec.rb +14 -14
  571. data/spec/unit/provider/service/redhat_spec.rb +43 -45
  572. data/spec/unit/provider/service/runit_spec.rb +27 -29
  573. data/spec/unit/provider/service/smf_spec.rb +66 -74
  574. data/spec/unit/provider/service/src_spec.rb +47 -46
  575. data/spec/unit/provider/service/systemd_spec.rb +136 -109
  576. data/spec/unit/provider/service/upstart_spec.rb +93 -77
  577. data/spec/unit/provider/service/windows_spec.rb +41 -33
  578. data/spec/unit/provider/user/aix_spec.rb +31 -31
  579. data/spec/unit/provider/user/directoryservice_spec.rb +114 -146
  580. data/spec/unit/provider/user/hpux_spec.rb +16 -16
  581. data/spec/unit/provider/user/ldap_spec.rb +57 -57
  582. data/spec/unit/provider/user/openbsd_spec.rb +12 -10
  583. data/spec/unit/provider/user/pw_spec.rb +35 -37
  584. data/spec/unit/provider/user/user_role_add_spec.rb +93 -93
  585. data/spec/unit/provider/user/useradd_spec.rb +92 -93
  586. data/spec/unit/provider/user/windows_adsi_spec.rb +60 -59
  587. data/spec/unit/provider_spec.rb +35 -35
  588. data/spec/unit/puppet_pal_2pec.rb +5 -4
  589. data/spec/unit/puppet_pal_spec.rb +1 -0
  590. data/spec/unit/puppet_spec.rb +7 -6
  591. data/spec/unit/relationship_spec.rb +1 -0
  592. data/spec/unit/reports/http_spec.rb +23 -21
  593. data/spec/unit/reports/store_spec.rb +4 -3
  594. data/spec/unit/reports_spec.rb +14 -12
  595. data/spec/unit/resource/capability_finder_spec.rb +17 -15
  596. data/spec/unit/resource/catalog_spec.rb +68 -72
  597. data/spec/unit/resource/status_spec.rb +8 -6
  598. data/spec/unit/resource/type_collection_spec.rb +18 -17
  599. data/spec/unit/resource/type_spec.rb +35 -34
  600. data/spec/unit/resource_spec.rb +63 -36
  601. data/spec/unit/rest/client_spec.rb +135 -0
  602. data/spec/unit/rest/route_spec.rb +6 -6
  603. data/spec/unit/scheduler/job_spec.rb +1 -0
  604. data/spec/unit/scheduler/scheduler_spec.rb +1 -0
  605. data/spec/unit/scheduler/splay_job_spec.rb +2 -1
  606. data/spec/unit/settings/array_setting_spec.rb +1 -1
  607. data/spec/unit/settings/autosign_setting_spec.rb +9 -9
  608. data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
  609. data/spec/unit/settings/config_file_spec.rb +1 -0
  610. data/spec/unit/settings/directory_setting_spec.rb +7 -2
  611. data/spec/unit/settings/duration_setting_spec.rb +2 -1
  612. data/spec/unit/settings/enum_setting_spec.rb +1 -1
  613. data/spec/unit/settings/environment_conf_spec.rb +6 -4
  614. data/spec/unit/settings/file_setting_spec.rb +46 -44
  615. data/spec/unit/settings/path_setting_spec.rb +2 -1
  616. data/spec/unit/settings/priority_setting_spec.rb +2 -1
  617. data/spec/unit/settings/string_setting_spec.rb +15 -14
  618. data/spec/unit/settings/terminus_setting_spec.rb +2 -1
  619. data/spec/unit/settings/value_translator_spec.rb +1 -0
  620. data/spec/unit/settings_spec.rb +224 -253
  621. data/spec/unit/ssl/base_spec.rb +15 -14
  622. data/spec/unit/ssl/certificate_request_spec.rb +58 -62
  623. data/spec/unit/ssl/certificate_spec.rb +25 -23
  624. data/spec/unit/ssl/digest_spec.rb +1 -0
  625. data/spec/unit/ssl/host_spec.rb +149 -166
  626. data/spec/unit/ssl/key_spec.rb +31 -30
  627. data/spec/unit/ssl/validator_spec.rb +39 -40
  628. data/spec/unit/task_spec.rb +45 -44
  629. data/spec/unit/transaction/additional_resource_generator_spec.rb +5 -3
  630. data/spec/unit/transaction/event_manager_spec.rb +88 -87
  631. data/spec/unit/transaction/event_spec.rb +15 -16
  632. data/spec/unit/transaction/persistence_spec.rb +17 -16
  633. data/spec/unit/transaction/report_spec.rb +12 -11
  634. data/spec/unit/transaction/resource_harness_spec.rb +31 -52
  635. data/spec/unit/transaction_spec.rb +87 -140
  636. data/spec/unit/type/component_spec.rb +1 -0
  637. data/spec/unit/type/exec_spec.rb +50 -101
  638. data/spec/unit/type/file/checksum_spec.rb +10 -9
  639. data/spec/unit/type/file/checksum_value_spec.rb +32 -31
  640. data/spec/unit/type/file/content_spec.rb +61 -58
  641. data/spec/unit/type/file/ctime_spec.rb +1 -0
  642. data/spec/unit/type/file/ensure_spec.rb +13 -12
  643. data/spec/unit/type/file/group_spec.rb +7 -5
  644. data/spec/unit/type/file/mode_spec.rb +6 -4
  645. data/spec/unit/type/file/mtime_spec.rb +1 -0
  646. data/spec/unit/type/file/owner_spec.rb +8 -6
  647. data/spec/unit/type/file/selinux_spec.rb +19 -17
  648. data/spec/unit/type/file/source_spec.rb +101 -104
  649. data/spec/unit/type/file/type_spec.rb +1 -0
  650. data/spec/unit/type/file_spec.rb +185 -195
  651. data/spec/unit/type/filebucket_spec.rb +10 -11
  652. data/spec/unit/type/group_spec.rb +8 -6
  653. data/spec/unit/type/noop_metaparam_spec.rb +2 -1
  654. data/spec/unit/type/package/package_settings_spec.rb +23 -44
  655. data/spec/unit/type/package_spec.rb +57 -56
  656. data/spec/unit/type/resources_spec.rb +74 -72
  657. data/spec/unit/type/schedule_spec.rb +26 -24
  658. data/spec/unit/type/service_spec.rb +75 -49
  659. data/spec/unit/type/stage_spec.rb +1 -0
  660. data/spec/unit/type/tidy_spec.rb +62 -61
  661. data/spec/unit/type/user_spec.rb +25 -24
  662. data/spec/unit/type/whit_spec.rb +1 -0
  663. data/spec/unit/type_spec.rb +54 -55
  664. data/spec/unit/util/at_fork_spec.rb +19 -18
  665. data/spec/unit/util/autoload_spec.rb +56 -55
  666. data/spec/unit/util/backups_spec.rb +35 -34
  667. data/spec/unit/util/character_encoding_spec.rb +5 -5
  668. data/spec/unit/util/checksums_spec.rb +39 -38
  669. data/spec/unit/util/colors_spec.rb +2 -1
  670. data/spec/unit/util/command_line_spec.rb +20 -40
  671. data/spec/unit/util/constant_inflector_spec.rb +1 -0
  672. data/spec/unit/util/diff_spec.rb +8 -7
  673. data/spec/unit/util/errors_spec.rb +1 -0
  674. data/spec/unit/util/execution_spec.rb +163 -187
  675. data/spec/unit/util/execution_stub_spec.rb +1 -0
  676. data/spec/unit/util/feature_spec.rb +14 -21
  677. data/spec/unit/util/filetype_spec.rb +49 -49
  678. data/spec/unit/util/http_proxy_spec.rb +12 -12
  679. data/spec/unit/util/inifile_spec.rb +31 -26
  680. data/spec/unit/util/json_lockfile_spec.rb +5 -3
  681. data/spec/unit/util/ldap/connection_spec.rb +25 -26
  682. data/spec/unit/util/ldap/generator_spec.rb +1 -0
  683. data/spec/unit/util/ldap/manager_spec.rb +101 -102
  684. data/spec/unit/util/lockfile_spec.rb +1 -0
  685. data/spec/unit/util/log/destinations_spec.rb +33 -30
  686. data/spec/unit/util/log_spec.rb +34 -48
  687. data/spec/unit/util/logging_spec.rb +72 -58
  688. data/spec/unit/util/metric_spec.rb +1 -0
  689. data/spec/unit/util/monkey_patches_spec.rb +9 -7
  690. data/spec/unit/util/multi_match_spec.rb +1 -0
  691. data/spec/unit/util/network_device/config_spec.rb +1 -0
  692. data/spec/unit/util/network_device/transport/base_spec.rb +6 -5
  693. data/spec/unit/util/network_device_spec.rb +9 -7
  694. data/spec/unit/util/package_spec.rb +1 -0
  695. data/spec/unit/util/pidlock_spec.rb +15 -60
  696. data/spec/unit/util/plist_spec.rb +33 -40
  697. data/spec/unit/util/posix_spec.rb +51 -54
  698. data/spec/unit/util/rdoc_spec.rb +10 -9
  699. data/spec/unit/util/reference_spec.rb +1 -0
  700. data/spec/unit/util/resource_template_spec.rb +20 -20
  701. data/spec/unit/util/retry_action_spec.rb +8 -7
  702. data/spec/unit/util/rubygems_spec.rb +8 -7
  703. data/spec/unit/util/run_mode_spec.rb +4 -3
  704. data/spec/unit/util/selinux_spec.rb +72 -79
  705. data/spec/unit/util/splayer_spec.rb +9 -8
  706. data/spec/unit/util/ssl_spec.rb +1 -0
  707. data/spec/unit/util/storage_spec.rb +23 -22
  708. data/spec/unit/util/suidmanager_spec.rb +54 -45
  709. data/spec/unit/util/symbolic_file_mode_spec.rb +1 -0
  710. data/spec/unit/util/tag_set_spec.rb +1 -0
  711. data/spec/unit/util/tagging_spec.rb +1 -0
  712. data/spec/unit/util/terminal_spec.rb +10 -9
  713. data/spec/unit/util/user_attr_spec.rb +2 -1
  714. data/spec/unit/util/warnings_spec.rb +4 -3
  715. data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
  716. data/spec/unit/util/watcher_spec.rb +21 -51
  717. data/spec/unit/util/windows/access_control_entry_spec.rb +1 -0
  718. data/spec/unit/util/windows/access_control_list_spec.rb +1 -0
  719. data/spec/unit/util/windows/adsi_spec.rb +138 -136
  720. data/spec/unit/util/windows/api_types_spec.rb +1 -0
  721. data/spec/unit/util/windows/eventlog_spec.rb +12 -9
  722. data/spec/unit/util/windows/file_spec.rb +1 -0
  723. data/spec/unit/util/windows/root_certs_spec.rb +1 -0
  724. data/spec/unit/util/windows/security_descriptor_spec.rb +2 -0
  725. data/spec/unit/util/windows/service_spec.rb +103 -100
  726. data/spec/unit/util/windows/sid_spec.rb +13 -11
  727. data/spec/unit/util/windows/string_spec.rb +1 -0
  728. data/spec/unit/util_spec.rb +57 -55
  729. data/spec/unit/version_spec.rb +6 -6
  730. metadata +20 -32
  731. data/CODEOWNERS +0 -30
  732. data/ext/autotest/Rakefile +0 -8
  733. data/ext/autotest/config +0 -43
  734. data/ext/autotest/readme.rst +0 -16
  735. data/lib/puppet/confine/boolean.rb +0 -45
  736. data/lib/puppet/provider/package_targetable.rb +0 -68
  737. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load2.rb +0 -11
  738. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load3.rb +0 -11
  739. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load4.rb +0 -11
  740. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load5.rb +0 -12
  741. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/good_func_load.rb +0 -9
  742. data/spec/fixtures/unit/provider/package/pkgng/pkg.info +0 -7
  743. data/spec/fixtures/unit/provider/package/pkgng/pkg.query_absent +0 -1
  744. data/spec/integration/network/http_pool_spec.rb +0 -120
  745. data/spec/integration/provider/file/windows_spec.rb +0 -162
  746. data/spec/lib/puppet_spec/https.rb +0 -166
  747. data/spec/unit/settings/server_list_setting_spec.rb +0 -21
  748. data/spec/watchr.rb +0 -137
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
 
3
4
  describe Puppet::Type.type(:package).provider(:sun) do
@@ -21,14 +22,14 @@ describe Puppet::Type.type(:package).provider(:sun) do
21
22
  it "should install a package" do
22
23
  resource[:ensure] = :installed
23
24
  resource[:source] = '/cdrom'
24
- expect(provider).to receive(:pkgadd).with(['-d', '/cdrom', '-n', 'dummy'])
25
+ provider.expects(:pkgadd).with(['-d', '/cdrom', '-n', 'dummy'])
25
26
  provider.install
26
27
  end
27
28
 
28
29
  it "should install a package if it is not present on update" do
29
- expect(provider).to receive(:pkginfo).with('-l', 'dummy').and_return(File.read(my_fixture('dummy.server')))
30
- expect(provider).to receive(:pkgrm).with(['-n', 'dummy'])
31
- expect(provider).to receive(:install)
30
+ provider.expects(:pkginfo).with('-l', 'dummy').returns File.read(my_fixture('dummy.server'))
31
+ provider.expects(:pkgrm).with(['-n', 'dummy'])
32
+ provider.expects(:install)
32
33
  provider.update
33
34
  end
34
35
 
@@ -36,36 +37,36 @@ describe Puppet::Type.type(:package).provider(:sun) do
36
37
  resource[:ensure] = :installed
37
38
  resource[:source] = '/cdrom'
38
39
  resource[:install_options] = '-G'
39
- expect(provider).to receive(:pkgadd).with(['-d', '/cdrom', '-G', '-n', 'dummy'])
40
+ provider.expects(:pkgadd).with(['-d', '/cdrom', '-G', '-n', 'dummy'])
40
41
  provider.install
41
42
  end
42
43
  end
43
44
 
44
45
  context '#uninstall' do
45
46
  it "should uninstall a package" do
46
- expect(provider).to receive(:pkgrm).with(['-n','dummy'])
47
+ provider.expects(:pkgrm).with(['-n','dummy'])
47
48
  provider.uninstall
48
49
  end
49
50
  end
50
51
 
51
52
  context '#update' do
52
53
  it "should call uninstall if not :absent on info2hash" do
53
- allow(provider).to receive(:info2hash).and_return({:name => 'SUNWdummy', :ensure => "11.11.0,REV=2010.10.12.04.23"})
54
- expect(provider).to receive(:uninstall)
55
- expect(provider).to receive(:install)
54
+ provider.stubs(:info2hash).returns({:name => 'SUNWdummy', :ensure => "11.11.0,REV=2010.10.12.04.23"})
55
+ provider.expects(:uninstall)
56
+ provider.expects(:install)
56
57
  provider.update
57
58
  end
58
59
 
59
60
  it "should not call uninstall if :absent on info2hash" do
60
- allow(provider).to receive(:info2hash).and_return({:name => 'SUNWdummy', :ensure => :absent})
61
- expect(provider).to receive(:install)
61
+ provider.stubs(:info2hash).returns({:name => 'SUNWdummy', :ensure => :absent})
62
+ provider.expects(:install)
62
63
  provider.update
63
64
  end
64
65
  end
65
66
 
66
67
  context '#query' do
67
68
  it "should find the package on query" do
68
- expect(provider).to receive(:pkginfo).with('-l', 'dummy').and_return(File.read(my_fixture('dummy.server')))
69
+ provider.expects(:pkginfo).with('-l', 'dummy').returns File.read(my_fixture('dummy.server'))
69
70
  expect(provider.query).to eq({
70
71
  :name => 'SUNWdummy',
71
72
  :category=>"system",
@@ -78,19 +79,19 @@ describe Puppet::Type.type(:package).provider(:sun) do
78
79
  end
79
80
 
80
81
  it "shouldn't find the package on query if it is not present" do
81
- expect(provider).to receive(:pkginfo).with('-l', 'dummy').and_raise(Puppet::ExecutionFailure, "Execution of 'pkginfo -l dummy' returned 3: ERROR: information for \"dummy\" not found.")
82
+ provider.expects(:pkginfo).with('-l', 'dummy').raises Puppet::ExecutionFailure, "Execution of 'pkginfo -l dummy' returned 3: ERROR: information for \"dummy\" not found."
82
83
  expect(provider.query).to eq({:ensure => :absent})
83
84
  end
84
85
 
85
86
  it "unknown message should raise error." do
86
- expect(provider).to receive(:pkginfo).with('-l', 'dummy').and_return('RANDOM')
87
+ provider.expects(:pkginfo).with('-l', 'dummy').returns 'RANDOM'
87
88
  expect { provider.query }.to raise_error Puppet::Error
88
89
  end
89
90
  end
90
91
 
91
92
  context '#instance' do
92
93
  it "should list instances when there are packages in the system" do
93
- expect(described_class).to receive(:pkginfo).with('-l').and_return(File.read(my_fixture('simple')))
94
+ described_class.expects(:pkginfo).with('-l').returns File.read(my_fixture('simple'))
94
95
  instances = provider.class.instances.map { |p| {:name => p.get(:name), :ensure => p.get(:ensure)} }
95
96
  expect(instances.size).to eq(2)
96
97
  expect(instances[0]).to eq({
@@ -104,9 +105,10 @@ describe Puppet::Type.type(:package).provider(:sun) do
104
105
  end
105
106
 
106
107
  it "should return empty if there were no packages" do
107
- expect(described_class).to receive(:pkginfo).with('-l').and_return('')
108
+ described_class.expects(:pkginfo).with('-l').returns ''
108
109
  instances = provider.class.instances
109
110
  expect(instances.size).to eq(0)
110
111
  end
112
+
111
113
  end
112
114
  end
@@ -7,8 +7,8 @@ describe Puppet::Type.type(:package).provider(:tdnf) do
7
7
 
8
8
  context 'default' do
9
9
  it 'should be the default provider on PhotonOS' do
10
- allow(Facter).to receive(:value).with(:osfamily).and_return(:redhat)
11
- allow(Facter).to receive(:value).with(:operatingsystem).and_return("PhotonOS")
10
+ Facter.stubs(:value).with(:osfamily).returns(:redhat)
11
+ Facter.stubs(:value).with(:operatingsystem).returns("PhotonOS")
12
12
  expect(described_class).to be_default
13
13
  end
14
14
  end
@@ -1,6 +1,8 @@
1
+ # spec/unit/provider/package/up2date_spec.rb
1
2
  require 'spec_helper'
2
3
 
3
4
  describe 'up2date package provider' do
5
+
4
6
  # This sets the class itself as the subject rather than
5
7
  # an instance of the class.
6
8
  subject do
@@ -13,8 +15,8 @@ describe 'up2date package provider' do
13
15
  osfamilies.each do |osfamily|
14
16
  releases.each do |release|
15
17
  it "should be the default provider on #{osfamily} #{release}" do
16
- allow(Facter).to receive(:value).with(:osfamily).and_return(osfamily)
17
- allow(Facter).to receive(:value).with(:lsbdistrelease).and_return(release)
18
+ Facter.expects(:value).with(:osfamily).returns(osfamily)
19
+ Facter.expects(:value).with(:lsbdistrelease).returns(release)
18
20
  expect(subject.default?).to be_truthy
19
21
  end
20
22
  end
@@ -1,13 +1,15 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Puppet::Type.type(:package).provider(:urpmi) do
4
+
4
5
  before do
6
+ Puppet::Util::Execution.expects(:execute).never
5
7
  %w[rpm urpmi urpme urpmq].each do |executable|
6
- allow(Puppet::Util).to receive(:which).with(executable).and_return(executable)
8
+ Puppet::Util.stubs(:which).with(executable).returns(executable)
7
9
  end
8
- allow(Puppet::Util::Execution).to receive(:execute)
10
+ Puppet::Util::Execution.stubs(:execute)
9
11
  .with(['rpm', '--version'], anything)
10
- .and_return(Puppet::Util::Execution::ProcessOutput.new('RPM version 4.9.1.3', 0))
12
+ .returns(Puppet::Util::Execution::ProcessOutput.new('RPM version 4.9.1.3', 0))
11
13
  end
12
14
 
13
15
  let(:resource) do
@@ -16,18 +18,18 @@ describe Puppet::Type.type(:package).provider(:urpmi) do
16
18
 
17
19
  before do
18
20
  subject.resource = resource
19
- allow(Puppet::Type.type(:package)).to receive(:defaultprovider).and_return(described_class)
21
+ Puppet::Type.type(:package).stubs(:defaultprovider).returns described_class
20
22
  end
21
23
 
22
24
  describe '#install' do
23
25
  before do
24
- allow(subject).to receive(:rpm).with('-q', 'foopkg', any_args).and_return("foopkg 0 1.2.3.4 5 noarch :DESC:\n")
26
+ subject.stubs(:rpm).with('-q', 'foopkg', any_parameters).returns "foopkg 0 1.2.3.4 5 noarch :DESC:\n"
25
27
  end
26
28
 
27
29
  describe 'without a version' do
28
30
  it 'installs the unversioned package' do
29
31
  resource[:ensure] = :present
30
- expect(Puppet::Util::Execution).to receive(:execute).with(['urpmi', '--auto', 'foopkg'], anything)
32
+ Puppet::Util::Execution.expects(:execute).with(['urpmi', '--auto', 'foopkg'], anything)
31
33
  subject.install
32
34
  end
33
35
  end
@@ -35,15 +37,15 @@ describe Puppet::Type.type(:package).provider(:urpmi) do
35
37
  describe 'with a version' do
36
38
  it 'installs the versioned package' do
37
39
  resource[:ensure] = '4.5.6'
38
- expect(Puppet::Util::Execution).to receive(:execute).with(['urpmi', '--auto', 'foopkg-4.5.6'], anything)
40
+ Puppet::Util::Execution.expects(:execute).with(['urpmi', '--auto', 'foopkg-4.5.6'], anything)
39
41
  subject.install
40
42
  end
41
43
  end
42
44
 
43
45
  describe "and the package install fails" do
44
46
  it "raises an error" do
45
- allow(Puppet::Util::Execution).to receive(:execute).with(['urpmi', '--auto', 'foopkg'], anything)
46
- allow(subject).to receive(:query)
47
+ Puppet::Util::Execution.stubs(:execute).with(['urpmi', '--auto', 'foopkg'], anything)
48
+ subject.stubs(:query)
47
49
  expect { subject.install }.to raise_error Puppet::Error, /Package \S+ was not present after trying to install it/
48
50
  end
49
51
  end
@@ -53,31 +55,31 @@ describe Puppet::Type.type(:package).provider(:urpmi) do
53
55
  let(:urpmq_output) { 'foopkg : Lorem ipsum dolor sit amet, consectetur adipisicing elit ( 7.8.9-1.mga2 )' }
54
56
 
55
57
  it "uses urpmq to determine the latest package" do
56
- expect(Puppet::Util::Execution).to receive(:execute)
58
+ Puppet::Util::Execution.expects(:execute)
57
59
  .with(['urpmq', '-S', 'foopkg'], anything)
58
- .and_return(Puppet::Util::Execution::ProcessOutput.new(urpmq_output, 0))
60
+ .returns(Puppet::Util::Execution::ProcessOutput.new(urpmq_output, 0))
59
61
  expect(subject.latest).to eq('7.8.9-1.mga2')
60
62
  end
61
63
 
62
64
  it "falls back to the current version" do
63
65
  resource[:ensure] = '5.4.3'
64
- expect(Puppet::Util::Execution).to receive(:execute)
66
+ Puppet::Util::Execution.expects(:execute)
65
67
  .with(['urpmq', '-S', 'foopkg'], anything)
66
- .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
68
+ .returns(Puppet::Util::Execution::ProcessOutput.new('', 0))
67
69
  expect(subject.latest).to eq('5.4.3')
68
70
  end
69
71
  end
70
72
 
71
73
  describe '#update' do
72
74
  it 'delegates to #install' do
73
- expect(subject).to receive(:install)
75
+ subject.expects(:install)
74
76
  subject.update
75
77
  end
76
78
  end
77
79
 
78
80
  describe '#purge' do
79
81
  it 'uses urpme to purge packages' do
80
- expect(Puppet::Util::Execution).to receive(:execute).with(['urpme', '--auto', 'foopkg'], anything)
82
+ Puppet::Util::Execution.expects(:execute).with(['urpme', '--auto', 'foopkg'], anything)
81
83
  subject.purge
82
84
  end
83
85
  end
@@ -1,7 +1,10 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
  require 'puppet/provider/package/windows/exe_package'
3
4
 
4
5
  describe Puppet::Provider::Package::Windows::ExePackage do
6
+ subject { described_class }
7
+
5
8
  let (:name) { 'Git version 1.7.11' }
6
9
  let (:version) { '1.7.11' }
7
10
  let (:source) { 'E:\Git-1.7.11.exe' }
@@ -9,18 +12,18 @@ describe Puppet::Provider::Package::Windows::ExePackage do
9
12
 
10
13
  context '::from_registry' do
11
14
  it 'should return an instance of ExePackage' do
12
- expect(described_class).to receive(:valid?).and_return(true)
15
+ subject.expects(:valid?).returns(true)
13
16
 
14
- pkg = described_class.from_registry('', {'DisplayName' => name, 'DisplayVersion' => version, 'UninstallString' => uninstall})
17
+ pkg = subject.from_registry('', {'DisplayName' => name, 'DisplayVersion' => version, 'UninstallString' => uninstall})
15
18
  expect(pkg.name).to eq(name)
16
19
  expect(pkg.version).to eq(version)
17
20
  expect(pkg.uninstall_string).to eq(uninstall)
18
21
  end
19
22
 
20
23
  it 'should return nil if it is not a valid executable' do
21
- expect(described_class).to receive(:valid?).and_return(false)
24
+ subject.expects(:valid?).returns(false)
22
25
 
23
- expect(described_class.from_registry('', {})).to be_nil
26
+ expect(subject.from_registry('', {})).to be_nil
24
27
  end
25
28
  end
26
29
 
@@ -39,26 +42,26 @@ describe Puppet::Provider::Package::Windows::ExePackage do
39
42
  }.each_pair do |k, arr|
40
43
  it "should accept '#{k}' with value '#{arr[0]}'" do
41
44
  values[k] = arr[0]
42
- expect(described_class.valid?(name, values)).to be_truthy
45
+ expect(subject.valid?(name, values)).to be_truthy
43
46
  end
44
47
 
45
48
  it "should reject '#{k}' with value '#{arr[1]}'" do
46
49
  values[k] = arr[1]
47
- expect(described_class.valid?(name, values)).to be_falsey
50
+ expect(subject.valid?(name, values)).to be_falsey
48
51
  end
49
52
  end
50
53
 
51
54
  it 'should reject packages whose name starts with "KBXXXXXX"' do
52
- expect(described_class.valid?('KB890830', values)).to be_falsey
55
+ expect(subject.valid?('KB890830', values)).to be_falsey
53
56
  end
54
57
 
55
58
  it 'should accept packages whose name does not start with "KBXXXXXX"' do
56
- expect(described_class.valid?('My Update (KB890830)', values)).to be_truthy
59
+ expect(subject.valid?('My Update (KB890830)', values)).to be_truthy
57
60
  end
58
61
  end
59
62
 
60
63
  context '#match?' do
61
- let(:pkg) { described_class.new(name, version, uninstall) }
64
+ let(:pkg) { subject.new(name, version, uninstall) }
62
65
 
63
66
  it 'should match product name' do
64
67
  expect(pkg.match?({:name => name})).to be_truthy
@@ -71,7 +74,7 @@ describe Puppet::Provider::Package::Windows::ExePackage do
71
74
 
72
75
  context '#install_command' do
73
76
  it 'should install using the source' do
74
- cmd = described_class.install_command({:source => source})
77
+ cmd = subject.install_command({:source => source})
75
78
 
76
79
  expect(cmd).to eq(source)
77
80
  end
@@ -80,7 +83,7 @@ describe Puppet::Provider::Package::Windows::ExePackage do
80
83
  context '#uninstall_command' do
81
84
  ['C:\uninstall.exe', 'C:\Program Files\uninstall.exe'].each do |exe|
82
85
  it "should quote #{exe}" do
83
- expect(described_class.new(name, version, exe).uninstall_command).to eq(
86
+ expect(subject.new(name, version, exe).uninstall_command).to eq(
84
87
  "\"#{exe}\""
85
88
  )
86
89
  end
@@ -88,7 +91,7 @@ describe Puppet::Provider::Package::Windows::ExePackage do
88
91
 
89
92
  ['"C:\Program Files\uninstall.exe"', '"C:\Program Files (x86)\Git\unins000.exe" /SILENT"'].each do |exe|
90
93
  it "should not quote #{exe}" do
91
- expect(described_class.new(name, version, exe).uninstall_command).to eq(
94
+ expect(subject.new(name, version, exe).uninstall_command).to eq(
92
95
  exe
93
96
  )
94
97
  end
@@ -1,7 +1,10 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
  require 'puppet/provider/package/windows/msi_package'
3
4
 
4
5
  describe Puppet::Provider::Package::Windows::MsiPackage do
6
+ subject { described_class }
7
+
5
8
  let (:name) { 'mysql-5.1.58-win-x64' }
6
9
  let (:version) { '5.1.58' }
7
10
  let (:source) { 'E:\mysql-5.1.58-win-x64.msi' }
@@ -9,24 +12,24 @@ describe Puppet::Provider::Package::Windows::MsiPackage do
9
12
  let (:packagecode) { '{5A6FD560-763A-4BC1-9E03-B18DFFB7C72C}' }
10
13
 
11
14
  def expect_installer
12
- inst = double()
13
- expect(inst).to receive(:ProductState).and_return(5)
14
- expect(inst).to receive(:ProductInfo).with(productcode, 'PackageCode').and_return(packagecode)
15
- expect(described_class).to receive(:installer).and_return(inst)
15
+ inst = mock
16
+ inst.expects(:ProductState).returns(5)
17
+ inst.expects(:ProductInfo).with(productcode, 'PackageCode').returns(packagecode)
18
+ subject.expects(:installer).returns(inst)
16
19
  end
17
20
 
18
21
  context '::installer', :if => Puppet::Util::Platform.windows? do
19
22
  it 'should return an instance of the COM interface' do
20
- expect(described_class.installer).not_to be_nil
23
+ expect(subject.installer).not_to be_nil
21
24
  end
22
25
  end
23
26
 
24
27
  context '::from_registry' do
25
28
  it 'should return an instance of MsiPackage' do
26
- expect(described_class).to receive(:valid?).and_return(true)
29
+ subject.expects(:valid?).returns(true)
27
30
  expect_installer
28
31
 
29
- pkg = described_class.from_registry(productcode, {'DisplayName' => name, 'DisplayVersion' => version})
32
+ pkg = subject.from_registry(productcode, {'DisplayName' => name, 'DisplayVersion' => version})
30
33
  expect(pkg.name).to eq(name)
31
34
  expect(pkg.version).to eq(version)
32
35
  expect(pkg.productcode).to eq(productcode)
@@ -34,9 +37,9 @@ describe Puppet::Provider::Package::Windows::MsiPackage do
34
37
  end
35
38
 
36
39
  it 'should return nil if it is not a valid MSI' do
37
- expect(described_class).to receive(:valid?).and_return(false)
40
+ subject.expects(:valid?).returns(false)
38
41
 
39
- expect(described_class.from_registry(productcode, {})).to be_nil
42
+ expect(subject.from_registry(productcode, {})).to be_nil
40
43
  end
41
44
  end
42
45
 
@@ -49,45 +52,45 @@ describe Puppet::Provider::Package::Windows::MsiPackage do
49
52
  }.each_pair do |k, arr|
50
53
  it "should accept '#{k}' with value '#{arr[0]}'" do
51
54
  values[k] = arr[0]
52
- expect(described_class.valid?(productcode, values)).to be_truthy
55
+ expect(subject.valid?(productcode, values)).to be_truthy
53
56
  end
54
57
 
55
58
  it "should reject '#{k}' with value '#{arr[1]}'" do
56
59
  values[k] = arr[1]
57
- expect(described_class.valid?(productcode, values)).to be_falsey
60
+ expect(subject.valid?(productcode, values)).to be_falsey
58
61
  end
59
62
  end
60
63
 
61
64
  it 'should reject packages whose name is not a productcode' do
62
- expect(described_class.valid?('AddressBook', values)).to be_falsey
65
+ expect(subject.valid?('AddressBook', values)).to be_falsey
63
66
  end
64
67
 
65
68
  it 'should accept packages whose name is a productcode' do
66
- expect(described_class.valid?(productcode, values)).to be_truthy
69
+ expect(subject.valid?(productcode, values)).to be_truthy
67
70
  end
68
71
  end
69
72
 
70
73
  context '#match?' do
71
74
  it 'should match package codes case-insensitively' do
72
- pkg = described_class.new(name, version, productcode, packagecode.upcase)
75
+ pkg = subject.new(name, version, productcode, packagecode.upcase)
73
76
 
74
77
  expect(pkg.match?({:name => packagecode.downcase})).to be_truthy
75
78
  end
76
79
 
77
80
  it 'should match product codes case-insensitively' do
78
- pkg = described_class.new(name, version, productcode.upcase, packagecode)
81
+ pkg = subject.new(name, version, productcode.upcase, packagecode)
79
82
 
80
83
  expect(pkg.match?({:name => productcode.downcase})).to be_truthy
81
84
  end
82
85
 
83
86
  it 'should match product name' do
84
- pkg = described_class.new(name, version, productcode, packagecode)
87
+ pkg = subject.new(name, version, productcode, packagecode)
85
88
 
86
89
  expect(pkg.match?({:name => name})).to be_truthy
87
90
  end
88
91
 
89
92
  it 'should return false otherwise' do
90
- pkg = described_class.new(name, version, productcode, packagecode)
93
+ pkg = subject.new(name, version, productcode, packagecode)
91
94
 
92
95
  expect(pkg.match?({:name => 'not going to find it'})).to be_falsey
93
96
  end
@@ -95,7 +98,7 @@ describe Puppet::Provider::Package::Windows::MsiPackage do
95
98
 
96
99
  context '#install_command' do
97
100
  it 'should install using the source' do
98
- cmd = described_class.install_command({:source => source})
101
+ cmd = subject.install_command({:source => source})
99
102
 
100
103
  expect(cmd).to eq(['msiexec.exe', '/qn', '/norestart', '/i', source])
101
104
  end
@@ -103,7 +106,7 @@ describe Puppet::Provider::Package::Windows::MsiPackage do
103
106
 
104
107
  context '#uninstall_command' do
105
108
  it 'should uninstall using the productcode' do
106
- pkg = described_class.new(name, version, productcode, packagecode)
109
+ pkg = subject.new(name, version, productcode, packagecode)
107
110
 
108
111
  expect(pkg.uninstall_command).to eq(['msiexec.exe', '/qn', '/norestart', '/x', productcode])
109
112
  end
@@ -1,27 +1,30 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
  require 'puppet/provider/package/windows/package'
3
4
 
4
5
  describe Puppet::Provider::Package::Windows::Package do
6
+ subject { described_class }
7
+
5
8
  let(:hklm) { 'HKEY_LOCAL_MACHINE' }
6
9
  let(:hkcu) { 'HKEY_CURRENT_USER' }
7
10
  let(:path) { 'Software\Microsoft\Windows\CurrentVersion\Uninstall' }
8
- let(:key) { double('key', :name => "#{hklm}\\#{path}\\Google") }
9
- let(:package) { double('package') }
11
+ let(:key) { mock('key', :name => "#{hklm}\\#{path}\\Google") }
12
+ let(:package) { mock('package') }
10
13
 
11
14
  context '::each' do
12
15
  it 'should generate an empty enumeration' do
13
- expect(described_class).to receive(:with_key)
16
+ subject.expects(:with_key)
14
17
 
15
- expect(described_class.to_a).to be_empty
18
+ expect(subject.to_a).to be_empty
16
19
  end
17
20
 
18
21
  it 'should yield each package it finds' do
19
- expect(described_class).to receive(:with_key).and_yield(key, {})
22
+ subject.expects(:with_key).yields(key, {})
20
23
 
21
- expect(Puppet::Provider::Package::Windows::MsiPackage).to receive(:from_registry).with('Google', {}).and_return(package)
24
+ Puppet::Provider::Package::Windows::MsiPackage.expects(:from_registry).with('Google', {}).returns(package)
22
25
 
23
26
  yielded = nil
24
- described_class.each do |pkg|
27
+ subject.each do |pkg|
25
28
  yielded = pkg
26
29
  end
27
30
 
@@ -31,31 +34,33 @@ describe Puppet::Provider::Package::Windows::Package do
31
34
 
32
35
  context '::with_key', :if => Puppet::Util::Platform.windows? do
33
36
  it 'should search HKLM (64 & 32) and HKCU (64 & 32)' do
34
- expect(described_class).to receive(:open).with(hklm, path, described_class::KEY64 | described_class::KEY_READ).ordered
35
- expect(described_class).to receive(:open).with(hklm, path, described_class::KEY32 | described_class::KEY_READ).ordered
36
- expect(described_class).to receive(:open).with(hkcu, path, described_class::KEY64 | described_class::KEY_READ).ordered
37
- expect(described_class).to receive(:open).with(hkcu, path, described_class::KEY32 | described_class::KEY_READ).ordered
37
+ seq = sequence('reg')
38
+
39
+ subject.expects(:open).with(hklm, path, subject::KEY64 | subject::KEY_READ).in_sequence(seq)
40
+ subject.expects(:open).with(hklm, path, subject::KEY32 | subject::KEY_READ).in_sequence(seq)
41
+ subject.expects(:open).with(hkcu, path, subject::KEY64 | subject::KEY_READ).in_sequence(seq)
42
+ subject.expects(:open).with(hkcu, path, subject::KEY32 | subject::KEY_READ).in_sequence(seq)
38
43
 
39
- described_class.with_key { |key, values| }
44
+ subject.with_key { |key, values| }
40
45
  end
41
46
 
42
47
  it 'should ignore file not found exceptions' do
43
48
  ex = Puppet::Util::Windows::Error.new('Failed to open registry key', Puppet::Util::Windows::Error::ERROR_FILE_NOT_FOUND)
44
49
 
45
50
  # make sure we don't stop after the first exception
46
- expect(described_class).to receive(:open).exactly(4).times().and_raise(ex)
51
+ subject.expects(:open).times(4).raises(ex)
47
52
 
48
53
  keys = []
49
- described_class.with_key { |key, values| keys << key }
54
+ subject.with_key { |key, values| keys << key }
50
55
  expect(keys).to be_empty
51
56
  end
52
57
 
53
58
  it 'should raise other types of exceptions' do
54
59
  ex = Puppet::Util::Windows::Error.new('Failed to open registry key', Puppet::Util::Windows::Error::ERROR_ACCESS_DENIED)
55
- expect(described_class).to receive(:open).and_raise(ex)
60
+ subject.expects(:open).raises(ex)
56
61
 
57
62
  expect {
58
- described_class.with_key{ |key, values| }
63
+ subject.with_key{ |key, values| }
59
64
  }.to raise_error do |error|
60
65
  expect(error).to be_a(Puppet::Util::Windows::Error)
61
66
  expect(error.code).to eq(5) # ERROR_ACCESS_DENIED
@@ -66,7 +71,7 @@ describe Puppet::Provider::Package::Windows::Package do
66
71
  context '::installer_class' do
67
72
  it 'should require the source parameter' do
68
73
  expect {
69
- described_class.installer_class({})
74
+ subject.installer_class({})
70
75
  }.to raise_error(Puppet::Error, /The source parameter is required when using the Windows provider./)
71
76
  end
72
77
 
@@ -74,20 +79,20 @@ describe Puppet::Provider::Package::Windows::Package do
74
79
  let (:klass) { Puppet::Provider::Package::Windows::MsiPackage }
75
80
 
76
81
  it 'should accept source ending in .msi' do
77
- expect(described_class.installer_class({:source => 'foo.msi'})).to eq(klass)
82
+ expect(subject.installer_class({:source => 'foo.msi'})).to eq(klass)
78
83
  end
79
84
 
80
85
  it 'should accept quoted source ending in .msi' do
81
- expect(described_class.installer_class({:source => '"foo.msi"'})).to eq(klass)
86
+ expect(subject.installer_class({:source => '"foo.msi"'})).to eq(klass)
82
87
  end
83
88
 
84
89
  it 'should accept source case insensitively' do
85
- expect(described_class.installer_class({:source => '"foo.MSI"'})).to eq(klass)
90
+ expect(subject.installer_class({:source => '"foo.MSI"'})).to eq(klass)
86
91
  end
87
92
 
88
93
  it 'should reject source containing msi in the name' do
89
94
  expect {
90
- described_class.installer_class({:source => 'mymsi.txt'})
95
+ subject.installer_class({:source => 'mymsi.txt'})
91
96
  }.to raise_error(Puppet::Error, /Don't know how to install 'mymsi.txt'/)
92
97
  end
93
98
  end
@@ -95,7 +100,7 @@ describe Puppet::Provider::Package::Windows::Package do
95
100
  context 'Unknown' do
96
101
  it 'should reject packages it does not know about' do
97
102
  expect {
98
- described_class.installer_class({:source => 'basram'})
103
+ subject.installer_class({:source => 'basram'})
99
104
  }.to raise_error(Puppet::Error, /Don't know how to install 'basram'/)
100
105
  end
101
106
  end
@@ -103,76 +108,76 @@ describe Puppet::Provider::Package::Windows::Package do
103
108
 
104
109
  context '::munge' do
105
110
  it 'should shell quote strings with spaces and fix forward slashes' do
106
- expect(described_class.munge('c:/windows/the thing')).to eq('"c:\windows\the thing"')
111
+ expect(subject.munge('c:/windows/the thing')).to eq('"c:\windows\the thing"')
107
112
  end
108
113
  it 'should leave properly formatted paths alone' do
109
- expect(described_class.munge('c:\windows\thething')).to eq('c:\windows\thething')
114
+ expect(subject.munge('c:\windows\thething')).to eq('c:\windows\thething')
110
115
  end
111
116
  end
112
117
 
113
118
  context '::replace_forward_slashes' do
114
119
  it 'should replace forward with back slashes' do
115
- expect(described_class.replace_forward_slashes('c:/windows/thing/stuff')).to eq('c:\windows\thing\stuff')
120
+ expect(subject.replace_forward_slashes('c:/windows/thing/stuff')).to eq('c:\windows\thing\stuff')
116
121
  end
117
122
  end
118
123
 
119
124
  context '::quote' do
120
125
  it 'should shell quote strings with spaces' do
121
- expect(described_class.quote('foo bar')).to eq('"foo bar"')
126
+ expect(subject.quote('foo bar')).to eq('"foo bar"')
122
127
  end
123
128
 
124
129
  it 'should shell quote strings with spaces and quotes' do
125
- expect(described_class.quote('"foo bar" baz')).to eq('"\"foo bar\" baz"')
130
+ expect(subject.quote('"foo bar" baz')).to eq('"\"foo bar\" baz"')
126
131
  end
127
132
 
128
133
  it 'should not shell quote strings without spaces' do
129
- expect(described_class.quote('"foobar"')).to eq('"foobar"')
134
+ expect(subject.quote('"foobar"')).to eq('"foobar"')
130
135
  end
131
136
  end
132
137
 
133
138
  context '::get_display_name' do
134
139
  it 'should return nil if values is nil' do
135
- expect(described_class.get_display_name(nil)).to be_nil
140
+ expect(subject.get_display_name(nil)).to be_nil
136
141
  end
137
142
 
138
143
  it 'should return empty if values is empty' do
139
144
  reg_values = {}
140
- expect(described_class.get_display_name(reg_values)).to eq('')
145
+ expect(subject.get_display_name(reg_values)).to eq('')
141
146
  end
142
147
 
143
148
  it 'should return DisplayName when available' do
144
149
  reg_values = { 'DisplayName' => 'Google' }
145
- expect(described_class.get_display_name(reg_values)).to eq('Google')
150
+ expect(subject.get_display_name(reg_values)).to eq('Google')
146
151
  end
147
152
 
148
153
  it 'should return DisplayName when available, even when QuietDisplayName is also available' do
149
154
  reg_values = { 'DisplayName' => 'Google', 'QuietDisplayName' => 'Google Quiet' }
150
- expect(described_class.get_display_name(reg_values)).to eq('Google')
155
+ expect(subject.get_display_name(reg_values)).to eq('Google')
151
156
  end
152
157
 
153
158
  it 'should return QuietDisplayName when available if DisplayName is empty' do
154
159
  reg_values = { 'DisplayName' => '', 'QuietDisplayName' =>'Google Quiet' }
155
- expect(described_class.get_display_name(reg_values)).to eq('Google Quiet')
160
+ expect(subject.get_display_name(reg_values)).to eq('Google Quiet')
156
161
  end
157
162
 
158
163
  it 'should return QuietDisplayName when DisplayName is not available' do
159
164
  reg_values = { 'QuietDisplayName' =>'Google Quiet' }
160
- expect(described_class.get_display_name(reg_values)).to eq('Google Quiet')
165
+ expect(subject.get_display_name(reg_values)).to eq('Google Quiet')
161
166
  end
162
167
 
163
168
  it 'should return empty when DisplayName is empty and QuietDisplay name is not available' do
164
169
  reg_values = { 'DisplayName' => '' }
165
- expect(described_class.get_display_name(reg_values)).to eq('')
170
+ expect(subject.get_display_name(reg_values)).to eq('')
166
171
  end
167
172
 
168
173
  it 'should return empty when DisplayName is empty and QuietDisplay name is empty' do
169
174
  reg_values = { 'DisplayName' => '', 'QuietDisplayName' =>'' }
170
- expect(described_class.get_display_name(reg_values)).to eq('')
175
+ expect(subject.get_display_name(reg_values)).to eq('')
171
176
  end
172
177
  end
173
178
 
174
179
  it 'should implement instance methods' do
175
- pkg = described_class.new('orca', '5.0')
180
+ pkg = subject.new('orca', '5.0')
176
181
 
177
182
  expect(pkg.name).to eq('orca')
178
183
  expect(pkg.version).to eq('5.0')