puppet 6.14.0-x64-mingw32 → 6.19.0-x64-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 (496) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +2 -7
  3. data/Gemfile +4 -2
  4. data/Gemfile.lock +36 -34
  5. data/README.md +3 -4
  6. data/Rakefile +4 -12
  7. data/ext/windows/service/daemon.rb +3 -3
  8. data/lib/puppet.rb +33 -9
  9. data/lib/puppet/agent.rb +20 -14
  10. data/lib/puppet/agent/locker.rb +0 -7
  11. data/lib/puppet/application/agent.rb +25 -9
  12. data/lib/puppet/application/apply.rb +18 -20
  13. data/lib/puppet/application/device.rb +1 -1
  14. data/lib/puppet/application/doc.rb +1 -1
  15. data/lib/puppet/application/filebucket.rb +5 -14
  16. data/lib/puppet/application/lookup.rb +16 -4
  17. data/lib/puppet/application/plugin.rb +1 -0
  18. data/lib/puppet/application/ssl.rb +3 -3
  19. data/lib/puppet/configurer.rb +68 -24
  20. data/lib/puppet/configurer/downloader.rb +31 -10
  21. data/lib/puppet/configurer/plugin_handler.rb +1 -1
  22. data/lib/puppet/confine.rb +2 -2
  23. data/lib/puppet/confine/any.rb +1 -1
  24. data/lib/puppet/context/trusted_information.rb +14 -8
  25. data/lib/puppet/daemon.rb +13 -27
  26. data/lib/puppet/defaults.rb +141 -41
  27. data/lib/puppet/environments.rb +55 -15
  28. data/lib/puppet/face/catalog.rb +1 -1
  29. data/lib/puppet/face/config.rb +46 -16
  30. data/lib/puppet/face/facts.rb +1 -1
  31. data/lib/puppet/face/help.rb +29 -3
  32. data/lib/puppet/face/module/search.rb +5 -0
  33. data/lib/puppet/face/node.rb +3 -3
  34. data/lib/puppet/face/node/clean.rb +2 -2
  35. data/lib/puppet/face/plugin.rb +2 -2
  36. data/lib/puppet/face/status.rb +1 -1
  37. data/lib/puppet/feature/base.rb +1 -1
  38. data/lib/puppet/file_bucket/dipper.rb +1 -1
  39. data/lib/puppet/file_serving/http_metadata.rb +14 -2
  40. data/lib/puppet/file_serving/metadata.rb +4 -1
  41. data/lib/puppet/file_serving/mount/locales.rb +1 -2
  42. data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
  43. data/lib/puppet/file_serving/mount/plugins.rb +1 -2
  44. data/lib/puppet/file_serving/terminus_selector.rb +7 -8
  45. data/lib/puppet/file_system/file_impl.rb +17 -13
  46. data/lib/puppet/file_system/uniquefile.rb +12 -16
  47. data/lib/puppet/forge.rb +1 -1
  48. data/lib/puppet/forge/cache.rb +1 -1
  49. data/lib/puppet/forge/repository.rb +4 -7
  50. data/lib/puppet/functions/call.rb +1 -1
  51. data/lib/puppet/functions/filter.rb +1 -0
  52. data/lib/puppet/functions/lstrip.rb +4 -4
  53. data/lib/puppet/functions/new.rb +8 -3
  54. data/lib/puppet/functions/reduce.rb +2 -4
  55. data/lib/puppet/functions/reverse_each.rb +1 -1
  56. data/lib/puppet/functions/rstrip.rb +4 -4
  57. data/lib/puppet/functions/step.rb +1 -1
  58. data/lib/puppet/functions/strip.rb +4 -4
  59. data/lib/puppet/gettext/config.rb +5 -5
  60. data/lib/puppet/gettext/module_translations.rb +4 -4
  61. data/lib/puppet/http.rb +3 -0
  62. data/lib/puppet/http/client.rb +215 -60
  63. data/lib/puppet/http/external_client.rb +90 -0
  64. data/lib/puppet/http/redirector.rb +43 -7
  65. data/lib/puppet/http/resolver.rb +43 -3
  66. data/lib/puppet/http/resolver/server_list.rb +66 -24
  67. data/lib/puppet/http/resolver/settings.rb +21 -1
  68. data/lib/puppet/http/resolver/srv.rb +28 -2
  69. data/lib/puppet/http/response.rb +82 -1
  70. data/lib/puppet/http/retry_after_handler.rb +39 -0
  71. data/lib/puppet/http/service.rb +70 -2
  72. data/lib/puppet/http/service/ca.rb +71 -9
  73. data/lib/puppet/http/service/compiler.rb +214 -12
  74. data/lib/puppet/http/service/file_server.rb +106 -5
  75. data/lib/puppet/http/service/puppetserver.rb +39 -0
  76. data/lib/puppet/http/service/report.rb +36 -3
  77. data/lib/puppet/http/session.rb +60 -8
  78. data/lib/puppet/indirector.rb +1 -1
  79. data/lib/puppet/indirector/catalog/compiler.rb +1 -1
  80. data/lib/puppet/indirector/catalog/rest.rb +2 -1
  81. data/lib/puppet/indirector/exec.rb +1 -1
  82. data/lib/puppet/indirector/facts/facter.rb +3 -3
  83. data/lib/puppet/indirector/facts/rest.rb +2 -1
  84. data/lib/puppet/indirector/facts/yaml.rb +1 -1
  85. data/lib/puppet/indirector/file_bucket_file/rest.rb +48 -0
  86. data/lib/puppet/indirector/file_content/http.rb +5 -0
  87. data/lib/puppet/indirector/file_content/rest.rb +1 -1
  88. data/lib/puppet/indirector/file_metadata/http.rb +28 -8
  89. data/lib/puppet/indirector/file_metadata/rest.rb +6 -4
  90. data/lib/puppet/indirector/hiera.rb +4 -0
  91. data/lib/puppet/indirector/indirection.rb +1 -1
  92. data/lib/puppet/indirector/json.rb +1 -1
  93. data/lib/puppet/indirector/msgpack.rb +1 -1
  94. data/lib/puppet/indirector/node/rest.rb +2 -1
  95. data/lib/puppet/indirector/report/processor.rb +2 -2
  96. data/lib/puppet/indirector/report/yaml.rb +23 -0
  97. data/lib/puppet/indirector/request.rb +5 -5
  98. data/lib/puppet/indirector/rest.rb +7 -1
  99. data/lib/puppet/indirector/status/rest.rb +2 -1
  100. data/lib/puppet/indirector/yaml.rb +1 -1
  101. data/lib/puppet/metatype/manager.rb +80 -80
  102. data/lib/puppet/module.rb +1 -2
  103. data/lib/puppet/network/format_support.rb +2 -2
  104. data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
  105. data/lib/puppet/network/http/api/master/v3/environment.rb +3 -0
  106. data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
  107. data/lib/puppet/network/http/base_pool.rb +6 -1
  108. data/lib/puppet/network/http/compression.rb +7 -0
  109. data/lib/puppet/network/http/connection.rb +2 -0
  110. data/lib/puppet/network/http/connection_adapter.rb +184 -0
  111. data/lib/puppet/network/http/nocache_pool.rb +1 -0
  112. data/lib/puppet/network/http/pool.rb +2 -4
  113. data/lib/puppet/network/http/route.rb +2 -2
  114. data/lib/puppet/network/http_pool.rb +2 -1
  115. data/lib/puppet/node/environment.rb +22 -5
  116. data/lib/puppet/node/facts.rb +17 -0
  117. data/lib/puppet/pal/catalog_compiler.rb +5 -0
  118. data/lib/puppet/pal/pal_impl.rb +30 -31
  119. data/lib/puppet/parameter.rb +1 -1
  120. data/lib/puppet/parser/ast/leaf.rb +5 -5
  121. data/lib/puppet/parser/ast/pops_bridge.rb +0 -4
  122. data/lib/puppet/parser/compiler.rb +43 -33
  123. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -0
  124. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +2 -0
  125. data/lib/puppet/parser/environment_compiler.rb +4 -1
  126. data/lib/puppet/parser/functions.rb +18 -9
  127. data/lib/puppet/parser/functions/create_resources.rb +11 -7
  128. data/lib/puppet/parser/functions/filter.rb +1 -0
  129. data/lib/puppet/parser/resource.rb +3 -2
  130. data/lib/puppet/parser/resource/param.rb +6 -0
  131. data/lib/puppet/parser/type_loader.rb +2 -2
  132. data/lib/puppet/pops/adaptable.rb +7 -13
  133. data/lib/puppet/pops/adapters.rb +8 -4
  134. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
  135. data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -5
  136. data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
  137. data/lib/puppet/pops/issues.rb +5 -0
  138. data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
  139. data/lib/puppet/pops/loaders.rb +24 -15
  140. data/lib/puppet/pops/lookup/context.rb +1 -1
  141. data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
  142. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -0
  143. data/lib/puppet/pops/types/iterable.rb +34 -8
  144. data/lib/puppet/pops/types/p_meta_type.rb +1 -1
  145. data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
  146. data/lib/puppet/pops/validation/checker4_0.rb +29 -15
  147. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
  148. data/lib/puppet/provider/file/windows.rb +1 -1
  149. data/lib/puppet/provider/group/windows_adsi.rb +3 -3
  150. data/lib/puppet/provider/package/aix.rb +17 -2
  151. data/lib/puppet/provider/package/apt.rb +98 -1
  152. data/lib/puppet/provider/package/aptitude.rb +1 -1
  153. data/lib/puppet/provider/package/dnfmodule.rb +61 -14
  154. data/lib/puppet/provider/package/dpkg.rb +1 -1
  155. data/lib/puppet/provider/package/gem.rb +45 -9
  156. data/lib/puppet/provider/package/pacman.rb +2 -5
  157. data/lib/puppet/provider/package/pip.rb +143 -48
  158. data/lib/puppet/provider/package/pip2.rb +17 -0
  159. data/lib/puppet/provider/package/pip3.rb +0 -2
  160. data/lib/puppet/provider/package/pkgdmg.rb +1 -1
  161. data/lib/puppet/provider/package/pkgng.rb +16 -4
  162. data/lib/puppet/provider/package/portage.rb +2 -2
  163. data/lib/puppet/provider/package/puppet_gem.rb +11 -2
  164. data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
  165. data/lib/puppet/provider/package/rpm.rb +6 -213
  166. data/lib/puppet/provider/package/yum.rb +101 -20
  167. data/lib/puppet/provider/package/zypper.rb +62 -1
  168. data/lib/puppet/provider/service/systemd.rb +22 -4
  169. data/lib/puppet/provider/service/windows.rb +23 -7
  170. data/lib/puppet/provider/user/aix.rb +1 -1
  171. data/lib/puppet/provider/user/user_role_add.rb +1 -1
  172. data/lib/puppet/provider/user/useradd.rb +16 -5
  173. data/lib/puppet/provider/user/windows_adsi.rb +18 -1
  174. data/lib/puppet/reports/http.rb +15 -9
  175. data/lib/puppet/resource.rb +2 -1
  176. data/lib/puppet/resource/type.rb +10 -1
  177. data/lib/puppet/resource/type_collection.rb +20 -16
  178. data/lib/puppet/rest/route.rb +2 -2
  179. data/lib/puppet/runtime.rb +25 -2
  180. data/lib/puppet/settings.rb +20 -6
  181. data/lib/puppet/ssl.rb +1 -0
  182. data/lib/puppet/ssl/host.rb +4 -4
  183. data/lib/puppet/ssl/oids.rb +1 -0
  184. data/lib/puppet/ssl/ssl_context.rb +2 -2
  185. data/lib/puppet/ssl/ssl_provider.rb +20 -1
  186. data/lib/puppet/ssl/state_machine.rb +79 -37
  187. data/lib/puppet/ssl/validator/default_validator.rb +1 -1
  188. data/lib/puppet/ssl/verifier_adapter.rb +9 -1
  189. data/lib/puppet/test/test_helper.rb +19 -14
  190. data/lib/puppet/transaction.rb +2 -2
  191. data/lib/puppet/transaction/persistence.rb +1 -1
  192. data/lib/puppet/transaction/report.rb +14 -10
  193. data/lib/puppet/trusted_external.rb +29 -1
  194. data/lib/puppet/type.rb +21 -8
  195. data/lib/puppet/type/file.rb +40 -15
  196. data/lib/puppet/type/file/checksum.rb +4 -4
  197. data/lib/puppet/type/file/source.rb +35 -13
  198. data/lib/puppet/type/filebucket.rb +1 -1
  199. data/lib/puppet/type/notify.rb +2 -2
  200. data/lib/puppet/type/package.rb +41 -3
  201. data/lib/puppet/type/service.rb +59 -8
  202. data/lib/puppet/type/user.rb +19 -29
  203. data/lib/puppet/util.rb +41 -3
  204. data/lib/puppet/util/at_fork.rb +1 -1
  205. data/lib/puppet/util/autoload.rb +13 -25
  206. data/lib/puppet/util/character_encoding.rb +9 -5
  207. data/lib/puppet/util/checksums.rb +19 -4
  208. data/lib/puppet/util/connection.rb +8 -8
  209. data/lib/puppet/util/execution.rb +2 -2
  210. data/lib/puppet/util/fileparsing.rb +2 -2
  211. data/lib/puppet/util/instance_loader.rb +14 -10
  212. data/lib/puppet/util/log/destinations.rb +1 -10
  213. data/lib/puppet/util/package/version/debian.rb +175 -0
  214. data/lib/puppet/util/package/version/gem.rb +15 -0
  215. data/lib/puppet/util/package/version/pip.rb +167 -0
  216. data/lib/puppet/util/package/version/range.rb +53 -0
  217. data/lib/puppet/util/package/version/range/eq.rb +14 -0
  218. data/lib/puppet/util/package/version/range/gt.rb +14 -0
  219. data/lib/puppet/util/package/version/range/gt_eq.rb +14 -0
  220. data/lib/puppet/util/package/version/range/lt.rb +14 -0
  221. data/lib/puppet/util/package/version/range/lt_eq.rb +14 -0
  222. data/lib/puppet/util/package/version/range/min_max.rb +21 -0
  223. data/lib/puppet/util/package/version/range/simple.rb +11 -0
  224. data/lib/puppet/util/package/version/rpm.rb +73 -0
  225. data/lib/puppet/util/pidlock.rb +13 -7
  226. data/lib/puppet/util/platform.rb +5 -0
  227. data/lib/puppet/util/provider_features.rb +1 -1
  228. data/lib/puppet/util/reference.rb +1 -1
  229. data/lib/puppet/util/rpm_compare.rb +193 -0
  230. data/lib/puppet/util/run_mode.rb +5 -1
  231. data/lib/puppet/util/windows.rb +1 -0
  232. data/lib/puppet/util/windows/adsi.rb +2 -2
  233. data/lib/puppet/util/windows/api_types.rb +60 -33
  234. data/lib/puppet/util/windows/eventlog.rb +1 -6
  235. data/lib/puppet/util/windows/monkey_patches/dir.rb +40 -0
  236. data/lib/puppet/util/windows/principal.rb +8 -6
  237. data/lib/puppet/util/windows/process.rb +15 -14
  238. data/lib/puppet/util/windows/registry.rb +11 -11
  239. data/lib/puppet/util/windows/security.rb +5 -4
  240. data/lib/puppet/util/windows/service.rb +43 -26
  241. data/lib/puppet/util/windows/sid.rb +3 -3
  242. data/lib/puppet/util/windows/user.rb +242 -8
  243. data/lib/puppet/version.rb +1 -1
  244. data/locales/puppet.pot +627 -507
  245. data/man/man5/puppet.conf.5 +93 -20
  246. data/man/man8/puppet-agent.8 +7 -4
  247. data/man/man8/puppet-apply.8 +1 -1
  248. data/man/man8/puppet-catalog.8 +1 -1
  249. data/man/man8/puppet-config.8 +6 -6
  250. data/man/man8/puppet-describe.8 +1 -1
  251. data/man/man8/puppet-device.8 +1 -1
  252. data/man/man8/puppet-doc.8 +1 -1
  253. data/man/man8/puppet-epp.8 +1 -1
  254. data/man/man8/puppet-facts.8 +1 -1
  255. data/man/man8/puppet-filebucket.8 +1 -1
  256. data/man/man8/puppet-generate.8 +1 -1
  257. data/man/man8/puppet-help.8 +6 -3
  258. data/man/man8/puppet-key.8 +1 -1
  259. data/man/man8/puppet-lookup.8 +2 -2
  260. data/man/man8/puppet-man.8 +1 -1
  261. data/man/man8/puppet-module.8 +4 -1
  262. data/man/man8/puppet-node.8 +4 -4
  263. data/man/man8/puppet-parser.8 +1 -1
  264. data/man/man8/puppet-plugin.8 +1 -1
  265. data/man/man8/puppet-report.8 +1 -1
  266. data/man/man8/puppet-resource.8 +1 -1
  267. data/man/man8/puppet-script.8 +1 -1
  268. data/man/man8/puppet-ssl.8 +1 -1
  269. data/man/man8/puppet-status.8 +2 -2
  270. data/man/man8/puppet.8 +2 -2
  271. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
  272. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
  273. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +67 -0
  274. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +48 -0
  275. data/spec/fixtures/ssl/unknown-ca-key.pem +67 -0
  276. data/spec/fixtures/ssl/unknown-ca.pem +59 -0
  277. data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
  278. data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
  279. data/spec/fixtures/unit/provider/package/dnfmodule/{dnf-module-list-installed.txt → dnf-module-list.txt} +8 -0
  280. data/spec/fixtures/unit/provider/package/pkgng/pkg.version +2 -0
  281. data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
  282. data/spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt +9 -0
  283. data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +13 -0
  284. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +9 -0
  285. data/spec/integration/application/agent_spec.rb +479 -0
  286. data/spec/integration/application/apply_spec.rb +279 -150
  287. data/spec/integration/application/config_spec.rb +74 -0
  288. data/spec/integration/application/doc_spec.rb +16 -6
  289. data/spec/integration/application/filebucket_spec.rb +239 -0
  290. data/spec/integration/application/help_spec.rb +42 -0
  291. data/spec/integration/application/lookup_spec.rb +13 -0
  292. data/spec/integration/application/module_spec.rb +68 -0
  293. data/spec/integration/application/plugin_spec.rb +123 -0
  294. data/spec/integration/configurer_spec.rb +14 -0
  295. data/spec/integration/data_binding_spec.rb +82 -0
  296. data/spec/integration/defaults_spec.rb +27 -3
  297. data/spec/integration/directory_environments_spec.rb +17 -17
  298. data/spec/integration/http/client_spec.rb +39 -40
  299. data/spec/integration/indirector/facts/facter_spec.rb +8 -6
  300. data/spec/integration/indirector/report/yaml.rb +83 -0
  301. data/spec/integration/network/http_pool_spec.rb +84 -19
  302. data/spec/integration/node/environment_spec.rb +15 -0
  303. data/spec/integration/parser/compiler_spec.rb +11 -0
  304. data/spec/integration/type/file_spec.rb +1 -1
  305. data/spec/integration/util/execution_spec.rb +22 -0
  306. data/spec/integration/util/windows/adsi_spec.rb +8 -3
  307. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +11 -0
  308. data/spec/integration/util/windows/process_spec.rb +26 -32
  309. data/spec/integration/util/windows/registry_spec.rb +7 -7
  310. data/spec/integration/util/windows/user_spec.rb +47 -5
  311. data/spec/integration/util_spec.rb +7 -33
  312. data/spec/lib/puppet/test_ca.rb +2 -2
  313. data/spec/lib/puppet_spec/https.rb +16 -7
  314. data/spec/lib/puppet_spec/matchers.rb +0 -80
  315. data/spec/lib/puppet_spec/puppetserver.rb +127 -0
  316. data/spec/shared_contexts/https.rb +29 -0
  317. data/spec/shared_contexts/types_setup.rb +2 -0
  318. data/spec/unit/agent_spec.rb +80 -26
  319. data/spec/unit/application/agent_spec.rb +12 -9
  320. data/spec/unit/application/device_spec.rb +2 -2
  321. data/spec/unit/application/doc_spec.rb +2 -2
  322. data/spec/unit/application/face_base_spec.rb +6 -4
  323. data/spec/unit/application/facts_spec.rb +41 -10
  324. data/spec/unit/application/filebucket_spec.rb +22 -2
  325. data/spec/unit/application/man_spec.rb +52 -0
  326. data/spec/unit/application/resource_spec.rb +3 -1
  327. data/spec/unit/application/ssl_spec.rb +15 -2
  328. data/spec/unit/application_spec.rb +9 -4
  329. data/spec/unit/configurer/downloader_spec.rb +10 -0
  330. data/spec/unit/configurer/fact_handler_spec.rb +4 -4
  331. data/spec/unit/configurer_spec.rb +87 -38
  332. data/spec/unit/confine_spec.rb +2 -1
  333. data/spec/unit/context/trusted_information_spec.rb +25 -2
  334. data/spec/unit/daemon_spec.rb +5 -64
  335. data/spec/unit/defaults_spec.rb +24 -1
  336. data/spec/unit/environments_spec.rb +107 -32
  337. data/spec/unit/face/config_spec.rb +59 -1
  338. data/spec/unit/face/module/search_spec.rb +17 -0
  339. data/spec/unit/face/node_spec.rb +2 -2
  340. data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
  341. data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
  342. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
  343. data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
  344. data/spec/unit/file_serving/terminus_selector_spec.rb +45 -26
  345. data/spec/unit/file_system/uniquefile_spec.rb +29 -0
  346. data/spec/unit/file_system_spec.rb +11 -2
  347. data/spec/unit/http/client_spec.rb +173 -59
  348. data/spec/unit/http/external_client_spec.rb +201 -0
  349. data/spec/unit/http/resolver_spec.rb +44 -5
  350. data/spec/unit/http/response_spec.rb +6 -0
  351. data/spec/unit/http/service/ca_spec.rb +27 -5
  352. data/spec/unit/http/service/compiler_spec.rb +186 -9
  353. data/spec/unit/http/service/file_server_spec.rb +37 -6
  354. data/spec/unit/http/service/puppetserver_spec.rb +82 -0
  355. data/spec/unit/http/service/report_spec.rb +5 -4
  356. data/spec/unit/http/service_spec.rb +3 -4
  357. data/spec/unit/http/session_spec.rb +48 -12
  358. data/spec/unit/indirector/catalog/compiler_spec.rb +1 -0
  359. data/spec/unit/indirector/catalog/json_spec.rb +1 -1
  360. data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
  361. data/spec/unit/indirector/facts/rest_spec.rb +1 -1
  362. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +82 -2
  363. data/spec/unit/indirector/file_metadata/http_spec.rb +194 -0
  364. data/spec/unit/indirector/file_metadata/rest_spec.rb +15 -14
  365. data/spec/unit/indirector/json_spec.rb +8 -8
  366. data/spec/unit/indirector/msgpack_spec.rb +8 -8
  367. data/spec/unit/indirector/node/rest_spec.rb +1 -1
  368. data/spec/unit/indirector/request_spec.rb +5 -5
  369. data/spec/unit/indirector/rest_spec.rb +14 -1
  370. data/spec/unit/indirector/status/rest_spec.rb +1 -1
  371. data/spec/unit/indirector/yaml_spec.rb +7 -7
  372. data/spec/unit/interface_spec.rb +3 -3
  373. data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
  374. data/spec/unit/network/format_support_spec.rb +3 -2
  375. data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -1
  376. data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
  377. data/spec/unit/network/http/connection_spec.rb +552 -190
  378. data/spec/unit/network/http/nocache_pool_spec.rb +22 -0
  379. data/spec/unit/network/http/pool_spec.rb +3 -3
  380. data/spec/unit/network/http_pool_spec.rb +63 -57
  381. data/spec/unit/network/http_spec.rb +1 -1
  382. data/spec/unit/node/environment_spec.rb +33 -0
  383. data/spec/unit/parser/ast/block_expression_spec.rb +1 -1
  384. data/spec/unit/parser/environment_compiler_spec.rb +7 -0
  385. data/spec/unit/parser/scope_spec.rb +1 -1
  386. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +15 -1
  387. data/spec/unit/pops/loaders/loaders_spec.rb +71 -1
  388. data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
  389. data/spec/unit/pops/types/type_calculator_spec.rb +1 -11
  390. data/spec/unit/provider/exec_spec.rb +4 -3
  391. data/spec/unit/provider/group/windows_adsi_spec.rb +43 -10
  392. data/spec/unit/provider/package/aix_spec.rb +29 -0
  393. data/spec/unit/provider/package/apt_spec.rb +107 -0
  394. data/spec/unit/provider/package/aptitude_spec.rb +1 -0
  395. data/spec/unit/provider/package/dnfmodule_spec.rb +54 -15
  396. data/spec/unit/provider/package/dpkg_spec.rb +22 -7
  397. data/spec/unit/provider/package/gem_spec.rb +40 -0
  398. data/spec/unit/provider/package/openbsd_spec.rb +2 -0
  399. data/spec/unit/provider/package/pacman_spec.rb +6 -21
  400. data/spec/unit/provider/package/pip2_spec.rb +36 -0
  401. data/spec/unit/provider/package/pip_spec.rb +68 -19
  402. data/spec/unit/provider/package/pkgdmg_spec.rb +1 -1
  403. data/spec/unit/provider/package/pkgng_spec.rb +38 -0
  404. data/spec/unit/provider/package/portage_spec.rb +5 -0
  405. data/spec/unit/provider/package/puppet_gem_spec.rb +12 -1
  406. data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
  407. data/spec/unit/provider/package/rpm_spec.rb +0 -212
  408. data/spec/unit/provider/package/yum_spec.rb +274 -1
  409. data/spec/unit/provider/package/zypper_spec.rb +98 -0
  410. data/spec/unit/provider/service/base_spec.rb +2 -4
  411. data/spec/unit/provider/service/bsd_spec.rb +5 -1
  412. data/spec/unit/provider/service/daemontools_spec.rb +1 -1
  413. data/spec/unit/provider/service/debian_spec.rb +3 -5
  414. data/spec/unit/provider/service/freebsd_spec.rb +1 -1
  415. data/spec/unit/provider/service/gentoo_spec.rb +4 -5
  416. data/spec/unit/provider/service/init_spec.rb +46 -5
  417. data/spec/unit/provider/service/launchd_spec.rb +5 -6
  418. data/spec/unit/provider/service/openbsd_spec.rb +9 -0
  419. data/spec/unit/provider/service/openrc_spec.rb +4 -5
  420. data/spec/unit/provider/service/openwrt_spec.rb +2 -1
  421. data/spec/unit/provider/service/redhat_spec.rb +10 -1
  422. data/spec/unit/provider/service/runit_spec.rb +2 -1
  423. data/spec/unit/provider/service/smf_spec.rb +1 -1
  424. data/spec/unit/provider/service/src_spec.rb +3 -5
  425. data/spec/unit/provider/service/systemd_spec.rb +95 -18
  426. data/spec/unit/provider/service/upstart_spec.rb +4 -5
  427. data/spec/unit/provider/service/windows_spec.rb +50 -14
  428. data/spec/unit/provider/user/openbsd_spec.rb +1 -0
  429. data/spec/unit/provider/user/useradd_spec.rb +30 -16
  430. data/spec/unit/provider/user/windows_adsi_spec.rb +85 -3
  431. data/spec/unit/puppet_pal_2pec.rb +11 -0
  432. data/spec/unit/puppet_pal_catalog_spec.rb +43 -0
  433. data/spec/unit/puppet_spec.rb +33 -0
  434. data/spec/unit/reports/http_spec.rb +70 -52
  435. data/spec/unit/reports/store_spec.rb +17 -13
  436. data/spec/unit/resource_spec.rb +3 -3
  437. data/spec/unit/rest/route_spec.rb +4 -4
  438. data/spec/unit/settings_spec.rb +44 -22
  439. data/spec/unit/ssl/host_spec.rb +4 -2
  440. data/spec/unit/ssl/oids_spec.rb +1 -0
  441. data/spec/unit/ssl/ssl_provider_spec.rb +69 -43
  442. data/spec/unit/ssl/state_machine_spec.rb +90 -14
  443. data/spec/unit/test/test_helper_spec.rb +17 -0
  444. data/spec/unit/transaction/persistence_spec.rb +15 -0
  445. data/spec/unit/transaction/report_spec.rb +7 -1
  446. data/spec/unit/type/file/source_spec.rb +4 -4
  447. data/spec/unit/type/file_spec.rb +122 -96
  448. data/spec/unit/type/filebucket_spec.rb +1 -1
  449. data/spec/unit/type/service_spec.rb +218 -8
  450. data/spec/unit/type/user_spec.rb +32 -3
  451. data/spec/unit/type_spec.rb +50 -0
  452. data/spec/unit/util/at_fork_spec.rb +2 -2
  453. data/spec/unit/util/autoload_spec.rb +2 -1
  454. data/spec/unit/util/character_encoding_spec.rb +4 -4
  455. data/spec/unit/util/checksums_spec.rb +16 -0
  456. data/spec/unit/util/command_line_spec.rb +11 -6
  457. data/spec/unit/util/log/destinations_spec.rb +1 -29
  458. data/spec/unit/util/package/version/debian_spec.rb +83 -0
  459. data/spec/unit/util/package/version/pip_spec.rb +464 -0
  460. data/spec/unit/util/package/version/range_spec.rb +175 -0
  461. data/spec/unit/util/package/version/rpm_spec.rb +121 -0
  462. data/spec/unit/util/pidlock_spec.rb +83 -47
  463. data/spec/unit/util/rpm_compare_spec.rb +196 -0
  464. data/spec/unit/util/run_mode_spec.rb +6 -6
  465. data/spec/unit/util/windows/adsi_spec.rb +4 -4
  466. data/spec/unit/util/windows/api_types_spec.rb +104 -40
  467. data/spec/unit/util/windows/service_spec.rb +4 -4
  468. data/spec/unit/util/windows/sid_spec.rb +2 -2
  469. data/spec/unit/util_spec.rb +3 -3
  470. data/spec/unit/x509/cert_provider_spec.rb +1 -1
  471. data/tasks/generate_cert_fixtures.rake +15 -1
  472. data/tasks/manpages.rake +5 -35
  473. metadata +90 -51
  474. data/spec/integration/faces/config_spec.rb +0 -91
  475. data/spec/integration/faces/documentation_spec.rb +0 -57
  476. data/spec/integration/faces/plugin_spec.rb +0 -63
  477. data/spec/integration/file_bucket/file_spec.rb +0 -50
  478. data/spec/integration/file_serving/content_spec.rb +0 -7
  479. data/spec/integration/file_serving/fileset_spec.rb +0 -12
  480. data/spec/integration/file_serving/metadata_spec.rb +0 -8
  481. data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
  482. data/spec/integration/file_system/uniquefile_spec.rb +0 -26
  483. data/spec/integration/module_tool/forge_spec.rb +0 -64
  484. data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
  485. data/spec/integration/provider/service/init_spec.rb +0 -48
  486. data/spec/integration/provider/service/systemd_spec.rb +0 -25
  487. data/spec/integration/provider/service/windows_spec.rb +0 -50
  488. data/spec/integration/reference/providers_spec.rb +0 -21
  489. data/spec/integration/reports_spec.rb +0 -13
  490. data/spec/integration/ssl/certificate_request_spec.rb +0 -44
  491. data/spec/integration/ssl/host_spec.rb +0 -72
  492. data/spec/integration/ssl/key_spec.rb +0 -99
  493. data/spec/integration/test/test_helper_spec.rb +0 -31
  494. data/spec/shared_behaviours/file_serving_model.rb +0 -51
  495. data/spec/unit/face/man_spec.rb +0 -25
  496. data/spec/unit/man_spec.rb +0 -31
@@ -1,25 +0,0 @@
1
- require 'spec_helper'
2
-
3
- test_title = 'Integration Tests for Puppet::Type::Service::Provider::Systemd'
4
-
5
- describe test_title, unless: Puppet::Util::Platform.jruby? do
6
- let(:provider_class) { Puppet::Type.type(:service).provider(:systemd) }
7
-
8
- # TODO: Unfortunately there does not seem a way to stub the executable
9
- # checks in the systemd provider because they happen at load time.
10
-
11
- it "should be considered suitable if /proc/1/comm is present and contains 'systemd'",
12
- :if => File.exist?('/proc/1/comm') && Puppet::FileSystem.read('/proc/1/comm').include?('systemd') do
13
- expect(provider_class).to be_suitable
14
- end
15
-
16
- it "should not be considered suitable if /proc/1/comm is present it does not contain 'systemd'",
17
- :if => File.exist?('/proc/1/comm') && !Puppet::FileSystem.read('/proc/1/comm').include?('systemd') do
18
- expect(provider_class).not_to be_suitable
19
- end
20
-
21
- it "should not be considered suitable if /proc/1/comm is absent",
22
- :if => !File.exist?('/proc/1/comm') do
23
- expect(provider_class).not_to be_suitable
24
- end
25
- end
@@ -1,50 +0,0 @@
1
- require 'spec_helper'
2
-
3
- test_title = 'Integration Tests for Puppet::Type::Service::Provider::Windows'
4
-
5
- describe test_title, '(integration)', :if => Puppet::Util::Platform.windows? do
6
- let(:provider_class) { Puppet::Type.type(:service).provider(:windows) }
7
-
8
- require 'puppet/util/windows'
9
-
10
- before :each do
11
- allow(Puppet::Type.type(:service)).to receive(:defaultprovider).and_return(provider_class)
12
- end
13
-
14
- context 'should return valid values when querying a service that does not exist' do
15
- let(:service) do
16
- Puppet::Type.type(:service).new(:name => 'foobarservice1234')
17
- end
18
-
19
- it "with :false when asked if enabled" do
20
- expect(service.provider.enabled?).to eql(:false)
21
- end
22
-
23
- it "with :stopped when asked about status" do
24
- expect(service.provider.status).to eql(:stopped)
25
- end
26
- end
27
-
28
- context 'should return valid values when querying a service that does exist' do
29
- let(:service) do
30
- # This service should be ubiquitous across all supported Windows platforms
31
- Puppet::Type.type(:service).new(:name => 'lmhosts')
32
- end
33
-
34
- it "with a valid enabled? value when asked if enabled" do
35
- expect([:true, :false, :manual]).to include(service.provider.enabled?)
36
- end
37
-
38
- it "with a valid status when asked about status" do
39
- expect([
40
- :running,
41
- :'continue pending',
42
- :'pause pending',
43
- :paused,
44
- :running,
45
- :'start pending',
46
- :'stop pending',
47
- :stopped]).to include(service.provider.status)
48
- end
49
- end
50
- end
@@ -1,21 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'puppet/util/reference'
4
-
5
- reference = Puppet::Util::Reference.reference(:providers)
6
-
7
- describe reference do
8
- it "should exist" do
9
- expect(reference).not_to be_nil
10
- end
11
-
12
- it "should be able to be rendered as markdown" do
13
- # We have a :confine block that calls execute in our upstart provider, which fails
14
- # on jruby. Thus, we stub it out here since we don't care to do any assertions on it.
15
- # This is only an issue if you're running these unit tests on a platform where upstart
16
- # is a default provider, like Ubuntu trusty.
17
- allow(Puppet::Util::Execution).to receive(:execute)
18
-
19
- reference.to_markdown
20
- end
21
- end
@@ -1,13 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'puppet/reports'
4
-
5
- describe Puppet::Reports, " when using report types" do
6
- before do
7
- allow(Puppet.settings).to receive(:use)
8
- end
9
-
10
- it "should load report types as modules" do
11
- expect(Puppet::Reports.report(:store)).to be_instance_of(Module)
12
- end
13
- end
@@ -1,44 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'puppet/ssl/certificate_request'
4
-
5
- describe Puppet::SSL::CertificateRequest do
6
- include PuppetSpec::Files
7
-
8
- before do
9
- # Get a safe temporary file
10
- dir = tmpdir("csr_integration_testing")
11
-
12
- Puppet.settings[:confdir] = dir
13
- Puppet.settings[:vardir] = dir
14
-
15
- @csr = Puppet::SSL::CertificateRequest.new("luke.madstop.com")
16
-
17
- @key = OpenSSL::PKey::RSA.new(512)
18
-
19
- # This is necessary so the terminus instances don't lie around.
20
- Puppet::SSL::CertificateRequest.indirection.termini.clear
21
- end
22
-
23
- it "should be able to generate CSRs" do
24
- @csr.generate(@key)
25
- end
26
-
27
- it "should be able to save CSRs" do
28
- Puppet::SSL::CertificateRequest.indirection.save(@csr)
29
- end
30
-
31
- it "should be able to find saved certificate requests via the Indirector" do
32
- @csr.generate(@key)
33
- Puppet::SSL::CertificateRequest.indirection.save(@csr)
34
-
35
- expect(Puppet::SSL::CertificateRequest.indirection.find("luke.madstop.com")).to be_instance_of(Puppet::SSL::CertificateRequest)
36
- end
37
-
38
- it "should save the completely CSR when saving" do
39
- @csr.generate(@key)
40
- Puppet::SSL::CertificateRequest.indirection.save(@csr)
41
-
42
- expect(Puppet::SSL::CertificateRequest.indirection.find("luke.madstop.com").content.to_s).to eq(@csr.content.to_s)
43
- end
44
- end
@@ -1,72 +0,0 @@
1
- require 'spec_helper'
2
- require 'puppet/test_ca'
3
-
4
- require 'puppet/ssl/host'
5
-
6
- describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
7
- include PuppetSpec::Files
8
-
9
- before do
10
- # Get a safe temporary file
11
- dir = tmpdir("host_integration_testing")
12
-
13
- Puppet.settings[:confdir] = dir
14
- Puppet.settings[:vardir] = dir
15
- Puppet.settings.use :main, :ssl
16
-
17
- @host = Puppet::SSL::Host.new("luke.madstop.com")
18
- allow(@host).to receive(:submit_certificate_request)
19
-
20
- @ca = Puppet::TestCa.new
21
- Puppet::Util.replace_file(Puppet[:localcacert], 0644) do |f|
22
- f.write(@ca.ca_cert.to_s)
23
- end
24
- Puppet::Util.replace_file(Puppet[:hostcrl], 0644) do |f|
25
- f.write(@ca.ca_crl.to_s)
26
- end
27
- end
28
-
29
- describe "when managing its key" do
30
- it "should be able to generate and save a key" do
31
- @host.generate_key
32
- end
33
-
34
- it "should save the key such that the Indirector can find it" do
35
- @host.generate_key
36
-
37
- expect(Puppet::SSL::Key.indirection.find(@host.name).content.to_s).to eq(@host.key.to_s)
38
- end
39
-
40
- it "should save the private key into the :privatekeydir" do
41
- @host.generate_key
42
- expect(File.read(File.join(Puppet.settings[:privatekeydir], "luke.madstop.com.pem"))).to eq(@host.key.to_s)
43
- end
44
- end
45
-
46
- describe "when managing its certificate request" do
47
- it "should be able to generate and save a certificate request" do
48
- @host.generate_certificate_request
49
- end
50
-
51
- it "should save the certificate request such that the Indirector can find it" do
52
- @host.generate_certificate_request
53
-
54
- expect(Puppet::SSL::CertificateRequest.indirection.find(@host.name).content.to_s).to eq(@host.certificate_request.to_s)
55
- end
56
-
57
- it "should save the private certificate request into the :privatekeydir" do
58
- @host.generate_certificate_request
59
- expect(File.read(File.join(Puppet.settings[:requestdir], "luke.madstop.com.pem"))).to eq(@host.certificate_request.to_s)
60
- end
61
- end
62
-
63
- it "should pass the verification of its own SSL store", :unless => Puppet.features.microsoft_windows? do
64
- @host.generate_certificate_request
65
- cert = @ca.sign(@host.certificate_request.content)
66
- Puppet::Util.replace_file(File.join(Puppet[:certdir], "#{@host.name}.pem"), 0644) do |f|
67
- f.write(cert)
68
- end
69
-
70
- expect(@host.ssl_store.verify(@host.certificate.content)).to be_truthy
71
- end
72
- end
@@ -1,99 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'puppet/ssl/key'
4
-
5
- describe Puppet::SSL::Key, unless: Puppet::Util::Platform.jruby? do
6
- include PuppetSpec::Files
7
-
8
- # different UTF-8 widths
9
- # 1-byte A
10
- # 2-byte ۿ - http://www.fileformat.info/info/unicode/char/06ff/index.htm - 0xDB 0xBF / 219 191
11
- # 3-byte ᚠ - http://www.fileformat.info/info/unicode/char/16A0/index.htm - 0xE1 0x9A 0xA0 / 225 154 160
12
- # 4-byte ܎ - http://www.fileformat.info/info/unicode/char/2070E/index.htm - 0xF0 0xA0 0x9C 0x8E / 240 160 156 142
13
- let (:mixed_utf8) { "A\u06FF\u16A0\u{2070E}" } # Aۿᚠ܎
14
-
15
- before do
16
- # Get a safe temporary file
17
- dir = tmpdir('key_integration_testing')
18
-
19
- Puppet.settings[:confdir] = dir
20
- Puppet.settings[:vardir] = dir
21
-
22
- # This is necessary so the terminus instances don't lie around.
23
- # and so that Puppet::SSL::Key.indirection.save may be used
24
- Puppet::SSL::Key.indirection.termini.clear
25
- end
26
-
27
- describe 'with a custom user-specified passfile' do
28
-
29
- before do
30
- # write custom password file to where Puppet expects
31
- password_file = tmpfile('passfile')
32
- Puppet[:passfile] = password_file
33
- Puppet::FileSystem.open(password_file, nil, 'w:UTF-8') { |f| f.print(mixed_utf8) }
34
- end
35
-
36
- it 'should use the configured password file if it is not the CA key' do
37
- key = Puppet::SSL::Key.new('test')
38
- expect(key.password_file).to eq(Puppet[:passfile])
39
- expect(key.password).to eq(mixed_utf8.force_encoding(Encoding::BINARY))
40
- end
41
-
42
- it "should be able to read an existing private key given the correct password" do
43
- key_name = 'test'
44
- # use OpenSSL APIs to generate a private key
45
- private_key = OpenSSL::PKey::RSA.generate(512)
46
-
47
- # stash it in Puppets private key directory
48
- FileUtils.mkdir_p(Puppet[:privatekeydir])
49
- pem_path = File.join(Puppet[:privatekeydir], "#{key_name}.pem")
50
- Puppet::FileSystem.open(pem_path, nil, 'w:UTF-8') do |f|
51
- # with password protection enabled
52
- pem = private_key.to_pem(OpenSSL::Cipher::DES.new(:EDE3, :CBC), mixed_utf8)
53
- f.print(pem)
54
- end
55
-
56
- # indirector loads existing .pem off disk instead of replacing it
57
- host = Puppet::SSL::Host.new(key_name)
58
- host.key
59
-
60
- # newly loaded host private key matches the manually created key
61
- # Private-Key: (512 bit) style data
62
- expect(host.key.content.to_text).to eq(private_key.to_text)
63
- # -----BEGIN RSA PRIVATE KEY-----
64
- expect(host.key.content.to_s).to eq(private_key.to_s)
65
- expect(host.key.password).to eq(mixed_utf8.force_encoding(Encoding::BINARY))
66
- end
67
-
68
- it 'should export the private key to PEM using the password' do
69
- key_name = 'test'
70
-
71
- # uses specified :passfile when writing the private key
72
- key = Puppet::SSL::Key.new(key_name)
73
- key.generate
74
- Puppet::SSL::Key.indirection.save(key)
75
-
76
- # indirector writes file here
77
- pem_path = File.join(Puppet[:privatekeydir], "#{key_name}.pem")
78
-
79
- # note incorrect password is an error
80
- expect do
81
- Puppet::FileSystem.open(pem_path, nil, 'r:ASCII') do |f|
82
- OpenSSL::PKey::RSA.new(f.read, 'invalid_password')
83
- end
84
- end.to raise_error(OpenSSL::PKey::RSAError)
85
-
86
- # but when specifying the correct password
87
- reloaded_key = nil
88
- Puppet::FileSystem.open(pem_path, nil, 'r:ASCII') do |f|
89
- reloaded_key = OpenSSL::PKey::RSA.new(f.read, mixed_utf8)
90
- end
91
-
92
- # the original key matches the manually reloaded key
93
- # Private-Key: (512 bit) style data
94
- expect(key.content.to_text).to eq(reloaded_key.to_text)
95
- # -----BEGIN RSA PRIVATE KEY-----
96
- expect(key.content.to_s).to eq(reloaded_key.to_s)
97
- end
98
- end
99
- end
@@ -1,31 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Windows UTF8 environment variables", :if => Puppet::Util::Platform.windows? do
4
- # The Puppet::Util::Windows::Process class is used to manipulate environment variables as it is known to handle UTF8 characters. Where as the implementation of ENV in ruby does not.
5
- # before and end all are used to inject environment variables before the test helper 'before_each_test' function is called
6
- # Do not use before and after hooks in these tests as it may have unintended consequences
7
-
8
- before(:all) {
9
- @varname = 'test_helper_spec-test_variable'
10
- @rune_utf8 = "\u16A0\u16C7\u16BB\u16EB\u16D2\u16E6\u16A6\u16EB\u16A0\u16B1\u16A9\u16A0\u16A2\u16B1\u16EB\u16A0\u16C1\u16B1\u16AA\u16EB\u16B7\u16D6\u16BB\u16B9\u16E6\u16DA\u16B3\u16A2\u16D7"
11
-
12
- Puppet::Util::Windows::Process.set_environment_variable(@varname, @rune_utf8)
13
- }
14
- after(:all) {
15
- # Need to cleanup this environment variable otherwise it contaminates any subsequent tests
16
- Puppet::Util::Windows::Process.set_environment_variable(@varname, nil)
17
- }
18
-
19
- it "#after_each_test should preserve UTF8 environment variables" do
20
- envhash = Puppet::Util::Windows::Process.get_environment_strings
21
- expect(envhash[@varname]).to eq(@rune_utf8)
22
- # Change the value in the test to force test_helper to restore the environment
23
- ENV[@varname] = 'bad foo'
24
-
25
- # Prematurely trigger the after_each_test method
26
- Puppet::Test::TestHelper.after_each_test
27
-
28
- envhash = Puppet::Util::Windows::Process.get_environment_strings
29
- expect(envhash[@varname]).to eq(@rune_utf8)
30
- end
31
- end
@@ -1,51 +0,0 @@
1
- shared_examples_for "a file_serving model" do
2
- include PuppetSpec::Files
3
-
4
- describe "#indirection" do
5
- localpath = PuppetSpec::Files.make_absolute("/etc/sudoers")
6
- localurl = "file://" + localpath
7
-
8
- before :each do
9
- # Never connect to the network, no matter what
10
- allow_any_instance_of(described_class.indirection.terminus(:rest).class).to receive(:find)
11
- end
12
-
13
- describe "when running the apply application" do
14
- before :each do
15
- Puppet[:default_file_terminus] = 'file_server'
16
- end
17
-
18
- {
19
- localpath => :file,
20
- localurl => :file,
21
- "puppet:///modules/foo/bar" => :file_server,
22
- "puppet://server/modules/foo/bar" => :rest,
23
- }.each do |key, terminus|
24
- it "should use the #{terminus} terminus when requesting #{key.inspect}" do
25
- expect_any_instance_of(described_class.indirection.terminus(terminus).class).to receive(:find)
26
-
27
- described_class.indirection.find(key)
28
- end
29
- end
30
- end
31
-
32
- describe "when running another application" do
33
- before :each do
34
- Puppet[:default_file_terminus] = 'rest'
35
- end
36
-
37
- {
38
- localpath => :file,
39
- localurl => :file,
40
- "puppet:///modules/foo/bar" => :rest,
41
- "puppet://server/modules/foo/bar" => :rest,
42
- }.each do |key, terminus|
43
- it "should use the #{terminus} terminus when requesting #{key.inspect}" do
44
- expect_any_instance_of(described_class.indirection.terminus(terminus).class).to receive(:find)
45
-
46
- described_class.indirection.find(key)
47
- end
48
- end
49
- end
50
- end
51
- end
@@ -1,25 +0,0 @@
1
- require 'spec_helper'
2
- require 'puppet/face'
3
-
4
- describe Puppet::Face[:man, '0.0.1'] do
5
- it 'should be deprecated' do
6
- expect(subject.deprecated?).to be_truthy
7
- end
8
-
9
- it 'has a man action' do
10
- expect(subject).to be_action(:man)
11
- end
12
-
13
- it 'has a default action of man' do
14
- expect(subject.get_action('man')).to be_default
15
- end
16
-
17
- it 'accepts a call with no arguments' do
18
- expect { subject.man() }.to have_printed(/USAGE: puppet man <action>/)
19
- end
20
-
21
- it 'raises an ArgumentError when given to many arguments' do
22
- allow(subject).to receive(:print_man_help)
23
- expect { subject.man(:man, 'cert', 'extra') }.to raise_error(ArgumentError)
24
- end
25
- end
@@ -1,31 +0,0 @@
1
- require 'spec_helper'
2
- require 'puppet/face'
3
-
4
- describe Puppet::Face[:man, :current] do
5
- let(:pager) { '/path/to/our/pager' }
6
-
7
- around do |example|
8
- oldpager = ENV['MANPAGER']
9
- ENV['MANPAGER'] = pager
10
- example.run
11
- ENV['MANPAGER'] = oldpager
12
- end
13
-
14
- it "exits with 0 when generating man documentation for each available application" do
15
- allow(Puppet::Util).to receive(:which).with('ronn').and_return(nil)
16
- allow(Puppet::Util).to receive(:which).with(pager).and_return(pager)
17
-
18
- Puppet::Application.available_application_names.each do |name|
19
- next if %w{man face_base indirection_base}.include? name
20
-
21
- klass = Puppet::Application.find('man')
22
- app = klass.new(Puppet::Util::CommandLine.new('puppet', ['man', name]))
23
-
24
- expect do
25
- allow(IO).to receive(:popen).with(pager, 'w:UTF-8').and_yield($stdout)
26
-
27
- expect { app.run }.to exit_with(0)
28
- end.to_not have_printed(/undefined method `gsub'/)
29
- end
30
- end
31
- end