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::Service::Provider::Upstart', unless: Puppet::Util::Platform.jruby? do
@@ -22,41 +23,59 @@ describe 'Puppet::Type::Service::Provider::Upstart', unless: Puppet::Util::Platf
22
23
  end
23
24
 
24
25
  def lists_processes_as(output)
25
- allow(Puppet::Util::Execution).to receive(:execpipe).with("/sbin/initctl list").and_yield(output)
26
- allow(provider_class).to receive(:which).with("/sbin/initctl").and_return("/sbin/initctl")
26
+ Puppet::Util::Execution.stubs(:execpipe).with("/sbin/initctl list").yields(output)
27
+ provider_class.stubs(:which).with("/sbin/initctl").returns("/sbin/initctl")
27
28
  end
28
29
 
29
30
  it "should be the default provider on Ubuntu" do
30
- expect(Facter).to receive(:value).with(:operatingsystem).and_return("Ubuntu")
31
- expect(Facter).to receive(:value).with(:operatingsystemmajrelease).and_return("12.04")
31
+ Facter.expects(:value).with(:operatingsystem).returns("Ubuntu")
32
+ Facter.expects(:value).with(:operatingsystemmajrelease).returns("12.04")
32
33
  expect(provider_class.default?).to be_truthy
33
34
  end
34
35
 
35
36
  context "upstart daemon existence confine" do
36
- let(:initctl_version) { ['/sbin/initctl', 'version', '--quiet'] }
37
+ # We have a separate method here because our search for the upstart daemon
38
+ # confine expects it to be the last confine declared in the upstart provider.
39
+ # If in the future we add other confines below it or change its order, these
40
+ # unit tests will fail. Placing knowledge of where this confine is located
41
+ # in one place makes updating it less painful in case we ever need to do this.
42
+ def assert_upstart_daemon_existence_confine_is(expected_value)
43
+ # Reload our provider to evaluate the :confine block
44
+ provider_class = Puppet::Type.type(:service).provider(:upstart)
45
+
46
+ upstart_daemon_existence_confine = provider_class.confine_collection.instance_variable_get(:@confines)[-1]
47
+ expect(upstart_daemon_existence_confine.valid?).to be(expected_value)
48
+ end
37
49
 
50
+ let(:initctl_version) { ['/sbin/initctl', 'version', '--quiet'] }
38
51
  before(:each) do
39
- allow(Puppet::Util).to receive(:which).with('/sbin/initctl').and_return('/sbin/initctl')
52
+ # Stub out /sbin/initctl
53
+ Puppet::Util.stubs(:which).with('/sbin/initctl').returns('/sbin/initctl')
54
+
55
+ # Both of our tests are asserting the confine :true block that shells out to
56
+ # `initctl version --quiet`. Its expression is evaluated at provider load-time.
57
+ # Hence before each test, we want to reload the upstart provider so that the
58
+ # confine is re-evaluated.
59
+ Puppet::Type.type(:service).unprovide(:upstart)
40
60
  end
41
61
 
42
62
  it "should return true when the daemon is running" do
43
- expect(Puppet::Util::Execution).to receive(:execute).with(initctl_version, instance_of(Hash))
44
-
45
- expect(provider_class).to be_has_initctl
63
+ Puppet::Util::Execution.expects(:execute).with(initctl_version, instance_of(Hash))
64
+ assert_upstart_daemon_existence_confine_is(true)
46
65
  end
47
66
 
48
67
  it "should return false when the daemon is not running" do
49
- expect(Puppet::Util::Execution).to receive(:execute)
68
+ Puppet::Util::Execution.expects(:execute)
50
69
  .with(initctl_version, instance_of(Hash))
51
- .and_raise(Puppet::ExecutionFailure, "initctl failed!")
70
+ .raises(Puppet::ExecutionFailure, "initctl failed!")
52
71
 
53
- expect(provider_class).to_not be_has_initctl
72
+ assert_upstart_daemon_existence_confine_is(false)
54
73
  end
55
74
  end
56
75
 
57
76
  describe "excluding services" do
58
77
  it "ignores tty and serial on Redhat systems" do
59
- allow(Facter).to receive(:value).with(:osfamily).and_return('RedHat')
78
+ Facter.stubs(:value).with(:osfamily).returns('RedHat')
60
79
  expect(provider_class.excludes).to include 'serial'
61
80
  expect(provider_class.excludes).to include 'tty'
62
81
  end
@@ -77,7 +96,7 @@ describe 'Puppet::Type::Service::Provider::Upstart', unless: Puppet::Util::Platf
77
96
 
78
97
  it "should attach the job name for network interface security" do
79
98
  processes = "network-interface-security (network-interface/eth0)"
80
- allow(provider_class).to receive(:execpipe).and_yield(processes)
99
+ provider_class.stubs(:execpipe).yields(processes)
81
100
  expect(provider_class.instances.first.name).to eq("network-interface-security JOB=network-interface/eth0")
82
101
  end
83
102
 
@@ -89,16 +108,16 @@ describe 'Puppet::Type::Service::Provider::Upstart', unless: Puppet::Util::Platf
89
108
  processes += "\ncryptdisks-udev stop/waiting"
90
109
  processes += "\nstatd-mounting stop/waiting"
91
110
  processes += "\ngssd-mounting stop/waiting"
92
- allow(provider_class).to receive(:execpipe).and_yield(processes)
111
+ provider_class.stubs(:execpipe).yields(processes)
93
112
  expect(provider_class.instances).to be_empty
94
113
  end
95
114
  end
96
115
 
97
116
  describe "#search" do
98
117
  it "searches through paths to find a matching conf file" do
99
- allow(File).to receive(:directory?).and_return(true)
100
- allow(Puppet::FileSystem).to receive(:exist?).and_return(false)
101
- expect(Puppet::FileSystem).to receive(:exist?).with("/etc/init/foo-bar.conf").and_return(true)
118
+ File.stubs(:directory?).returns(true)
119
+ Puppet::FileSystem.stubs(:exist?).returns(false)
120
+ Puppet::FileSystem.expects(:exist?).with("/etc/init/foo-bar.conf").returns(true)
102
121
  resource = Puppet::Type.type(:service).new(:name => "foo-bar", :provider => :upstart)
103
122
  provider = provider_class.new(resource)
104
123
 
@@ -106,9 +125,9 @@ describe 'Puppet::Type::Service::Provider::Upstart', unless: Puppet::Util::Platf
106
125
  end
107
126
 
108
127
  it "searches for just the name of a compound named service" do
109
- allow(File).to receive(:directory?).and_return(true)
110
- allow(Puppet::FileSystem).to receive(:exist?).and_return(false)
111
- expect(Puppet::FileSystem).to receive(:exist?).with("/etc/init/network-interface.conf").and_return(true)
128
+ File.stubs(:directory?).returns(true)
129
+ Puppet::FileSystem.stubs(:exist?).returns(false)
130
+ Puppet::FileSystem.expects(:exist?).with("/etc/init/network-interface.conf").returns(true)
112
131
  resource = Puppet::Type.type(:service).new(:name => "network-interface INTERFACE=lo", :provider => :upstart)
113
132
  provider = provider_class.new(resource)
114
133
 
@@ -120,10 +139,10 @@ describe 'Puppet::Type::Service::Provider::Upstart', unless: Puppet::Util::Platf
120
139
  it "should use the default status command if none is specified" do
121
140
  resource = Puppet::Type.type(:service).new(:name => "foo", :provider => :upstart)
122
141
  provider = provider_class.new(resource)
123
- allow(provider).to receive(:is_upstart?).and_return(true)
142
+ provider.stubs(:is_upstart?).returns(true)
124
143
 
125
- expect(provider).to receive(:status_exec).with(["foo"]).and_return("foo start/running, process 1000")
126
- allow_any_instance_of(Process::Status).to receive(:exitstatus).and_return(0)
144
+ provider.expects(:status_exec).with(["foo"]).returns("foo start/running, process 1000")
145
+ Process::Status.any_instance.stubs(:exitstatus).returns(0)
127
146
  expect(provider.status).to eq(:running)
128
147
  end
129
148
 
@@ -131,33 +150,33 @@ describe 'Puppet::Type::Service::Provider::Upstart', unless: Puppet::Util::Platf
131
150
  it "should use the provided status command" do
132
151
  resource = Puppet::Type.type(:service).new(:name => 'foo', :provider => :upstart, :status => '/bin/foo')
133
152
  provider = provider_class.new(resource)
134
- allow(provider).to receive(:is_upstart?).and_return(true)
153
+ provider.stubs(:is_upstart?).returns(true)
135
154
 
136
- expect(provider).not_to receive(:status_exec).with(['foo'])
137
- expect(provider).to receive(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
138
- allow_any_instance_of(Process::Status).to receive(:exitstatus).and_return(0)
155
+ provider.expects(:status_exec).with(['foo']).never
156
+ provider.expects(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
157
+ Process::Status.any_instance.stubs(:exitstatus).returns(0)
139
158
  provider.status
140
159
  end
141
160
 
142
161
  it "should return :stopped when the provided status command return non-zero" do
143
162
  resource = Puppet::Type.type(:service).new(:name => 'foo', :provider => :upstart, :status => '/bin/foo')
144
163
  provider = provider_class.new(resource)
145
- allow(provider).to receive(:is_upstart?).and_return(true)
164
+ provider.stubs(:is_upstart?).returns(true)
146
165
 
147
- expect(provider).not_to receive(:status_exec).with(['foo'])
148
- expect(provider).to receive(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
149
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(1)
166
+ provider.expects(:status_exec).with(['foo']).never
167
+ provider.expects(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
168
+ $CHILD_STATUS.stubs(:exitstatus).returns 1
150
169
  expect(provider.status).to eq(:stopped)
151
170
  end
152
171
 
153
172
  it "should return :running when the provided status command return zero" do
154
173
  resource = Puppet::Type.type(:service).new(:name => 'foo', :provider => :upstart, :status => '/bin/foo')
155
174
  provider = provider_class.new(resource)
156
- allow(provider).to receive(:is_upstart?).and_return(true)
175
+ provider.stubs(:is_upstart?).returns(true)
157
176
 
158
- expect(provider).not_to receive(:status_exec).with(['foo'])
159
- expect(provider).to receive(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
160
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
177
+ provider.expects(:status_exec).with(['foo']).never
178
+ provider.expects(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
179
+ $CHILD_STATUS.stubs(:exitstatus).returns 0
161
180
  expect(provider.status).to eq(:running)
162
181
  end
163
182
  end
@@ -166,20 +185,20 @@ describe 'Puppet::Type::Service::Provider::Upstart', unless: Puppet::Util::Platf
166
185
  it "should return :stopped if the pid can not be found" do
167
186
  resource = Puppet::Type.type(:service).new(:name => 'foo', :hasstatus => false, :provider => :upstart)
168
187
  provider = provider_class.new(resource)
169
- allow(provider).to receive(:is_upstart?).and_return(true)
188
+ provider.stubs(:is_upstart?).returns(true)
170
189
 
171
- expect(provider).not_to receive(:status_exec).with(['foo'])
172
- expect(provider).to receive(:getpid).and_return(nil)
190
+ provider.expects(:status_exec).with(['foo']).never
191
+ provider.expects(:getpid).returns nil
173
192
  expect(provider.status).to eq(:stopped)
174
193
  end
175
194
 
176
195
  it "should return :running if the pid can be found" do
177
196
  resource = Puppet::Type.type(:service).new(:name => 'foo', :hasstatus => false, :provider => :upstart)
178
197
  provider = provider_class.new(resource)
179
- allow(provider).to receive(:is_upstart?).and_return(true)
198
+ provider.stubs(:is_upstart?).returns(true)
180
199
 
181
- expect(provider).not_to receive(:status_exec).with(['foo'])
182
- expect(provider).to receive(:getpid).and_return(2706)
200
+ provider.expects(:status_exec).with(['foo']).never
201
+ provider.expects(:getpid).returns 2706
183
202
  expect(provider.status).to eq(:running)
184
203
  end
185
204
  end
@@ -188,33 +207,33 @@ describe 'Puppet::Type::Service::Provider::Upstart', unless: Puppet::Util::Platf
188
207
  it "should use the provided status command" do
189
208
  resource = Puppet::Type.type(:service).new(:name => 'foo', :provider => :upstart, :status => '/bin/foo')
190
209
  provider = provider_class.new(resource)
191
- allow(provider).to receive(:is_upstart?).and_return(true)
210
+ provider.stubs(:is_upstart?).returns(true)
192
211
 
193
- expect(provider).not_to receive(:status_exec).with(['foo'])
194
- expect(provider).to receive(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
195
- allow_any_instance_of(Process::Status).to receive(:exitstatus).and_return(0)
212
+ provider.expects(:status_exec).with(['foo']).never
213
+ provider.expects(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
214
+ Process::Status.any_instance.stubs(:exitstatus).returns(0)
196
215
  provider.status
197
216
  end
198
217
 
199
218
  it "should return :stopped when the provided status command return non-zero" do
200
219
  resource = Puppet::Type.type(:service).new(:name => 'foo', :provider => :upstart, :status => '/bin/foo')
201
220
  provider = provider_class.new(resource)
202
- allow(provider).to receive(:is_upstart?).and_return(true)
221
+ provider.stubs(:is_upstart?).returns(true)
203
222
 
204
- expect(provider).not_to receive(:status_exec).with(['foo'])
205
- expect(provider).to receive(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
206
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(1)
223
+ provider.expects(:status_exec).with(['foo']).never
224
+ provider.expects(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
225
+ $CHILD_STATUS.stubs(:exitstatus).returns 1
207
226
  expect(provider.status).to eq(:stopped)
208
227
  end
209
228
 
210
229
  it "should return :running when the provided status command return zero" do
211
230
  resource = Puppet::Type.type(:service).new(:name => 'foo', :provider => :upstart, :status => '/bin/foo')
212
231
  provider = provider_class.new(resource)
213
- allow(provider).to receive(:is_upstart?).and_return(true)
232
+ provider.stubs(:is_upstart?).returns(true)
214
233
 
215
- expect(provider).not_to receive(:status_exec).with(['foo'])
216
- expect(provider).to receive(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
217
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
234
+ provider.expects(:status_exec).with(['foo']).never
235
+ provider.expects(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
236
+ $CHILD_STATUS.stubs(:exitstatus).returns 0
218
237
  expect(provider.status).to eq(:running)
219
238
  end
220
239
  end
@@ -223,20 +242,20 @@ describe 'Puppet::Type::Service::Provider::Upstart', unless: Puppet::Util::Platf
223
242
  it "should return :stopped if the pid can not be found" do
224
243
  resource = Puppet::Type.type(:service).new(:name => 'foo', :hasstatus => false, :provider => :upstart)
225
244
  provider = provider_class.new(resource)
226
- allow(provider).to receive(:is_upstart?).and_return(true)
245
+ provider.stubs(:is_upstart?).returns(true)
227
246
 
228
- expect(provider).not_to receive(:status_exec).with(['foo'])
229
- expect(provider).to receive(:getpid).and_return(nil)
247
+ provider.expects(:status_exec).with(['foo']).never
248
+ provider.expects(:getpid).returns nil
230
249
  expect(provider.status).to eq(:stopped)
231
250
  end
232
251
 
233
252
  it "should return :running if the pid can be found" do
234
253
  resource = Puppet::Type.type(:service).new(:name => 'foo', :hasstatus => false, :provider => :upstart)
235
254
  provider = provider_class.new(resource)
236
- allow(provider).to receive(:is_upstart?).and_return(true)
255
+ provider.stubs(:is_upstart?).returns(true)
237
256
 
238
- expect(provider).not_to receive(:status_exec).with(['foo'])
239
- expect(provider).to receive(:getpid).and_return(2706)
257
+ provider.expects(:status_exec).with(['foo']).never
258
+ provider.expects(:getpid).returns 2706
240
259
  expect(provider.status).to eq(:running)
241
260
  end
242
261
  end
@@ -244,10 +263,10 @@ describe 'Puppet::Type::Service::Provider::Upstart', unless: Puppet::Util::Platf
244
263
  it "should properly handle services with 'start' in their name" do
245
264
  resource = Puppet::Type.type(:service).new(:name => "foostartbar", :provider => :upstart)
246
265
  provider = provider_class.new(resource)
247
- allow(provider).to receive(:is_upstart?).and_return(true)
266
+ provider.stubs(:is_upstart?).returns(true)
248
267
 
249
- expect(provider).to receive(:status_exec).with(["foostartbar"]).and_return("foostartbar stop/waiting")
250
- allow_any_instance_of(Process::Status).to receive(:exitstatus).and_return(0)
268
+ provider.expects(:status_exec).with(["foostartbar"]).returns("foostartbar stop/waiting")
269
+ Process::Status.any_instance.stubs(:exitstatus).returns(0)
251
270
  expect(provider.status).to eq(:stopped)
252
271
  end
253
272
  end
@@ -263,15 +282,13 @@ describe 'Puppet::Type::Service::Provider::Upstart', unless: Puppet::Util::Platf
263
282
 
264
283
  describe "when upstart job" do
265
284
  before(:each) do
266
- allow(provider).to receive(:is_upstart?).and_return(true)
285
+ provider.stubs(:is_upstart?).returns(true)
267
286
  end
268
-
269
287
  ["start", "stop"].each do |action|
270
288
  it "should return the #{action}cmd of its parent provider" do
271
289
  expect(provider.send("#{action}cmd".to_sym)).to eq([provider.command(action.to_sym), resource.name])
272
290
  end
273
291
  end
274
-
275
292
  it "should return nil for the statuscmd" do
276
293
  expect(provider.statuscmd).to be_nil
277
294
  end
@@ -350,9 +367,9 @@ describe 'Puppet::Type::Service::Provider::Upstart', unless: Puppet::Util::Platf
350
367
 
351
368
  describe "Upstart version < 0.6.7" do
352
369
  before(:each) do
353
- allow(provider).to receive(:is_upstart?).and_return(true)
354
- allow(provider).to receive(:upstart_version).and_return("0.6.5")
355
- allow(provider).to receive(:search).and_return(init_script)
370
+ provider.stubs(:is_upstart?).returns(true)
371
+ provider.stubs(:upstart_version).returns("0.6.5")
372
+ provider.stubs(:search).returns(init_script)
356
373
  end
357
374
 
358
375
  [:enabled?,:enable,:disable].each do |enableable|
@@ -436,9 +453,9 @@ describe 'Puppet::Type::Service::Provider::Upstart', unless: Puppet::Util::Platf
436
453
 
437
454
  describe "Upstart version < 0.9.0" do
438
455
  before(:each) do
439
- allow(provider).to receive(:is_upstart?).and_return(true)
440
- allow(provider).to receive(:upstart_version).and_return("0.7.0")
441
- allow(provider).to receive(:search).and_return(init_script)
456
+ provider.stubs(:is_upstart?).returns(true)
457
+ provider.stubs(:upstart_version).returns("0.7.0")
458
+ provider.stubs(:search).returns(init_script)
442
459
  end
443
460
 
444
461
  [:enabled?,:enable,:disable].each do |enableable|
@@ -554,10 +571,10 @@ describe 'Puppet::Type::Service::Provider::Upstart', unless: Puppet::Util::Platf
554
571
 
555
572
  describe "Upstart version > 0.9.0" do
556
573
  before(:each) do
557
- allow(provider).to receive(:is_upstart?).and_return(true)
558
- allow(provider).to receive(:upstart_version).and_return("0.9.5")
559
- allow(provider).to receive(:search).and_return(init_script)
560
- allow(provider).to receive(:overscript).and_return(over_script)
574
+ provider.stubs(:is_upstart?).returns(true)
575
+ provider.stubs(:upstart_version).returns("0.9.5")
576
+ provider.stubs(:search).returns(init_script)
577
+ provider.stubs(:overscript).returns(over_script)
561
578
  end
562
579
 
563
580
  [:enabled?,:enable,:disable].each do |enableable|
@@ -655,7 +672,6 @@ describe 'Puppet::Type::Service::Provider::Upstart', unless: Puppet::Util::Platf
655
672
  expect(provider.enabled?).to eq(:false)
656
673
  end
657
674
  end
658
-
659
675
  describe "with override file" do
660
676
  it "should consider 'start on ...' to be disabled if there is manual in override file" do
661
677
  given_contents_of(init_script, enabled_content)
@@ -1,4 +1,10 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # Unit testing for the Windows service Provider
4
+ #
5
+
1
6
  require 'spec_helper'
7
+
2
8
  require 'win32/service' if Puppet::Util::Platform.windows?
3
9
 
4
10
  describe 'Puppet::Type::Service::Provider::Windows',
@@ -10,20 +16,20 @@ describe 'Puppet::Type::Service::Provider::Windows',
10
16
  let(:config) { Struct::ServiceConfigInfo.new }
11
17
  let(:status) { Struct::ServiceStatus.new }
12
18
  let(:service_util) { Puppet::Util::Windows::Service }
13
- let(:service_handle) { double() }
19
+ let(:service_handle) { mock() }
14
20
 
15
21
  before :each do
16
22
  # make sure we never actually execute anything (there are two execute methods)
17
- allow(provider.class).to receive(:execute)
18
- allow(provider).to receive(:execute)
23
+ provider.class.expects(:execute).never
24
+ provider.expects(:execute).never
19
25
 
20
- allow(service_util).to receive(:exists?).with(resource[:name]).and_return(true)
26
+ service_util.stubs(:exists?).with(resource[:name]).returns(true)
21
27
  end
22
28
 
23
29
  describe ".instances" do
24
30
  it "should enumerate all services" do
25
31
  list_of_services = {'snmptrap' => {}, 'svchost' => {}, 'sshd' => {}}
26
- expect(service_util).to receive(:services).and_return(list_of_services)
32
+ service_util.expects(:services).returns(list_of_services)
27
33
 
28
34
  expect(provider_class.instances.map(&:name)).to match_array(['snmptrap', 'svchost', 'sshd'])
29
35
  end
@@ -31,24 +37,24 @@ describe 'Puppet::Type::Service::Provider::Windows',
31
37
 
32
38
  describe "#start" do
33
39
  before(:each) do
34
- allow(provider).to receive(:status).and_return(:stopped)
40
+ provider.stubs(:status).returns(:stopped)
35
41
  end
36
42
 
37
43
  it "should resume a paused service" do
38
- allow(provider).to receive(:status).and_return(:paused)
39
- expect(service_util).to receive(:resume).with(name)
44
+ provider.stubs(:status).returns(:paused)
45
+ service_util.expects(:resume)
40
46
  provider.start
41
47
  end
42
48
 
43
49
  it "should start the service" do
44
- expect(service_util).to receive(:service_start_type).with(name).and_return(:SERVICE_AUTO_START)
45
- expect(service_util).to receive(:start).with(name)
50
+ service_util.expects(:service_start_type).with(name).returns(:SERVICE_AUTO_START)
51
+ service_util.expects(:start)
46
52
  provider.start
47
53
  end
48
54
 
49
55
  context "when the service is disabled" do
50
56
  before :each do
51
- expect(service_util).to receive(:service_start_type).with(name).and_return(:SERVICE_DISABLED)
57
+ service_util.expects(:service_start_type).with(name).returns(:SERVICE_DISABLED)
52
58
  end
53
59
 
54
60
  it "should refuse to start if not managing enable" do
@@ -57,16 +63,16 @@ describe 'Puppet::Type::Service::Provider::Windows',
57
63
 
58
64
  it "should enable if managing enable and enable is true" do
59
65
  resource[:enable] = :true
60
- expect(service_util).to receive(:start).with(name)
61
- expect(service_util).to receive(:set_startup_mode).with(name, :SERVICE_AUTO_START)
66
+ service_util.expects(:start)
67
+ service_util.expects(:set_startup_mode).with(name, :SERVICE_AUTO_START)
62
68
 
63
69
  provider.start
64
70
  end
65
71
 
66
72
  it "should manual start if managing enable and enable is false" do
67
73
  resource[:enable] = :false
68
- expect(service_util).to receive(:start).with(name)
69
- expect(service_util).to receive(:set_startup_mode).with(name, :SERVICE_DEMAND_START)
74
+ service_util.expects(:start)
75
+ service_util.expects(:set_startup_mode).with(name, :SERVICE_DEMAND_START)
70
76
 
71
77
  provider.start
72
78
  end
@@ -75,7 +81,7 @@ describe 'Puppet::Type::Service::Provider::Windows',
75
81
 
76
82
  describe "#stop" do
77
83
  it "should stop a running service" do
78
- expect(service_util).to receive(:stop).with(name)
84
+ service_util.expects(:stop)
79
85
 
80
86
  provider.stop
81
87
  end
@@ -83,7 +89,7 @@ describe 'Puppet::Type::Service::Provider::Windows',
83
89
 
84
90
  describe "#status" do
85
91
  it "should report a nonexistent service as stopped" do
86
- allow(service_util).to receive(:exists?).with(resource[:name]).and_return(false)
92
+ service_util.stubs(:exists?).with(resource[:name]).returns(false)
87
93
 
88
94
  expect(provider.status).to eql(:stopped)
89
95
  end
@@ -93,7 +99,7 @@ describe 'Puppet::Type::Service::Provider::Windows',
93
99
  :SERVICE_PAUSE_PENDING
94
100
  ].each do |state|
95
101
  it "should report a #{state} service as paused" do
96
- expect(service_util).to receive(:service_state).with(name).and_return(state)
102
+ service_util.expects(:service_state).with(name).returns(state)
97
103
  expect(provider.status).to eq(:paused)
98
104
  end
99
105
  end
@@ -103,7 +109,7 @@ describe 'Puppet::Type::Service::Provider::Windows',
103
109
  :SERVICE_STOP_PENDING
104
110
  ].each do |state|
105
111
  it "should report a #{state} service as stopped" do
106
- expect(service_util).to receive(:service_state).with(name).and_return(state)
112
+ service_util.expects(:service_state).with(name).returns(state)
107
113
  expect(provider.status).to eq(:stopped)
108
114
  end
109
115
  end
@@ -114,7 +120,7 @@ describe 'Puppet::Type::Service::Provider::Windows',
114
120
  :SERVICE_START_PENDING,
115
121
  ].each do |state|
116
122
  it "should report a #{state} service as running" do
117
- expect(service_util).to receive(:service_state).with(name).and_return(state)
123
+ service_util.expects(:service_state).with(name).returns(state)
118
124
 
119
125
  expect(provider.status).to eq(:running)
120
126
  end
@@ -125,14 +131,16 @@ describe 'Puppet::Type::Service::Provider::Windows',
125
131
  it "should use the supplied restart command if specified" do
126
132
  resource[:restart] = 'c:/bin/foo'
127
133
 
128
- expect(provider).to receive(:execute).with(['c:/bin/foo'], :failonfail => true, :override_locale => false, :squelch => false, :combine => true)
134
+ provider.expects(:execute).never
135
+ provider.expects(:execute).with(['c:/bin/foo'], :failonfail => true, :override_locale => false, :squelch => false, :combine => true)
129
136
 
130
137
  provider.restart
131
138
  end
132
139
 
133
140
  it "should restart the service" do
134
- expect(provider).to receive(:stop).ordered
135
- expect(provider).to receive(:start).ordered
141
+ seq = sequence("restarting")
142
+ provider.expects(:stop).in_sequence(seq)
143
+ provider.expects(:start).in_sequence(seq)
136
144
 
137
145
  provider.restart
138
146
  end
@@ -140,18 +148,18 @@ describe 'Puppet::Type::Service::Provider::Windows',
140
148
 
141
149
  describe "#enabled?" do
142
150
  it "should report a nonexistent service as false" do
143
- allow(service_util).to receive(:exists?).with(resource[:name]).and_return(false)
151
+ service_util.stubs(:exists?).with(resource[:name]).returns(false)
144
152
 
145
153
  expect(provider.enabled?).to eql(:false)
146
154
  end
147
155
 
148
156
  it "should report a service with a startup type of manual as manual" do
149
- expect(service_util).to receive(:service_start_type).with(name).and_return(:SERVICE_DEMAND_START)
157
+ service_util.expects(:service_start_type).with(name).returns(:SERVICE_DEMAND_START)
150
158
  expect(provider.enabled?).to eq(:manual)
151
159
  end
152
160
 
153
161
  it "should report a service with a startup type of disabled as false" do
154
- expect(service_util).to receive(:service_start_type).with(name).and_return(:SERVICE_DISABLED)
162
+ service_util.expects(:service_start_type).with(name).returns(:SERVICE_DISABLED)
155
163
  expect(provider.enabled?).to eq(:false)
156
164
  end
157
165
 
@@ -164,7 +172,7 @@ describe 'Puppet::Type::Service::Provider::Windows',
164
172
  :SERVICE_SYSTEM_START
165
173
  ].each do |start_type|
166
174
  it "should report a service with a startup type of '#{start_type}' as true" do
167
- expect(service_util).to receive(:service_start_type).with(name).and_return(start_type)
175
+ service_util.expects(:service_start_type).with(name).returns(start_type)
168
176
  expect(provider.enabled?).to eq(:true)
169
177
  end
170
178
  end
@@ -173,12 +181,12 @@ describe 'Puppet::Type::Service::Provider::Windows',
173
181
 
174
182
  describe "#enable" do
175
183
  it "should set service start type to Service_Auto_Start when enabled" do
176
- expect(service_util).to receive(:set_startup_mode).with(name, :SERVICE_AUTO_START)
184
+ service_util.expects(:set_startup_mode).with(name, :SERVICE_AUTO_START)
177
185
  provider.enable
178
186
  end
179
187
 
180
188
  it "raises an error if set_startup_mode fails" do
181
- expect(service_util).to receive(:set_startup_mode).with(name, :SERVICE_AUTO_START).and_raise(Puppet::Error.new('foobar'))
189
+ service_util.expects(:set_startup_mode).with(name, :SERVICE_AUTO_START).raises(Puppet::Error.new('foobar'))
182
190
 
183
191
  expect {
184
192
  provider.enable
@@ -188,12 +196,12 @@ describe 'Puppet::Type::Service::Provider::Windows',
188
196
 
189
197
  describe "#disable" do
190
198
  it "should set service start type to Service_Disabled when disabled" do
191
- expect(service_util).to receive(:set_startup_mode).with(name, :SERVICE_DISABLED)
199
+ service_util.expects(:set_startup_mode).with(name, :SERVICE_DISABLED)
192
200
  provider.disable
193
201
  end
194
202
 
195
203
  it "raises an error if set_startup_mode fails" do
196
- expect(service_util).to receive(:set_startup_mode).with(name, :SERVICE_DISABLED).and_raise(Puppet::Error.new('foobar'))
204
+ service_util.expects(:set_startup_mode).with(name, :SERVICE_DISABLED).raises(Puppet::Error.new('foobar'))
197
205
 
198
206
  expect {
199
207
  provider.disable
@@ -203,12 +211,12 @@ describe 'Puppet::Type::Service::Provider::Windows',
203
211
 
204
212
  describe "#manual_start" do
205
213
  it "should set service start type to Service_Demand_Start (manual) when manual" do
206
- expect(service_util).to receive(:set_startup_mode).with(name, :SERVICE_DEMAND_START)
214
+ service_util.expects(:set_startup_mode).with(name, :SERVICE_DEMAND_START)
207
215
  provider.manual_start
208
216
  end
209
217
 
210
218
  it "raises an error if set_startup_mode fails" do
211
- expect(service_util).to receive(:set_startup_mode).with(name, :SERVICE_DEMAND_START).and_raise(Puppet::Error.new('foobar'))
219
+ service_util.expects(:set_startup_mode).with(name, :SERVICE_DEMAND_START).raises(Puppet::Error.new('foobar'))
212
220
 
213
221
  expect {
214
222
  provider.manual_start