puppet 6.0.10-x86-mingw32 → 6.1.0-x86-mingw32

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,8 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # Unit testing for the Init service Provider
4
+ #
5
+
1
6
  require 'spec_helper'
2
7
 
3
8
  describe 'Puppet::Type::Service::Provider::Init', unless: Puppet::Util::Platform.jruby? do
@@ -40,12 +45,12 @@ describe 'Puppet::Type::Service::Provider::Init', unless: Puppet::Util::Platform
40
45
 
41
46
  describe "when getting all service instances" do
42
47
  before :each do
43
- allow(provider_class).to receive(:defpath).and_return('tmp')
48
+ provider_class.stubs(:defpath).returns('tmp')
44
49
 
45
50
  @services = ['one', 'two', 'three', 'four', 'umountfs']
46
- allow(Dir).to receive(:entries).with('tmp').and_return(@services)
47
- expect(FileTest).to receive(:directory?).with('tmp').and_return(true)
48
- allow(FileTest).to receive(:executable?).and_return(true)
51
+ Dir.stubs(:entries).with('tmp').returns @services
52
+ FileTest.expects(:directory?).with('tmp').returns(true)
53
+ FileTest.stubs(:executable?).returns(true)
49
54
  end
50
55
 
51
56
  it "should return instances for all services" do
@@ -63,7 +68,7 @@ describe 'Puppet::Type::Service::Provider::Init', unless: Puppet::Util::Platform
63
68
  end
64
69
 
65
70
  it "should omit Yocto services on cisco-wrlinux" do
66
- allow(Facter).to receive(:value).with(:osfamily).and_return('cisco-wrlinux')
71
+ Facter.stubs(:value).with(:osfamily).returns 'cisco-wrlinux'
67
72
  exclude = 'umountfs'
68
73
  expect(provider_class.get_services(provider_class.defpath).map(&:name)).to eq(@services - [exclude])
69
74
  end
@@ -83,33 +88,33 @@ describe 'Puppet::Type::Service::Provider::Init', unless: Puppet::Util::Platform
83
88
  it "should discard upstart jobs", :if => Puppet.features.manages_symlinks? do
84
89
  not_init_service, *valid_services = @services
85
90
  path = "tmp/#{not_init_service}"
86
- allow(Puppet::FileSystem).to receive(:symlink?).at_least(:once).and_return(false)
87
- allow(Puppet::FileSystem).to receive(:symlink?).with(Puppet::FileSystem.pathname(path)).and_return(true)
88
- allow(Puppet::FileSystem).to receive(:readlink).with(Puppet::FileSystem.pathname(path)).and_return("/lib/init/upstart-job")
91
+ Puppet::FileSystem.expects(:symlink?).at_least_once.returns false
92
+ Puppet::FileSystem.expects(:symlink?).with(Puppet::FileSystem.pathname(path)).returns(true)
93
+ Puppet::FileSystem.expects(:readlink).with(Puppet::FileSystem.pathname(path)).returns("/lib/init/upstart-job")
89
94
  expect(provider_class.instances.map(&:name)).to eq(valid_services)
90
95
  end
91
96
 
92
97
  it "should discard non-initscript scripts" do
93
98
  valid_services = @services
94
99
  all_services = valid_services + excludes
95
- expect(Dir).to receive(:entries).with('tmp').and_return(all_services)
100
+ Dir.expects(:entries).with('tmp').returns all_services
96
101
  expect(provider_class.instances.map(&:name)).to match_array(valid_services)
97
102
  end
98
103
  end
99
104
 
100
105
  describe "when checking valid paths" do
101
106
  it "should discard paths that do not exist" do
102
- expect(File).to receive(:directory?).with(paths[0]).and_return(false)
103
- expect(Puppet::FileSystem).to receive(:exist?).with(paths[0]).and_return(false)
104
- expect(File).to receive(:directory?).with(paths[1]).and_return(true)
107
+ File.expects(:directory?).with(paths[0]).returns false
108
+ Puppet::FileSystem.expects(:exist?).with(paths[0]).returns false
109
+ File.expects(:directory?).with(paths[1]).returns true
105
110
 
106
111
  expect(provider.paths).to eq([paths[1]])
107
112
  end
108
113
 
109
114
  it "should discard paths that are not directories" do
110
115
  paths.each do |path|
111
- expect(Puppet::FileSystem).to receive(:exist?).with(path).and_return(true)
112
- expect(File).to receive(:directory?).with(path).and_return(false)
116
+ Puppet::FileSystem.expects(:exist?).with(path).returns true
117
+ File.expects(:directory?).with(path).returns false
113
118
  end
114
119
  expect(provider.paths).to be_empty
115
120
  end
@@ -117,32 +122,32 @@ describe 'Puppet::Type::Service::Provider::Init', unless: Puppet::Util::Platform
117
122
 
118
123
  describe "when searching for the init script" do
119
124
  before :each do
120
- paths.each {|path| expect(File).to receive(:directory?).with(path).and_return(true) }
125
+ paths.each {|path| File.expects(:directory?).with(path).returns true }
121
126
  end
122
127
 
123
128
  it "should be able to find the init script in the service path" do
124
- expect(Puppet::FileSystem).to receive(:exist?).with("#{paths[0]}/myservice").and_return(true)
125
- expect(Puppet::FileSystem).not_to receive(:exist?).with("#{paths[1]}/myservice") # first one wins
129
+ Puppet::FileSystem.expects(:exist?).with("#{paths[0]}/myservice").returns true
130
+ Puppet::FileSystem.expects(:exist?).with("#{paths[1]}/myservice").never # first one wins
126
131
  expect(provider.initscript).to eq("/service/path/myservice")
127
132
  end
128
133
 
129
134
  it "should be able to find the init script in an alternate service path" do
130
- expect(Puppet::FileSystem).to receive(:exist?).with("#{paths[0]}/myservice").and_return(false)
131
- expect(Puppet::FileSystem).to receive(:exist?).with("#{paths[1]}/myservice").and_return(true)
135
+ Puppet::FileSystem.expects(:exist?).with("#{paths[0]}/myservice").returns false
136
+ Puppet::FileSystem.expects(:exist?).with("#{paths[1]}/myservice").returns true
132
137
  expect(provider.initscript).to eq("/alt/service/path/myservice")
133
138
  end
134
139
 
135
140
  it "should be able to find the init script if it ends with .sh" do
136
- expect(Puppet::FileSystem).to receive(:exist?).with("#{paths[0]}/myservice").and_return(false)
137
- expect(Puppet::FileSystem).to receive(:exist?).with("#{paths[1]}/myservice").and_return(false)
138
- expect(Puppet::FileSystem).to receive(:exist?).with("#{paths[0]}/myservice.sh").and_return(true)
141
+ Puppet::FileSystem.expects(:exist?).with("#{paths[0]}/myservice").returns false
142
+ Puppet::FileSystem.expects(:exist?).with("#{paths[1]}/myservice").returns false
143
+ Puppet::FileSystem.expects(:exist?).with("#{paths[0]}/myservice.sh").returns true
139
144
  expect(provider.initscript).to eq("/service/path/myservice.sh")
140
145
  end
141
146
 
142
147
  it "should fail if the service isn't there" do
143
148
  paths.each do |path|
144
- expect(Puppet::FileSystem).to receive(:exist?).with("#{path}/myservice").and_return(false)
145
- expect(Puppet::FileSystem).to receive(:exist?).with("#{path}/myservice.sh").and_return(false)
149
+ Puppet::FileSystem.expects(:exist?).with("#{path}/myservice").returns false
150
+ Puppet::FileSystem.expects(:exist?).with("#{path}/myservice.sh").returns false
146
151
  end
147
152
  expect { provider.initscript }.to raise_error(Puppet::Error, "Could not find init script for 'myservice'")
148
153
  end
@@ -150,24 +155,23 @@ describe 'Puppet::Type::Service::Provider::Init', unless: Puppet::Util::Platform
150
155
 
151
156
  describe "if the init script is present" do
152
157
  before :each do
153
- allow(File).to receive(:directory?).with("/service/path").and_return(true)
154
- allow(File).to receive(:directory?).with("/alt/service/path").and_return(true)
155
- allow(Puppet::FileSystem).to receive(:exist?).with("/service/path/myservice").and_return(true)
158
+ File.stubs(:directory?).with("/service/path").returns true
159
+ File.stubs(:directory?).with("/alt/service/path").returns true
160
+ Puppet::FileSystem.stubs(:exist?).with("/service/path/myservice").returns true
156
161
  end
157
162
 
158
163
  [:start, :stop, :status, :restart].each do |method|
159
164
  it "should have a #{method} method" do
160
165
  expect(provider).to respond_to(method)
161
166
  end
162
-
163
167
  describe "when running #{method}" do
164
168
  before :each do
165
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
169
+ $CHILD_STATUS.stubs(:exitstatus).returns(0)
166
170
  end
167
171
 
168
172
  it "should use any provided explicit command" do
169
173
  resource[method] = "/user/specified/command"
170
- expect(provider).to receive(:execute).with(["/user/specified/command"], any_args)
174
+ provider.expects(:execute).with { |command, *args| command == ["/user/specified/command"] }
171
175
 
172
176
  provider.send(method)
173
177
  end
@@ -175,7 +179,7 @@ describe 'Puppet::Type::Service::Provider::Init', unless: Puppet::Util::Platform
175
179
  it "should pass #{method} to the init script when no explicit command is provided" do
176
180
  resource[:hasrestart] = :true
177
181
  resource[:hasstatus] = :true
178
- expect(provider).to receive(:execute).with(["/service/path/myservice", method], any_args)
182
+ provider.expects(:execute).with { |command, *args| command == ["/service/path/myservice",method]}
179
183
 
180
184
  provider.send(method)
181
185
  end
@@ -187,40 +191,35 @@ describe 'Puppet::Type::Service::Provider::Init', unless: Puppet::Util::Platform
187
191
  before :each do
188
192
  resource[:hasstatus] = :true
189
193
  end
190
-
191
194
  it "should execute the command" do
192
- expect(provider).to receive(:texecute).with(:status, ['/service/path/myservice', :status], false).and_return("")
193
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
195
+ provider.expects(:texecute).with(:status, ['/service/path/myservice', :status], false).returns("")
196
+ $CHILD_STATUS.stubs(:exitstatus).returns(0)
194
197
  provider.status
195
198
  end
196
-
197
199
  it "should consider the process running if the command returns 0" do
198
- expect(provider).to receive(:texecute).with(:status, ['/service/path/myservice', :status], false).and_return("")
199
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
200
+ provider.expects(:texecute).with(:status, ['/service/path/myservice', :status], false).returns("")
201
+ $CHILD_STATUS.stubs(:exitstatus).returns(0)
200
202
  expect(provider.status).to eq(:running)
201
203
  end
202
-
203
204
  [-10,-1,1,10].each { |ec|
204
205
  it "should consider the process stopped if the command returns something non-0" do
205
- expect(provider).to receive(:texecute).with(:status, ['/service/path/myservice', :status], false).and_return("")
206
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(ec)
206
+ provider.expects(:texecute).with(:status, ['/service/path/myservice', :status], false).returns("")
207
+ $CHILD_STATUS.stubs(:exitstatus).returns(ec)
207
208
  expect(provider.status).to eq(:stopped)
208
209
  end
209
210
  }
210
211
  end
211
-
212
212
  describe "when hasstatus is not :true" do
213
213
  before :each do
214
214
  resource[:hasstatus] = :false
215
215
  end
216
216
 
217
217
  it "should consider the service :running if it has a pid" do
218
- expect(provider).to receive(:getpid).and_return("1234")
218
+ provider.expects(:getpid).returns "1234"
219
219
  expect(provider.status).to eq(:running)
220
220
  end
221
-
222
221
  it "should consider the service :stopped if it doesn't have a pid" do
223
- expect(provider).to receive(:getpid).and_return(nil)
222
+ provider.expects(:getpid).returns nil
224
223
  expect(provider.status).to eq(:stopped)
225
224
  end
226
225
  end
@@ -232,27 +231,27 @@ describe 'Puppet::Type::Service::Provider::Init', unless: Puppet::Util::Platform
232
231
  end
233
232
 
234
233
  it "should stop and restart the process" do
235
- expect(provider).to receive(:texecute).with(:stop, ['/service/path/myservice', :stop ], true).and_return("")
236
- expect(provider).to receive(:texecute).with(:start, ['/service/path/myservice', :start], true).and_return("")
237
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
234
+ provider.expects(:texecute).with(:stop, ['/service/path/myservice', :stop ], true).returns("")
235
+ provider.expects(:texecute).with(:start,['/service/path/myservice', :start], true).returns("")
236
+ $CHILD_STATUS.stubs(:exitstatus).returns(0)
238
237
  provider.restart
239
238
  end
240
239
  end
241
240
 
242
241
  describe "when starting a service on Solaris" do
243
242
  it "should use ctrun" do
244
- allow(Facter).to receive(:value).with(:osfamily).and_return('Solaris')
245
- expect(provider).to receive(:execute).with('/usr/bin/ctrun -l child /service/path/myservice start', {:failonfail => true, :override_locale => false, :squelch => false, :combine => true}).and_return("")
246
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
243
+ Facter.stubs(:value).with(:osfamily).returns 'Solaris'
244
+ provider.expects(:execute).with('/usr/bin/ctrun -l child /service/path/myservice start', {:failonfail => true, :override_locale => false, :squelch => false, :combine => true}).returns("")
245
+ $CHILD_STATUS.stubs(:exitstatus).returns(0)
247
246
  provider.start
248
247
  end
249
248
  end
250
249
 
251
250
  describe "when starting a service on RedHat" do
252
251
  it "should not use ctrun" do
253
- allow(Facter).to receive(:value).with(:osfamily).and_return('RedHat')
254
- expect(provider).to receive(:execute).with(['/service/path/myservice', :start], {:failonfail => true, :override_locale => false, :squelch => false, :combine => true}).and_return("")
255
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
252
+ Facter.stubs(:value).with(:osfamily).returns 'RedHat'
253
+ provider.expects(:execute).with(['/service/path/myservice', :start], {:failonfail => true, :override_locale => false, :squelch => false, :combine => true}).returns("")
254
+ $CHILD_STATUS.stubs(:exitstatus).returns(0)
256
255
  provider.start
257
256
  end
258
257
  end
@@ -1,3 +1,6 @@
1
+ # Spec Tests for the Launchd provider
2
+ #
3
+
1
4
  require 'spec_helper'
2
5
 
3
6
  describe 'Puppet::Type::Service::Provider::Launchd', unless: Puppet::Util::Platform.jruby? do
@@ -25,23 +28,20 @@ describe 'Puppet::Type::Service::Provider::Launchd', unless: Puppet::Util::Platf
25
28
 
26
29
  describe 'the status of the services' do
27
30
  it "should call the external command 'launchctl list' once" do
28
- expect(provider).to receive(:launchctl).with(:list).and_return(joblabel)
29
- expect(provider).to receive(:jobsearch).and_return({joblabel => "/Library/LaunchDaemons/#{joblabel}"})
31
+ provider.expects(:launchctl).with(:list).returns(joblabel)
32
+ provider.expects(:jobsearch).with(nil).returns({joblabel => "/Library/LaunchDaemons/#{joblabel}"})
30
33
  provider.prefetch({})
31
34
  end
32
-
33
35
  it "should return stopped if not listed in launchctl list output" do
34
- expect(provider).to receive(:launchctl).with(:list).and_return('com.bar.is_running')
35
- expect(provider).to receive(:jobsearch).and_return({'com.bar.is_not_running' => "/Library/LaunchDaemons/com.bar.is_not_running"})
36
- expect(provider.prefetch({}).last.status).to eq(:stopped)
36
+ provider.expects(:launchctl).with(:list).returns('com.bar.is_running')
37
+ provider.expects(:jobsearch).with(nil).returns({'com.bar.is_not_running' => "/Library/LaunchDaemons/com.bar.is_not_running"})
38
+ expect(provider.prefetch({}).last.status).to eq :stopped
37
39
  end
38
-
39
40
  it "should return running if listed in launchctl list output" do
40
- expect(provider).to receive(:launchctl).with(:list).and_return('com.bar.is_running')
41
- expect(provider).to receive(:jobsearch).and_return({'com.bar.is_running' => "/Library/LaunchDaemons/com.bar.is_running"})
42
- expect(provider.prefetch({}).last.status).to eq(:running)
41
+ provider.expects(:launchctl).with(:list).returns('com.bar.is_running')
42
+ provider.expects(:jobsearch).with(nil).returns({'com.bar.is_running' => "/Library/LaunchDaemons/com.bar.is_running"})
43
+ expect(provider.prefetch({}).last.status).to eq :running
43
44
  end
44
-
45
45
  after :each do
46
46
  provider.instance_variable_set(:@job_list, nil)
47
47
  end
@@ -53,20 +53,20 @@ describe 'Puppet::Type::Service::Provider::Launchd', unless: Puppet::Util::Platf
53
53
 
54
54
  it "should use the user-provided status command if present and return running if true" do
55
55
  resource[:status] = '/bin/true'
56
- expect(subject).to receive(:texecute).with(:status, ["/bin/true"], false).and_return(0)
57
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
56
+ subject.expects(:texecute).with(:status, ["/bin/true"], false).returns(0)
57
+ $CHILD_STATUS.stubs(:exitstatus).returns(0)
58
58
  expect(subject.status).to eq(:running)
59
59
  end
60
60
 
61
61
  it "should use the user-provided status command if present and return stopped if false" do
62
62
  resource[:status] = '/bin/false'
63
- expect(subject).to receive(:texecute).with(:status, ["/bin/false"], false).and_return(nil)
64
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(1)
63
+ subject.expects(:texecute).with(:status, ["/bin/false"], false).returns(nil)
64
+ $CHILD_STATUS.stubs(:exitstatus).returns(1)
65
65
  expect(subject.status).to eq(:stopped)
66
66
  end
67
67
 
68
68
  it "should fall back to getpid if no status command is provided" do
69
- expect(subject).to receive(:getpid).and_return(123)
69
+ subject.expects(:getpid).returns(123)
70
70
  expect(subject.status).to eq(:running)
71
71
  end
72
72
  end
@@ -75,26 +75,24 @@ describe 'Puppet::Type::Service::Provider::Launchd', unless: Puppet::Util::Platf
75
75
  [[10, '10.6'], [13, '10.9']].each do |kernel, version|
76
76
  describe "when checking whether the service is enabled on OS X #{version}" do
77
77
  it "should return true if the job plist says disabled is true and the global overrides says disabled is false" do
78
- expect(provider).to receive(:get_os_version).and_return(kernel).at_least(:once)
79
- expect(subject).to receive(:plist_from_label).and_return([joblabel, {"Disabled" => true}])
80
- expect(plistlib).to receive(:read_plist_file).with(launchd_overrides_6_9).and_return({joblabel => {"Disabled" => false}})
81
- expect(FileTest).to receive(:file?).with(launchd_overrides_6_9).and_return(true)
78
+ provider.expects(:get_os_version).returns(kernel).at_least_once
79
+ subject.expects(:plist_from_label).returns([joblabel, {"Disabled" => true}])
80
+ plistlib.expects(:read_plist_file).with(launchd_overrides_6_9).returns({joblabel => {"Disabled" => false}})
81
+ FileTest.expects(:file?).with(launchd_overrides_6_9).returns(true)
82
82
  expect(subject.enabled?).to eq(:true)
83
83
  end
84
-
85
84
  it "should return false if the job plist says disabled is false and the global overrides says disabled is true" do
86
- expect(provider).to receive(:get_os_version).and_return(kernel).at_least(:once)
87
- expect(subject).to receive(:plist_from_label).and_return([joblabel, {"Disabled" => false}])
88
- expect(plistlib).to receive(:read_plist_file).with(launchd_overrides_6_9).and_return({joblabel => {"Disabled" => true}})
89
- expect(FileTest).to receive(:file?).with(launchd_overrides_6_9).and_return(true)
85
+ provider.expects(:get_os_version).returns(kernel).at_least_once
86
+ subject.expects(:plist_from_label).returns([joblabel, {"Disabled" => false}])
87
+ plistlib.expects(:read_plist_file).with(launchd_overrides_6_9).returns({joblabel => {"Disabled" => true}})
88
+ FileTest.expects(:file?).with(launchd_overrides_6_9).returns(true)
90
89
  expect(subject.enabled?).to eq(:false)
91
90
  end
92
-
93
91
  it "should return true if the job plist and the global overrides have no disabled keys" do
94
- expect(provider).to receive(:get_os_version).and_return(kernel).at_least(:once)
95
- expect(subject).to receive(:plist_from_label).and_return([joblabel, {}])
96
- expect(plistlib).to receive(:read_plist_file).with(launchd_overrides_6_9).and_return({})
97
- expect(FileTest).to receive(:file?).with(launchd_overrides_6_9).and_return(true)
92
+ provider.expects(:get_os_version).returns(kernel).at_least_once
93
+ subject.expects(:plist_from_label).returns([joblabel, {}])
94
+ plistlib.expects(:read_plist_file).with(launchd_overrides_6_9).returns({})
95
+ FileTest.expects(:file?).with(launchd_overrides_6_9).returns(true)
98
96
  expect(subject.enabled?).to eq(:true)
99
97
  end
100
98
  end
@@ -102,26 +100,24 @@ describe 'Puppet::Type::Service::Provider::Launchd', unless: Puppet::Util::Platf
102
100
 
103
101
  describe "when checking whether the service is enabled on OS X 10.10" do
104
102
  it "should return true if the job plist says disabled is true and the global overrides says disabled is false" do
105
- expect(provider).to receive(:get_os_version).and_return(14).at_least(:once)
106
- expect(subject).to receive(:plist_from_label).and_return([joblabel, {"Disabled" => true}])
107
- expect(plistlib).to receive(:read_plist_file).with(launchd_overrides_10_).and_return({joblabel => false})
108
- expect(FileTest).to receive(:file?).with(launchd_overrides_10_).and_return(true)
103
+ provider.expects(:get_os_version).returns(14).at_least_once
104
+ subject.expects(:plist_from_label).returns([joblabel, {"Disabled" => true}])
105
+ plistlib.expects(:read_plist_file).with(launchd_overrides_10_).returns({joblabel => false})
106
+ FileTest.expects(:file?).with(launchd_overrides_10_).returns(true)
109
107
  expect(subject.enabled?).to eq(:true)
110
108
  end
111
-
112
109
  it "should return false if the job plist says disabled is false and the global overrides says disabled is true" do
113
- expect(provider).to receive(:get_os_version).and_return(14).at_least(:once)
114
- expect(subject).to receive(:plist_from_label).and_return([joblabel, {"Disabled" => false}])
115
- expect(plistlib).to receive(:read_plist_file).with(launchd_overrides_10_).and_return({joblabel => true})
116
- expect(FileTest).to receive(:file?).with(launchd_overrides_10_).and_return(true)
110
+ provider.expects(:get_os_version).returns(14).at_least_once
111
+ subject.expects(:plist_from_label).returns([joblabel, {"Disabled" => false}])
112
+ plistlib.expects(:read_plist_file).with(launchd_overrides_10_).returns({joblabel => true})
113
+ FileTest.expects(:file?).with(launchd_overrides_10_).returns(true)
117
114
  expect(subject.enabled?).to eq(:false)
118
115
  end
119
-
120
116
  it "should return true if the job plist and the global overrides have no disabled keys" do
121
- expect(provider).to receive(:get_os_version).and_return(14).at_least(:once)
122
- expect(subject).to receive(:plist_from_label).and_return([joblabel, {}])
123
- expect(plistlib).to receive(:read_plist_file).with(launchd_overrides_10_).and_return({})
124
- expect(FileTest).to receive(:file?).with(launchd_overrides_10_).and_return(true)
117
+ provider.expects(:get_os_version).returns(14).at_least_once
118
+ subject.expects(:plist_from_label).returns([joblabel, {}])
119
+ plistlib.expects(:read_plist_file).with(launchd_overrides_10_).returns({})
120
+ FileTest.expects(:file?).with(launchd_overrides_10_).returns(true)
125
121
  expect(subject.enabled?).to eq(:true)
126
122
  end
127
123
  end
@@ -129,51 +125,47 @@ describe 'Puppet::Type::Service::Provider::Launchd', unless: Puppet::Util::Platf
129
125
  describe "when starting the service" do
130
126
  it "should call any explicit 'start' command" do
131
127
  resource[:start] = "/bin/false"
132
- expect(subject).to receive(:texecute).with(:start, ["/bin/false"], true)
128
+ subject.expects(:texecute).with(:start, ["/bin/false"], true)
133
129
  subject.start
134
130
  end
135
131
 
136
132
  it "should look for the relevant plist once" do
137
- expect(subject).to receive(:plist_from_label).and_return([joblabel, {}]).once
138
- expect(subject).to receive(:enabled?).and_return(:true)
139
- expect(subject).to receive(:execute).with([:launchctl, :load, "-w", joblabel])
133
+ subject.expects(:plist_from_label).returns([joblabel, {}]).once
134
+ subject.expects(:enabled?).returns :true
135
+ subject.expects(:execute).with([:launchctl, :load, "-w", joblabel])
140
136
  subject.start
141
137
  end
142
-
143
138
  it "should execute 'launchctl load' once without writing to the plist if the job is enabled" do
144
- expect(subject).to receive(:plist_from_label).and_return([joblabel, {}])
145
- expect(subject).to receive(:enabled?).and_return(:true)
146
- expect(subject).to receive(:execute).with([:launchctl, :load, "-w", joblabel]).once
139
+ subject.expects(:plist_from_label).returns([joblabel, {}])
140
+ subject.expects(:enabled?).returns :true
141
+ subject.expects(:execute).with([:launchctl, :load, "-w", joblabel]).once
147
142
  subject.start
148
143
  end
149
-
150
144
  it "should execute 'launchctl load' with writing to the plist once if the job is disabled" do
151
- expect(subject).to receive(:plist_from_label).and_return([joblabel, {}])
152
- expect(subject).to receive(:enabled?).and_return(:false)
153
- expect(subject).to receive(:execute).with([:launchctl, :load, "-w", joblabel]).once
145
+ subject.expects(:plist_from_label).returns([joblabel, {}])
146
+ subject.expects(:enabled?).returns(:false)
147
+ subject.expects(:execute).with([:launchctl, :load, "-w", joblabel]).once
154
148
  subject.start
155
149
  end
156
-
157
150
  it "should disable the job once if the job is disabled and should be disabled at boot" do
158
151
  resource[:enable] = false
159
- expect(subject).to receive(:plist_from_label).and_return([joblabel, {"Disabled" => true}])
160
- expect(subject).to receive(:enabled?).and_return(:false)
161
- expect(subject).to receive(:execute).with([:launchctl, :load, "-w", joblabel])
162
- expect(subject).to receive(:disable).once
152
+ subject.expects(:plist_from_label).returns([joblabel, {"Disabled" => true}])
153
+ subject.expects(:enabled?).returns :false
154
+ subject.expects(:execute).with([:launchctl, :load, "-w", joblabel])
155
+ subject.expects(:disable).once
163
156
  subject.start
164
157
  end
165
-
166
158
  it "(#2773) should execute 'launchctl load -w' if the job is enabled but stopped" do
167
- expect(subject).to receive(:plist_from_label).and_return([joblabel, {}])
168
- expect(subject).to receive(:enabled?).and_return(:true)
169
- expect(subject).to receive(:status).and_return(:stopped)
170
- expect(subject).to receive(:execute).with([:launchctl, :load, '-w', joblabel])
159
+ subject.expects(:plist_from_label).returns([joblabel, {}])
160
+ subject.expects(:enabled?).returns(:true)
161
+ subject.expects(:status).returns(:stopped)
162
+ subject.expects(:execute).with([:launchctl, :load, '-w', joblabel])
171
163
  subject.start
172
164
  end
173
165
 
174
166
  it "(#16271) Should stop and start the service when a restart is called" do
175
- expect(subject).to receive(:stop)
176
- expect(subject).to receive(:start)
167
+ subject.expects(:stop)
168
+ subject.expects(:start)
177
169
  subject.restart
178
170
  end
179
171
  end
@@ -181,37 +173,34 @@ describe 'Puppet::Type::Service::Provider::Launchd', unless: Puppet::Util::Platf
181
173
  describe "when stopping the service" do
182
174
  it "should call any explicit 'stop' command" do
183
175
  resource[:stop] = "/bin/false"
184
- expect(subject).to receive(:texecute).with(:stop, ["/bin/false"], true)
176
+ subject.expects(:texecute).with(:stop, ["/bin/false"], true)
185
177
  subject.stop
186
178
  end
187
179
 
188
180
  it "should look for the relevant plist once" do
189
- expect(subject).to receive(:plist_from_label).and_return([joblabel, {}]).once
190
- expect(subject).to receive(:enabled?).and_return(:true)
191
- expect(subject).to receive(:execute).with([:launchctl, :unload, '-w', joblabel])
181
+ subject.expects(:plist_from_label).returns([joblabel, {}]).once
182
+ subject.expects(:enabled?).returns :true
183
+ subject.expects(:execute).with([:launchctl, :unload, '-w', joblabel])
192
184
  subject.stop
193
185
  end
194
-
195
186
  it "should execute 'launchctl unload' once without writing to the plist if the job is disabled" do
196
- expect(subject).to receive(:plist_from_label).and_return([joblabel, {}])
197
- expect(subject).to receive(:enabled?).and_return(:false)
198
- expect(subject).to receive(:execute).with([:launchctl, :unload, joblabel]).once
187
+ subject.expects(:plist_from_label).returns([joblabel, {}])
188
+ subject.expects(:enabled?).returns :false
189
+ subject.expects(:execute).with([:launchctl, :unload, joblabel]).once
199
190
  subject.stop
200
191
  end
201
-
202
192
  it "should execute 'launchctl unload' with writing to the plist once if the job is enabled" do
203
- expect(subject).to receive(:plist_from_label).and_return([joblabel, {}])
204
- expect(subject).to receive(:enabled?).and_return(:true)
205
- expect(subject).to receive(:execute).with([:launchctl, :unload, '-w', joblabel]).once
193
+ subject.expects(:plist_from_label).returns([joblabel, {}])
194
+ subject.expects(:enabled?).returns :true
195
+ subject.expects(:execute).with([:launchctl, :unload, '-w', joblabel]).once
206
196
  subject.stop
207
197
  end
208
-
209
198
  it "should enable the job once if the job is enabled and should be enabled at boot" do
210
199
  resource[:enable] = true
211
- expect(subject).to receive(:plist_from_label).and_return([joblabel, {"Disabled" => false}])
212
- expect(subject).to receive(:enabled?).and_return(:true)
213
- expect(subject).to receive(:execute).with([:launchctl, :unload, "-w", joblabel])
214
- expect(subject).to receive(:enable).once
200
+ subject.expects(:plist_from_label).returns([joblabel, {"Disabled" => false}])
201
+ subject.expects(:enabled?).returns :true
202
+ subject.expects(:execute).with([:launchctl, :unload, "-w", joblabel])
203
+ subject.expects(:enable).once
215
204
  subject.stop
216
205
  end
217
206
  end
@@ -219,17 +208,16 @@ describe 'Puppet::Type::Service::Provider::Launchd', unless: Puppet::Util::Platf
219
208
  describe "when enabling the service" do
220
209
  it "should look for the relevant plist once" do ### Do we need this test? Differentiating it?
221
210
  resource[:enable] = true
222
- expect(subject).to receive(:plist_from_label).and_return([joblabel, {}]).once
223
- expect(subject).to receive(:enabled?).and_return(:false)
224
- expect(subject).to receive(:execute).with([:launchctl, :unload, joblabel])
211
+ subject.expects(:plist_from_label).returns([joblabel, {}]).once
212
+ subject.expects(:enabled?).returns :false
213
+ subject.expects(:execute).with([:launchctl, :unload, joblabel])
225
214
  subject.stop
226
215
  end
227
-
228
216
  it "should check if the job is enabled once" do
229
217
  resource[:enable] = true
230
- expect(subject).to receive(:plist_from_label).and_return([joblabel, {}]).once
231
- expect(subject).to receive(:enabled?).once
232
- expect(subject).to receive(:execute).with([:launchctl, :unload, joblabel])
218
+ subject.expects(:plist_from_label).returns([joblabel, {}]).once
219
+ subject.expects(:enabled?).once
220
+ subject.expects(:execute).with([:launchctl, :unload, joblabel])
233
221
  subject.stop
234
222
  end
235
223
  end
@@ -237,9 +225,9 @@ describe 'Puppet::Type::Service::Provider::Launchd', unless: Puppet::Util::Platf
237
225
  describe "when disabling the service" do
238
226
  it "should look for the relevant plist once" do
239
227
  resource[:enable] = false
240
- expect(subject).to receive(:plist_from_label).and_return([joblabel, {}]).once
241
- expect(subject).to receive(:enabled?).and_return(:true)
242
- expect(subject).to receive(:execute).with([:launchctl, :unload, '-w', joblabel])
228
+ subject.expects(:plist_from_label).returns([joblabel, {}]).once
229
+ subject.expects(:enabled?).returns :true
230
+ subject.expects(:execute).with([:launchctl, :unload, '-w', joblabel])
243
231
  subject.stop
244
232
  end
245
233
  end
@@ -248,9 +236,9 @@ describe 'Puppet::Type::Service::Provider::Launchd', unless: Puppet::Util::Platf
248
236
  describe "when enabling the service on OS X #{version}" do
249
237
  it "should write to the global launchd overrides file once" do
250
238
  resource[:enable] = true
251
- expect(provider).to receive(:get_os_version).and_return(kernel).at_least(:once)
252
- expect(plistlib).to receive(:read_plist_file).with(launchd_overrides_6_9).and_return({})
253
- expect(plistlib).to receive(:write_plist_file).with(hash_including(resource[:name] => {'Disabled' => false}), launchd_overrides_6_9).once
239
+ provider.expects(:get_os_version).returns(kernel).at_least_once
240
+ plistlib.expects(:read_plist_file).with(launchd_overrides_6_9).returns({})
241
+ plistlib.expects(:write_plist_file).with(has_entry(resource[:name], {'Disabled' => false}), launchd_overrides_6_9).once
254
242
  subject.enable
255
243
  end
256
244
  end
@@ -258,9 +246,9 @@ describe 'Puppet::Type::Service::Provider::Launchd', unless: Puppet::Util::Platf
258
246
  describe "when disabling the service on OS X #{version}" do
259
247
  it "should write to the global launchd overrides file once" do
260
248
  resource[:enable] = false
261
- expect(provider).to receive(:get_os_version).and_return(kernel).at_least(:once)
262
- expect(plistlib).to receive(:read_plist_file).with(launchd_overrides_6_9).and_return({})
263
- expect(plistlib).to receive(:write_plist_file).with(hash_including(resource[:name] => {'Disabled' => true}), launchd_overrides_6_9).once
249
+ provider.expects(:get_os_version).returns(kernel).at_least_once
250
+ plistlib.expects(:read_plist_file).with(launchd_overrides_6_9).returns({})
251
+ plistlib.expects(:write_plist_file).with(has_entry(resource[:name], {'Disabled' => true}), launchd_overrides_6_9).once
264
252
  subject.disable
265
253
  end
266
254
  end
@@ -269,9 +257,9 @@ describe 'Puppet::Type::Service::Provider::Launchd', unless: Puppet::Util::Platf
269
257
  describe "when enabling the service on OS X 10.10" do
270
258
  it "should write to the global launchd overrides file once" do
271
259
  resource[:enable] = true
272
- expect(provider).to receive(:get_os_version).and_return(14).at_least(:once)
273
- expect(plistlib).to receive(:read_plist_file).with(launchd_overrides_10_).and_return({})
274
- expect(plistlib).to receive(:write_plist_file).with(hash_including(resource[:name] => false), launchd_overrides_10_).once
260
+ provider.expects(:get_os_version).returns(14).at_least_once
261
+ plistlib.expects(:read_plist_file).with(launchd_overrides_10_).returns({})
262
+ plistlib.expects(:write_plist_file).with(has_entry(resource[:name], false), launchd_overrides_10_).once
275
263
  subject.enable
276
264
  end
277
265
  end
@@ -279,9 +267,9 @@ describe 'Puppet::Type::Service::Provider::Launchd', unless: Puppet::Util::Platf
279
267
  describe "when disabling the service on OS X 10.10" do
280
268
  it "should write to the global launchd overrides file once" do
281
269
  resource[:enable] = false
282
- expect(provider).to receive(:get_os_version).and_return(14).at_least(:once)
283
- expect(plistlib).to receive(:read_plist_file).with(launchd_overrides_10_).and_return({})
284
- expect(plistlib).to receive(:write_plist_file).with(hash_including(resource[:name] => true), launchd_overrides_10_).once
270
+ provider.expects(:get_os_version).returns(14).at_least_once
271
+ plistlib.expects(:read_plist_file).with(launchd_overrides_10_).returns({})
272
+ plistlib.expects(:write_plist_file).with(has_entry(resource[:name], true), launchd_overrides_10_).once
285
273
  subject.disable
286
274
  end
287
275
  end
@@ -293,7 +281,6 @@ describe 'Puppet::Type::Service::Provider::Launchd', unless: Puppet::Util::Platf
293
281
  provider.send(:remove_instance_variable, :@label_to_path_map)
294
282
  end
295
283
  end
296
-
297
284
  describe "when encountering malformed plists" do
298
285
  let(:plist_without_label) do
299
286
  {
@@ -304,36 +291,31 @@ describe 'Puppet::Type::Service::Provider::Launchd', unless: Puppet::Util::Platf
304
291
  let(:binary_plist_path) { '/Library/LaunchAgents/org.binary.plist' }
305
292
 
306
293
  it "[17624] should warn that the plist in question is being skipped" do
307
- expect(provider).to receive(:launchd_paths).and_return(['/Library/LaunchAgents'])
308
- expect(provider).to receive(:return_globbed_list_of_file_paths).with('/Library/LaunchAgents').and_return([busted_plist_path])
309
- expect(plistlib).to receive(:read_plist_file).with(busted_plist_path).and_return(plist_without_label)
310
- expect(Puppet).to receive(:debug).with("Reading launchd plist #{busted_plist_path}")
311
- expect(Puppet).to receive(:debug).with("The #{busted_plist_path} plist does not contain a 'label' key; Puppet is skipping it")
294
+ provider.expects(:launchd_paths).returns(['/Library/LaunchAgents'])
295
+ provider.expects(:return_globbed_list_of_file_paths).with('/Library/LaunchAgents').returns([busted_plist_path])
296
+ plistlib.expects(:read_plist_file).with(busted_plist_path).returns(plist_without_label)
297
+ Puppet.expects(:debug).with("Reading launchd plist #{busted_plist_path}")
298
+ Puppet.expects(:debug).with("The #{busted_plist_path} plist does not contain a 'label' key; Puppet is skipping it")
312
299
  provider.make_label_to_path_map
313
300
  end
314
301
  end
315
-
316
302
  it "should return the cached value when available" do
317
303
  provider.instance_variable_set(:@label_to_path_map, {'xx'=>'yy'})
318
304
  expect(provider.make_label_to_path_map).to eq({'xx'=>'yy'})
319
305
  end
320
-
321
306
  describe "when successful" do
322
307
  let(:launchd_dir) { '/Library/LaunchAgents' }
323
308
  let(:plist) { launchd_dir + '/foo.bar.service.plist' }
324
309
  let(:label) { 'foo.bar.service' }
325
-
326
310
  before do
327
311
  provider.instance_variable_set(:@label_to_path_map, nil)
328
- expect(provider).to receive(:launchd_paths).and_return([launchd_dir])
329
- expect(provider).to receive(:return_globbed_list_of_file_paths).with(launchd_dir).and_return([plist])
330
- expect(plistlib).to receive(:read_plist_file).with(plist).and_return({'Label'=>'foo.bar.service'})
312
+ provider.expects(:launchd_paths).returns([launchd_dir])
313
+ provider.expects(:return_globbed_list_of_file_paths).with(launchd_dir).returns([plist])
314
+ plistlib.expects(:read_plist_file).with(plist).returns({'Label'=>'foo.bar.service'})
331
315
  end
332
-
333
316
  it "should read the plists and return their contents" do
334
317
  expect(provider.make_label_to_path_map).to eq({label=>plist})
335
318
  end
336
-
337
319
  it "should re-read the plists and return their contents when refreshed" do
338
320
  provider.instance_variable_set(:@label_to_path_map, {'xx'=>'yy'})
339
321
  expect(provider.make_label_to_path_map(true)).to eq({label=>plist})
@@ -344,46 +326,42 @@ describe 'Puppet::Type::Service::Provider::Launchd', unless: Puppet::Util::Platf
344
326
  describe "jobsearch" do
345
327
  let(:map) { {"org.mozilla.puppet" => "/path/to/puppet.plist",
346
328
  "org.mozilla.python" => "/path/to/python.plist"} }
347
-
348
- it "returns the entire map with no args" do
349
- expect(provider).to receive(:make_label_to_path_map).and_return(map)
329
+ it "returns the entire map with no args" do
330
+ provider.expects(:make_label_to_path_map).returns(map)
350
331
  expect(provider.jobsearch).to eq(map)
351
332
  end
352
-
353
333
  it "returns a singleton hash when given a label" do
354
- expect(provider).to receive(:make_label_to_path_map).and_return(map)
334
+ provider.expects(:make_label_to_path_map).returns(map)
355
335
  expect(provider.jobsearch("org.mozilla.puppet")).to eq({ "org.mozilla.puppet" => "/path/to/puppet.plist" })
356
336
  end
357
-
358
337
  it "refreshes the label_to_path_map when label is not found" do
359
- expect(provider).to receive(:make_label_to_path_map).and_return(map)
338
+ provider.expects(:make_label_to_path_map).with().returns({})
339
+ provider.expects(:make_label_to_path_map).with(true).returns(map)
360
340
  expect(provider.jobsearch("org.mozilla.puppet")).to eq({ "org.mozilla.puppet" => "/path/to/puppet.plist" })
361
341
  end
362
-
363
342
  it "raises Puppet::Error when the label is still not found" do
364
- allow(provider).to receive(:make_label_to_path_map).and_return(map)
343
+ provider.expects(:make_label_to_path_map).with().returns(map)
344
+ provider.expects(:make_label_to_path_map).with(true).returns(map)
365
345
  expect { provider.jobsearch("NOSUCH") }.to raise_error(Puppet::Error)
366
346
  end
367
347
  end
368
348
 
369
349
  describe "read_overrides" do
370
350
  before do
371
- allow(Kernel).to receive(:sleep)
351
+ Kernel.stubs(:sleep)
372
352
  end
373
-
374
353
  it "should read overrides" do
375
- expect(provider).to receive(:read_plist).once.and_return({})
354
+ provider.expects(:read_plist).once.returns({})
376
355
  expect(provider.read_overrides).to eq({})
377
356
  end
378
-
379
357
  it "should retry if read_plist fails" do
380
- allow(provider).to receive(:read_plist).and_return({}, nil)
358
+ provider.expects(:read_plist).once.returns({})
359
+ provider.expects(:read_plist).once.returns(nil)
381
360
  expect(provider.read_overrides).to eq({})
382
361
  end
383
-
384
362
  it "raises Puppet::Error after 20 attempts" do
385
- expect(provider).to receive(:read_plist).exactly(20).times().and_return(nil)
363
+ provider.expects(:read_plist).times(20).returns(nil)
386
364
  expect { provider.read_overrides }.to raise_error(Puppet::Error)
387
365
  end
388
- end
366
+ end
389
367
  end