puppet 4.4.1-universal-darwin → 4.4.2-universal-darwin

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

Potentially problematic release.


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

Files changed (556) hide show
  1. data/lib/puppet/application/ca.rb +1 -0
  2. data/lib/puppet/application/lookup.rb +4 -16
  3. data/lib/puppet/application/resource.rb +0 -4
  4. data/lib/puppet/data_providers/hiera_interpolate.rb +8 -2
  5. data/lib/puppet/data_providers/json_data_provider_factory.rb +1 -1
  6. data/lib/puppet/defaults.rb +32 -16
  7. data/lib/puppet/file_system/uniquefile.rb +2 -2
  8. data/lib/puppet/file_system/windows.rb +1 -15
  9. data/lib/puppet/functions/assert_type.rb +1 -1
  10. data/lib/puppet/functions/lookup.rb +0 -3
  11. data/lib/puppet/indirector/catalog/compiler.rb +2 -1
  12. data/lib/puppet/indirector/msgpack.rb +1 -1
  13. data/lib/puppet/indirector/terminus.rb +4 -4
  14. data/lib/puppet/module.rb +3 -3
  15. data/lib/puppet/module_tool/applications/builder.rb +2 -2
  16. data/lib/puppet/network/auth_config_parser.rb +1 -1
  17. data/lib/puppet/network/http/api/indirected_routes.rb +0 -2
  18. data/lib/puppet/network/http/rack/rest.rb +10 -1
  19. data/lib/puppet/parser/functions/lookup.rb +0 -3
  20. data/lib/puppet/pops/evaluator/access_operator.rb +25 -1
  21. data/lib/puppet/pops/evaluator/closure.rb +10 -5
  22. data/lib/puppet/pops/merge_strategy.rb +0 -10
  23. data/lib/puppet/pops/types/recursion_guard.rb +10 -0
  24. data/lib/puppet/pops/types/type_asserter.rb +2 -2
  25. data/lib/puppet/pops/types/type_calculator.rb +1 -1
  26. data/lib/puppet/pops/types/type_formatter.rb +14 -2
  27. data/lib/puppet/pops/types/type_mismatch_describer.rb +22 -10
  28. data/lib/puppet/pops/types/types.rb +240 -98
  29. data/lib/puppet/provider/package/puppet_gem.rb +0 -0
  30. data/lib/puppet/provider/user/user_role_add.rb +3 -1
  31. data/lib/puppet/settings.rb +1 -1
  32. data/lib/puppet/ssl/oids.rb +24 -2
  33. data/lib/puppet/util/monkey_patches.rb +10 -5
  34. data/lib/puppet/util/windows/file.rb +40 -10
  35. data/lib/puppet/util/windows.rb +1 -0
  36. data/lib/puppet/version.rb +1 -1
  37. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/third_utf8.json +3 -0
  38. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/utf8.yaml +3 -0
  39. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/hiera.yaml +5 -1
  40. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/manifests/site.pp +2 -2
  41. data/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp +0 -0
  42. data/spec/fixtures/unit/pops/parser/lexer/subclass_name_duplication.pp +0 -0
  43. data/spec/integration/agent/logging_spec.rb +0 -0
  44. data/spec/integration/application/apply_spec.rb +0 -0
  45. data/spec/integration/application/doc_spec.rb +0 -0
  46. data/spec/integration/configurer_spec.rb +0 -0
  47. data/spec/integration/data_binding_spec.rb +0 -0
  48. data/spec/integration/defaults_spec.rb +0 -0
  49. data/spec/integration/faces/ca_spec.rb +0 -0
  50. data/spec/integration/faces/documentation_spec.rb +0 -0
  51. data/spec/integration/file_serving/fileset_spec.rb +0 -0
  52. data/spec/integration/file_serving/terminus_helper_spec.rb +0 -0
  53. data/spec/integration/indirector/catalog/compiler_spec.rb +0 -0
  54. data/spec/integration/indirector/direct_file_server_spec.rb +0 -0
  55. data/spec/integration/indirector/file_content/file_server_spec.rb +0 -0
  56. data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -0
  57. data/spec/integration/indirector/node/ldap_spec.rb +0 -0
  58. data/spec/integration/network/formats_spec.rb +0 -0
  59. data/spec/integration/node/environment_spec.rb +0 -0
  60. data/spec/integration/node/facts_spec.rb +0 -0
  61. data/spec/integration/node_spec.rb +0 -0
  62. data/spec/integration/parser/collection_spec.rb +0 -0
  63. data/spec/integration/parser/compiler_spec.rb +0 -0
  64. data/spec/integration/parser/functions/require_spec.rb +0 -0
  65. data/spec/integration/parser/parameter_defaults_spec.rb +19 -1
  66. data/spec/integration/provider/mailalias/aliases_spec.rb +0 -0
  67. data/spec/integration/provider/mount_spec.rb +0 -0
  68. data/spec/integration/provider/package_spec.rb +0 -0
  69. data/spec/integration/provider/service/init_spec.rb +0 -0
  70. data/spec/integration/provider/ssh_authorized_key_spec.rb +0 -0
  71. data/spec/integration/reference/providers_spec.rb +0 -0
  72. data/spec/integration/reports_spec.rb +0 -0
  73. data/spec/integration/resource/catalog_spec.rb +0 -0
  74. data/spec/integration/resource/type_collection_spec.rb +0 -0
  75. data/spec/integration/ssl/certificate_authority_spec.rb +0 -0
  76. data/spec/integration/ssl/certificate_request_spec.rb +0 -0
  77. data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -0
  78. data/spec/integration/ssl/host_spec.rb +0 -0
  79. data/spec/integration/transaction/report_spec.rb +0 -0
  80. data/spec/integration/transaction_spec.rb +0 -0
  81. data/spec/integration/type/exec_spec.rb +0 -0
  82. data/spec/integration/type/file_spec.rb +0 -0
  83. data/spec/integration/type/package_spec.rb +0 -0
  84. data/spec/integration/type/tidy_spec.rb +0 -0
  85. data/spec/integration/type_spec.rb +0 -0
  86. data/spec/integration/util/autoload_spec.rb +0 -0
  87. data/spec/integration/util/rdoc/parser_spec.rb +0 -0
  88. data/spec/integration/util/settings_spec.rb +26 -0
  89. data/spec/integration/util/windows/registry_spec.rb +0 -0
  90. data/spec/integration/util/windows/security_spec.rb +0 -0
  91. data/spec/integration/util/windows/user_spec.rb +0 -0
  92. data/spec/integration/util_spec.rb +0 -0
  93. data/spec/lib/puppet/face/1.0.0/huzzah.rb +0 -0
  94. data/spec/lib/puppet/face/basetest.rb +0 -0
  95. data/spec/lib/puppet/face/huzzah.rb +0 -0
  96. data/spec/lib/puppet_spec/files.rb +0 -0
  97. data/spec/lib/puppet_spec/fixtures.rb +0 -0
  98. data/spec/lib/puppet_spec/verbose.rb +0 -0
  99. data/spec/shared_behaviours/all_parsedfile_providers.rb +0 -0
  100. data/spec/shared_behaviours/file_server_terminus.rb +0 -0
  101. data/spec/shared_behaviours/file_serving.rb +0 -0
  102. data/spec/shared_behaviours/memory_terminus.rb +0 -0
  103. data/spec/shared_behaviours/path_parameters.rb +0 -0
  104. data/spec/shared_behaviours/things_that_declare_options.rb +0 -0
  105. data/spec/spec_helper.rb +0 -0
  106. data/spec/unit/agent/locker_spec.rb +0 -0
  107. data/spec/unit/agent_spec.rb +0 -0
  108. data/spec/unit/application/agent_spec.rb +0 -0
  109. data/spec/unit/application/apply_spec.rb +0 -0
  110. data/spec/unit/application/cert_spec.rb +0 -0
  111. data/spec/unit/application/certificate_spec.rb +0 -0
  112. data/spec/unit/application/config_spec.rb +0 -0
  113. data/spec/unit/application/describe_spec.rb +0 -0
  114. data/spec/unit/application/device_spec.rb +0 -0
  115. data/spec/unit/application/doc_spec.rb +0 -0
  116. data/spec/unit/application/face_base_spec.rb +0 -0
  117. data/spec/unit/application/facts_spec.rb +0 -0
  118. data/spec/unit/application/filebucket_spec.rb +0 -0
  119. data/spec/unit/application/indirection_base_spec.rb +0 -0
  120. data/spec/unit/application/inspect_spec.rb +0 -0
  121. data/spec/unit/application/lookup_spec.rb +1 -1
  122. data/spec/unit/application/master_spec.rb +0 -0
  123. data/spec/unit/application/resource_spec.rb +0 -0
  124. data/spec/unit/application_spec.rb +0 -0
  125. data/spec/unit/configurer/downloader_factory_spec.rb +0 -0
  126. data/spec/unit/configurer/downloader_spec.rb +0 -0
  127. data/spec/unit/configurer/fact_handler_spec.rb +0 -0
  128. data/spec/unit/configurer/plugin_handler_spec.rb +0 -0
  129. data/spec/unit/configurer_spec.rb +0 -0
  130. data/spec/unit/confine/exists_spec.rb +0 -0
  131. data/spec/unit/confine/false_spec.rb +0 -0
  132. data/spec/unit/confine/feature_spec.rb +0 -0
  133. data/spec/unit/confine/true_spec.rb +0 -0
  134. data/spec/unit/confine/variable_spec.rb +0 -0
  135. data/spec/unit/confine_collection_spec.rb +0 -0
  136. data/spec/unit/confine_spec.rb +0 -0
  137. data/spec/unit/confiner_spec.rb +0 -0
  138. data/spec/unit/daemon_spec.rb +0 -0
  139. data/spec/unit/data_providers/hiera_data_provider_spec.rb +1 -1
  140. data/spec/unit/data_providers/hiera_interpolation_spec.rb +6 -0
  141. data/spec/unit/external/pson_spec.rb +0 -0
  142. data/spec/unit/face/catalog_spec.rb +0 -0
  143. data/spec/unit/face/certificate_spec.rb +0 -0
  144. data/spec/unit/face/config_spec.rb +0 -0
  145. data/spec/unit/face/facts_spec.rb +0 -0
  146. data/spec/unit/face/file_spec.rb +0 -0
  147. data/spec/unit/face/help_spec.rb +0 -0
  148. data/spec/unit/face/node_spec.rb +0 -0
  149. data/spec/unit/face/plugin_spec.rb +0 -0
  150. data/spec/unit/face_spec.rb +0 -0
  151. data/spec/unit/file_bucket/dipper_spec.rb +0 -0
  152. data/spec/unit/file_bucket/file_spec.rb +0 -0
  153. data/spec/unit/file_serving/base_spec.rb +0 -0
  154. data/spec/unit/file_serving/configuration/parser_spec.rb +0 -0
  155. data/spec/unit/file_serving/configuration_spec.rb +0 -0
  156. data/spec/unit/file_serving/content_spec.rb +0 -0
  157. data/spec/unit/file_serving/fileset_spec.rb +0 -0
  158. data/spec/unit/file_serving/metadata_spec.rb +0 -0
  159. data/spec/unit/file_serving/mount/file_spec.rb +0 -0
  160. data/spec/unit/file_serving/mount/modules_spec.rb +0 -0
  161. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +0 -0
  162. data/spec/unit/file_serving/mount/plugins_spec.rb +0 -0
  163. data/spec/unit/file_serving/mount_spec.rb +0 -0
  164. data/spec/unit/file_serving/terminus_helper_spec.rb +0 -0
  165. data/spec/unit/file_serving/terminus_selector_spec.rb +0 -0
  166. data/spec/unit/file_system/uniquefile_spec.rb +20 -0
  167. data/spec/unit/file_system_spec.rb +61 -0
  168. data/spec/unit/functions/assert_type_spec.rb +8 -0
  169. data/spec/unit/functions/defined_spec.rb +0 -0
  170. data/spec/unit/functions/hiera_spec.rb +0 -0
  171. data/spec/unit/functions/lookup_spec.rb +3 -3
  172. data/spec/unit/functions/regsubst_spec.rb +0 -0
  173. data/spec/unit/functions/split_spec.rb +0 -0
  174. data/spec/unit/functions/versioncmp_spec.rb +0 -0
  175. data/spec/unit/graph/relationship_graph_spec.rb +0 -0
  176. data/spec/unit/graph/simple_graph_spec.rb +0 -0
  177. data/spec/unit/indirector/catalog/compiler_spec.rb +7 -0
  178. data/spec/unit/indirector/catalog/json_spec.rb +0 -0
  179. data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -0
  180. data/spec/unit/indirector/catalog/rest_spec.rb +0 -0
  181. data/spec/unit/indirector/catalog/static_compiler_spec.rb +0 -0
  182. data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -0
  183. data/spec/unit/indirector/catalog/yaml_spec.rb +0 -0
  184. data/spec/unit/indirector/certificate/ca_spec.rb +0 -0
  185. data/spec/unit/indirector/certificate/disabled_ca_spec.rb +0 -0
  186. data/spec/unit/indirector/certificate/file_spec.rb +0 -0
  187. data/spec/unit/indirector/certificate/rest_spec.rb +0 -0
  188. data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -0
  189. data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +0 -0
  190. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -0
  191. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -0
  192. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +0 -0
  193. data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +0 -0
  194. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +0 -0
  195. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +0 -0
  196. data/spec/unit/indirector/certificate_status/file_spec.rb +0 -0
  197. data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -0
  198. data/spec/unit/indirector/code_spec.rb +0 -0
  199. data/spec/unit/indirector/direct_file_server_spec.rb +0 -0
  200. data/spec/unit/indirector/envelope_spec.rb +0 -0
  201. data/spec/unit/indirector/exec_spec.rb +0 -0
  202. data/spec/unit/indirector/face_spec.rb +0 -0
  203. data/spec/unit/indirector/facts/facter_spec.rb +0 -0
  204. data/spec/unit/indirector/facts/network_device_spec.rb +0 -0
  205. data/spec/unit/indirector/facts/store_configs_spec.rb +0 -0
  206. data/spec/unit/indirector/facts/yaml_spec.rb +0 -0
  207. data/spec/unit/indirector/file_bucket_file/file_spec.rb +0 -0
  208. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -0
  209. data/spec/unit/indirector/file_content/file_server_spec.rb +0 -0
  210. data/spec/unit/indirector/file_content/file_spec.rb +0 -0
  211. data/spec/unit/indirector/file_content/rest_spec.rb +0 -0
  212. data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -0
  213. data/spec/unit/indirector/file_metadata/file_spec.rb +0 -0
  214. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -0
  215. data/spec/unit/indirector/file_server_spec.rb +0 -0
  216. data/spec/unit/indirector/indirection_spec.rb +0 -0
  217. data/spec/unit/indirector/json_spec.rb +0 -0
  218. data/spec/unit/indirector/key/ca_spec.rb +0 -0
  219. data/spec/unit/indirector/key/disabled_ca_spec.rb +0 -0
  220. data/spec/unit/indirector/key/file_spec.rb +0 -0
  221. data/spec/unit/indirector/ldap_spec.rb +0 -0
  222. data/spec/unit/indirector/memory_spec.rb +0 -0
  223. data/spec/unit/indirector/msgpack_spec.rb +11 -1
  224. data/spec/unit/indirector/node/exec_spec.rb +0 -0
  225. data/spec/unit/indirector/node/ldap_spec.rb +0 -0
  226. data/spec/unit/indirector/node/memory_spec.rb +0 -0
  227. data/spec/unit/indirector/node/msgpack_spec.rb +0 -0
  228. data/spec/unit/indirector/node/plain_spec.rb +0 -0
  229. data/spec/unit/indirector/node/rest_spec.rb +0 -0
  230. data/spec/unit/indirector/node/store_configs_spec.rb +0 -0
  231. data/spec/unit/indirector/node/yaml_spec.rb +0 -0
  232. data/spec/unit/indirector/plain_spec.rb +0 -0
  233. data/spec/unit/indirector/report/msgpack_spec.rb +0 -0
  234. data/spec/unit/indirector/report/processor_spec.rb +0 -0
  235. data/spec/unit/indirector/report/rest_spec.rb +0 -0
  236. data/spec/unit/indirector/report/yaml_spec.rb +0 -0
  237. data/spec/unit/indirector/request_spec.rb +0 -0
  238. data/spec/unit/indirector/resource/ral_spec.rb +0 -0
  239. data/spec/unit/indirector/resource/store_configs_spec.rb +0 -0
  240. data/spec/unit/indirector/resource_type/parser_spec.rb +0 -0
  241. data/spec/unit/indirector/resource_type/rest_spec.rb +0 -0
  242. data/spec/unit/indirector/rest_spec.rb +0 -0
  243. data/spec/unit/indirector/ssl_file_spec.rb +0 -0
  244. data/spec/unit/indirector/status/rest_spec.rb +0 -0
  245. data/spec/unit/indirector/store_configs_spec.rb +0 -0
  246. data/spec/unit/indirector/terminus_spec.rb +0 -0
  247. data/spec/unit/indirector/yaml_spec.rb +0 -0
  248. data/spec/unit/indirector_spec.rb +0 -0
  249. data/spec/unit/interface/action_builder_spec.rb +0 -0
  250. data/spec/unit/interface/action_manager_spec.rb +0 -0
  251. data/spec/unit/interface/action_spec.rb +0 -0
  252. data/spec/unit/interface/documentation_spec.rb +0 -0
  253. data/spec/unit/interface/face_collection_spec.rb +0 -0
  254. data/spec/unit/interface/option_builder_spec.rb +0 -0
  255. data/spec/unit/interface/option_spec.rb +0 -0
  256. data/spec/unit/interface_spec.rb +0 -0
  257. data/spec/unit/man_spec.rb +0 -0
  258. data/spec/unit/module_spec.rb +30 -6
  259. data/spec/unit/module_tool/applications/builder_spec.rb +23 -3
  260. data/spec/unit/module_tool_spec.rb +0 -0
  261. data/spec/unit/network/auth_config_parser_spec.rb +16 -0
  262. data/spec/unit/network/authconfig_spec.rb +0 -0
  263. data/spec/unit/network/authstore_spec.rb +0 -0
  264. data/spec/unit/network/format_handler_spec.rb +0 -0
  265. data/spec/unit/network/format_spec.rb +0 -0
  266. data/spec/unit/network/formats_spec.rb +0 -0
  267. data/spec/unit/network/http/api/indirected_routes_spec.rb +21 -13
  268. data/spec/unit/network/http/api/master/v3_spec.rb +0 -0
  269. data/spec/unit/network/http/compression_spec.rb +0 -0
  270. data/spec/unit/network/http/connection_spec.rb +0 -0
  271. data/spec/unit/network/http/factory_spec.rb +0 -0
  272. data/spec/unit/network/http/handler_spec.rb +0 -0
  273. data/spec/unit/network/http/nocache_pool_spec.rb +0 -0
  274. data/spec/unit/network/http/pool_spec.rb +0 -0
  275. data/spec/unit/network/http/rack/rest_spec.rb +7 -0
  276. data/spec/unit/network/http/rack_spec.rb +0 -0
  277. data/spec/unit/network/http/session_spec.rb +0 -0
  278. data/spec/unit/network/http/site_spec.rb +0 -0
  279. data/spec/unit/network/http/webrick/rest_spec.rb +0 -0
  280. data/spec/unit/network/http/webrick_spec.rb +0 -0
  281. data/spec/unit/network/http_pool_spec.rb +0 -0
  282. data/spec/unit/network/http_spec.rb +0 -0
  283. data/spec/unit/network/resolver_spec.rb +0 -0
  284. data/spec/unit/network/rights_spec.rb +0 -0
  285. data/spec/unit/network/server_spec.rb +0 -0
  286. data/spec/unit/node/environment_spec.rb +0 -0
  287. data/spec/unit/node/facts_spec.rb +0 -0
  288. data/spec/unit/node_spec.rb +0 -0
  289. data/spec/unit/other/selinux_spec.rb +0 -0
  290. data/spec/unit/parameter/path_spec.rb +0 -0
  291. data/spec/unit/parameter/value_collection_spec.rb +0 -0
  292. data/spec/unit/parameter/value_spec.rb +0 -0
  293. data/spec/unit/parameter_spec.rb +0 -0
  294. data/spec/unit/parser/ast/leaf_spec.rb +0 -0
  295. data/spec/unit/parser/compiler_spec.rb +0 -0
  296. data/spec/unit/parser/files_spec.rb +0 -0
  297. data/spec/unit/parser/functions/create_resources_spec.rb +0 -0
  298. data/spec/unit/parser/functions/defined_spec.rb +0 -0
  299. data/spec/unit/parser/functions/digest_spec.rb +0 -0
  300. data/spec/unit/parser/functions/fail_spec.rb +0 -0
  301. data/spec/unit/parser/functions/file_spec.rb +0 -0
  302. data/spec/unit/parser/functions/fqdn_rand_spec.rb +0 -0
  303. data/spec/unit/parser/functions/generate_spec.rb +0 -0
  304. data/spec/unit/parser/functions/hiera_spec.rb +0 -0
  305. data/spec/unit/parser/functions/include_spec.rb +0 -0
  306. data/spec/unit/parser/functions/inline_template_spec.rb +0 -0
  307. data/spec/unit/parser/functions/realize_spec.rb +0 -0
  308. data/spec/unit/parser/functions/regsubst_spec.rb +0 -0
  309. data/spec/unit/parser/functions/require_spec.rb +0 -0
  310. data/spec/unit/parser/functions/scanf_spec.rb +0 -0
  311. data/spec/unit/parser/functions/shellquote_spec.rb +0 -0
  312. data/spec/unit/parser/functions/split_spec.rb +0 -0
  313. data/spec/unit/parser/functions/sprintf_spec.rb +0 -0
  314. data/spec/unit/parser/functions/tag_spec.rb +0 -0
  315. data/spec/unit/parser/functions/template_spec.rb +0 -0
  316. data/spec/unit/parser/functions/versioncmp_spec.rb +0 -0
  317. data/spec/unit/parser/functions_spec.rb +0 -0
  318. data/spec/unit/parser/relationship_spec.rb +0 -0
  319. data/spec/unit/parser/resource/param_spec.rb +0 -0
  320. data/spec/unit/parser/resource_spec.rb +0 -0
  321. data/spec/unit/parser/scope_spec.rb +0 -0
  322. data/spec/unit/parser/templatewrapper_spec.rb +0 -0
  323. data/spec/unit/parser/type_loader_spec.rb +0 -0
  324. data/spec/unit/pops/loaders/loaders_spec.rb +8 -8
  325. data/spec/unit/pops/types/type_asserter_spec.rb +3 -3
  326. data/spec/unit/pops/types/type_calculator_spec.rb +32 -6
  327. data/spec/unit/pops/types/type_factory_spec.rb +26 -0
  328. data/spec/unit/pops/types/type_formatter_spec.rb +7 -2
  329. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +25 -0
  330. data/spec/unit/pops/types/type_parser_spec.rb +1 -1
  331. data/spec/unit/pops/types/types_spec.rb +215 -0
  332. data/spec/unit/property/ensure_spec.rb +0 -0
  333. data/spec/unit/property/keyvalue_spec.rb +0 -0
  334. data/spec/unit/property/list_spec.rb +0 -0
  335. data/spec/unit/property/ordered_list_spec.rb +0 -0
  336. data/spec/unit/property_spec.rb +0 -0
  337. data/spec/unit/provider/augeas/augeas_spec.rb +0 -0
  338. data/spec/unit/provider/cisco_spec.rb +0 -0
  339. data/spec/unit/provider/command_spec.rb +0 -0
  340. data/spec/unit/provider/cron/crontab_spec.rb +0 -0
  341. data/spec/unit/provider/exec/posix_spec.rb +0 -0
  342. data/spec/unit/provider/exec/shell_spec.rb +0 -0
  343. data/spec/unit/provider/exec/windows_spec.rb +0 -0
  344. data/spec/unit/provider/exec_spec.rb +0 -0
  345. data/spec/unit/provider/file/posix_spec.rb +0 -0
  346. data/spec/unit/provider/file/windows_spec.rb +0 -0
  347. data/spec/unit/provider/group/groupadd_spec.rb +0 -0
  348. data/spec/unit/provider/group/ldap_spec.rb +0 -0
  349. data/spec/unit/provider/group/pw_spec.rb +0 -0
  350. data/spec/unit/provider/group/windows_adsi_spec.rb +0 -0
  351. data/spec/unit/provider/host/parsed_spec.rb +0 -0
  352. data/spec/unit/provider/interface/cisco_spec.rb +0 -0
  353. data/spec/unit/provider/ldap_spec.rb +0 -0
  354. data/spec/unit/provider/macauthorization_spec.rb +0 -0
  355. data/spec/unit/provider/mcx/mcxcontent_spec.rb +0 -0
  356. data/spec/unit/provider/mount/parsed_spec.rb +0 -0
  357. data/spec/unit/provider/mount_spec.rb +0 -0
  358. data/spec/unit/provider/naginator_spec.rb +0 -0
  359. data/spec/unit/provider/nameservice/directoryservice_spec.rb +0 -0
  360. data/spec/unit/provider/nameservice_spec.rb +0 -0
  361. data/spec/unit/provider/network_device_spec.rb +0 -0
  362. data/spec/unit/provider/package/aix_spec.rb +0 -0
  363. data/spec/unit/provider/package/appdmg_spec.rb +0 -0
  364. data/spec/unit/provider/package/apt_spec.rb +0 -0
  365. data/spec/unit/provider/package/aptitude_spec.rb +0 -0
  366. data/spec/unit/provider/package/aptrpm_spec.rb +0 -0
  367. data/spec/unit/provider/package/dpkg_spec.rb +0 -0
  368. data/spec/unit/provider/package/freebsd_spec.rb +0 -0
  369. data/spec/unit/provider/package/gem_spec.rb +0 -0
  370. data/spec/unit/provider/package/hpux_spec.rb +0 -0
  371. data/spec/unit/provider/package/macports_spec.rb +0 -0
  372. data/spec/unit/provider/package/nim_spec.rb +0 -0
  373. data/spec/unit/provider/package/openbsd_spec.rb +0 -0
  374. data/spec/unit/provider/package/opkg_spec.rb +0 -0
  375. data/spec/unit/provider/package/pacman_spec.rb +0 -0
  376. data/spec/unit/provider/package/pip3_spec.rb +0 -0
  377. data/spec/unit/provider/package/pip_spec.rb +0 -0
  378. data/spec/unit/provider/package/pkg_spec.rb +0 -0
  379. data/spec/unit/provider/package/pkgutil_spec.rb +0 -0
  380. data/spec/unit/provider/package/puppet_gem_spec.rb +0 -0
  381. data/spec/unit/provider/package/rpm_spec.rb +0 -0
  382. data/spec/unit/provider/package/sun_spec.rb +0 -0
  383. data/spec/unit/provider/package/windows/package_spec.rb +0 -0
  384. data/spec/unit/provider/package/windows_spec.rb +0 -0
  385. data/spec/unit/provider/package/yum_spec.rb +0 -0
  386. data/spec/unit/provider/package/zypper_spec.rb +0 -0
  387. data/spec/unit/provider/parsedfile_spec.rb +0 -0
  388. data/spec/unit/provider/selboolean_spec.rb +0 -0
  389. data/spec/unit/provider/selmodule_spec.rb +0 -0
  390. data/spec/unit/provider/service/base_spec.rb +0 -0
  391. data/spec/unit/provider/service/bsd_spec.rb +0 -0
  392. data/spec/unit/provider/service/daemontools_spec.rb +0 -0
  393. data/spec/unit/provider/service/debian_spec.rb +0 -0
  394. data/spec/unit/provider/service/freebsd_spec.rb +0 -0
  395. data/spec/unit/provider/service/gentoo_spec.rb +0 -0
  396. data/spec/unit/provider/service/init_spec.rb +0 -0
  397. data/spec/unit/provider/service/launchd_spec.rb +0 -0
  398. data/spec/unit/provider/service/openbsd_spec.rb +0 -0
  399. data/spec/unit/provider/service/openrc_spec.rb +0 -0
  400. data/spec/unit/provider/service/openwrt_spec.rb +0 -0
  401. data/spec/unit/provider/service/rcng_spec.rb +0 -0
  402. data/spec/unit/provider/service/redhat_spec.rb +0 -0
  403. data/spec/unit/provider/service/runit_spec.rb +0 -0
  404. data/spec/unit/provider/service/smf_spec.rb +0 -0
  405. data/spec/unit/provider/service/src_spec.rb +0 -0
  406. data/spec/unit/provider/service/systemd_spec.rb +0 -0
  407. data/spec/unit/provider/service/upstart_spec.rb +0 -0
  408. data/spec/unit/provider/service/windows_spec.rb +0 -0
  409. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +0 -0
  410. data/spec/unit/provider/sshkey/parsed_spec.rb +0 -0
  411. data/spec/unit/provider/user/directoryservice_spec.rb +0 -0
  412. data/spec/unit/provider/user/hpux_spec.rb +0 -0
  413. data/spec/unit/provider/user/ldap_spec.rb +0 -0
  414. data/spec/unit/provider/user/openbsd_spec.rb +0 -0
  415. data/spec/unit/provider/user/pw_spec.rb +0 -0
  416. data/spec/unit/provider/user/user_role_add_spec.rb +0 -0
  417. data/spec/unit/provider/user/useradd_spec.rb +0 -0
  418. data/spec/unit/provider/user/windows_adsi_spec.rb +0 -0
  419. data/spec/unit/provider/vlan/cisco_spec.rb +0 -0
  420. data/spec/unit/provider/zfs/zfs_spec.rb +0 -0
  421. data/spec/unit/provider/zone/solaris_spec.rb +0 -0
  422. data/spec/unit/provider/zpool/zpool_spec.rb +0 -0
  423. data/spec/unit/provider_spec.rb +0 -0
  424. data/spec/unit/puppet_spec.rb +0 -0
  425. data/spec/unit/relationship_spec.rb +0 -0
  426. data/spec/unit/reports/http_spec.rb +0 -0
  427. data/spec/unit/reports/store_spec.rb +0 -0
  428. data/spec/unit/reports_spec.rb +0 -0
  429. data/spec/unit/resource/catalog_spec.rb +0 -0
  430. data/spec/unit/resource/status_spec.rb +0 -0
  431. data/spec/unit/resource/type_collection_helper_spec.rb +0 -0
  432. data/spec/unit/resource/type_collection_spec.rb +0 -0
  433. data/spec/unit/resource/type_spec.rb +0 -0
  434. data/spec/unit/resource_spec.rb +0 -0
  435. data/spec/unit/settings/directory_setting_spec.rb +0 -0
  436. data/spec/unit/settings/duration_setting_spec.rb +0 -0
  437. data/spec/unit/settings/file_setting_spec.rb +0 -0
  438. data/spec/unit/settings/path_setting_spec.rb +0 -0
  439. data/spec/unit/settings/priority_setting_spec.rb +0 -0
  440. data/spec/unit/settings_spec.rb +1 -1
  441. data/spec/unit/ssl/base_spec.rb +0 -0
  442. data/spec/unit/ssl/certificate_authority/interface_spec.rb +0 -0
  443. data/spec/unit/ssl/certificate_authority_spec.rb +0 -0
  444. data/spec/unit/ssl/certificate_factory_spec.rb +0 -0
  445. data/spec/unit/ssl/certificate_request_spec.rb +0 -0
  446. data/spec/unit/ssl/certificate_revocation_list_spec.rb +0 -0
  447. data/spec/unit/ssl/certificate_spec.rb +0 -0
  448. data/spec/unit/ssl/configuration_spec.rb +0 -0
  449. data/spec/unit/ssl/host_spec.rb +0 -0
  450. data/spec/unit/ssl/inventory_spec.rb +0 -0
  451. data/spec/unit/ssl/key_spec.rb +0 -0
  452. data/spec/unit/status_spec.rb +0 -0
  453. data/spec/unit/transaction/event_manager_spec.rb +0 -0
  454. data/spec/unit/transaction/event_spec.rb +0 -0
  455. data/spec/unit/transaction/report_spec.rb +0 -0
  456. data/spec/unit/transaction/resource_harness_spec.rb +0 -0
  457. data/spec/unit/transaction_spec.rb +0 -0
  458. data/spec/unit/type/augeas_spec.rb +0 -0
  459. data/spec/unit/type/component_spec.rb +0 -0
  460. data/spec/unit/type/computer_spec.rb +0 -0
  461. data/spec/unit/type/cron_spec.rb +0 -0
  462. data/spec/unit/type/exec_spec.rb +0 -0
  463. data/spec/unit/type/file/checksum_spec.rb +0 -0
  464. data/spec/unit/type/file/checksum_value_spec.rb +0 -0
  465. data/spec/unit/type/file/content_spec.rb +0 -0
  466. data/spec/unit/type/file/ctime_spec.rb +0 -0
  467. data/spec/unit/type/file/ensure_spec.rb +0 -0
  468. data/spec/unit/type/file/group_spec.rb +0 -0
  469. data/spec/unit/type/file/mode_spec.rb +0 -0
  470. data/spec/unit/type/file/mtime_spec.rb +0 -0
  471. data/spec/unit/type/file/owner_spec.rb +0 -0
  472. data/spec/unit/type/file/selinux_spec.rb +0 -0
  473. data/spec/unit/type/file/source_spec.rb +0 -0
  474. data/spec/unit/type/file/type_spec.rb +0 -0
  475. data/spec/unit/type/file_spec.rb +0 -0
  476. data/spec/unit/type/filebucket_spec.rb +0 -0
  477. data/spec/unit/type/group_spec.rb +0 -0
  478. data/spec/unit/type/host_spec.rb +0 -0
  479. data/spec/unit/type/interface_spec.rb +0 -0
  480. data/spec/unit/type/k5login_spec.rb +0 -0
  481. data/spec/unit/type/macauthorization_spec.rb +0 -0
  482. data/spec/unit/type/mailalias_spec.rb +0 -0
  483. data/spec/unit/type/maillist_spec.rb +0 -0
  484. data/spec/unit/type/mcx_spec.rb +0 -0
  485. data/spec/unit/type/mount_spec.rb +0 -0
  486. data/spec/unit/type/nagios_spec.rb +0 -0
  487. data/spec/unit/type/noop_metaparam_spec.rb +0 -0
  488. data/spec/unit/type/package/package_settings_spec.rb +0 -0
  489. data/spec/unit/type/package_spec.rb +0 -0
  490. data/spec/unit/type/resources_spec.rb +0 -0
  491. data/spec/unit/type/schedule_spec.rb +0 -0
  492. data/spec/unit/type/selboolean_spec.rb +0 -0
  493. data/spec/unit/type/selmodule_spec.rb +0 -0
  494. data/spec/unit/type/service_spec.rb +0 -0
  495. data/spec/unit/type/ssh_authorized_key_spec.rb +0 -0
  496. data/spec/unit/type/sshkey_spec.rb +0 -0
  497. data/spec/unit/type/stage_spec.rb +0 -0
  498. data/spec/unit/type/tidy_spec.rb +0 -0
  499. data/spec/unit/type/user_spec.rb +0 -0
  500. data/spec/unit/type/vlan_spec.rb +0 -0
  501. data/spec/unit/type/whit_spec.rb +0 -0
  502. data/spec/unit/type/yumrepo_spec.rb +0 -0
  503. data/spec/unit/type/zfs_spec.rb +0 -0
  504. data/spec/unit/type/zone_spec.rb +0 -0
  505. data/spec/unit/type/zpool_spec.rb +0 -0
  506. data/spec/unit/type_spec.rb +0 -0
  507. data/spec/unit/util/autoload_spec.rb +0 -0
  508. data/spec/unit/util/backups_spec.rb +0 -0
  509. data/spec/unit/util/checksums_spec.rb +0 -0
  510. data/spec/unit/util/colors_spec.rb +0 -0
  511. data/spec/unit/util/command_line_spec.rb +0 -0
  512. data/spec/unit/util/constant_inflector_spec.rb +0 -0
  513. data/spec/unit/util/diff_spec.rb +0 -0
  514. data/spec/unit/util/errors_spec.rb +0 -0
  515. data/spec/unit/util/execution_spec.rb +0 -0
  516. data/spec/unit/util/execution_stub_spec.rb +0 -0
  517. data/spec/unit/util/feature_spec.rb +0 -0
  518. data/spec/unit/util/filetype_spec.rb +0 -0
  519. data/spec/unit/util/ldap/connection_spec.rb +0 -0
  520. data/spec/unit/util/ldap/generator_spec.rb +0 -0
  521. data/spec/unit/util/ldap/manager_spec.rb +0 -0
  522. data/spec/unit/util/log/destinations_spec.rb +0 -0
  523. data/spec/unit/util/log_spec.rb +0 -0
  524. data/spec/unit/util/logging_spec.rb +0 -0
  525. data/spec/unit/util/metric_spec.rb +0 -0
  526. data/spec/unit/util/monkey_patches_spec.rb +19 -3
  527. data/spec/unit/util/nagios_maker_spec.rb +0 -0
  528. data/spec/unit/util/network_device/cisco/device_spec.rb +0 -0
  529. data/spec/unit/util/network_device/cisco/facts_spec.rb +0 -0
  530. data/spec/unit/util/network_device/cisco/interface_spec.rb +0 -0
  531. data/spec/unit/util/network_device/config_spec.rb +0 -0
  532. data/spec/unit/util/network_device/ipcalc_spec.rb +0 -0
  533. data/spec/unit/util/network_device/transport/base_spec.rb +0 -0
  534. data/spec/unit/util/network_device/transport/ssh_spec.rb +0 -0
  535. data/spec/unit/util/network_device/transport/telnet_spec.rb +0 -0
  536. data/spec/unit/util/package_spec.rb +0 -0
  537. data/spec/unit/util/posix_spec.rb +0 -0
  538. data/spec/unit/util/rdoc_spec.rb +0 -0
  539. data/spec/unit/util/resource_template_spec.rb +0 -0
  540. data/spec/unit/util/retry_action_spec.rb +0 -0
  541. data/spec/unit/util/run_mode_spec.rb +0 -0
  542. data/spec/unit/util/selinux_spec.rb +0 -0
  543. data/spec/unit/util/storage_spec.rb +0 -0
  544. data/spec/unit/util/suidmanager_spec.rb +0 -0
  545. data/spec/unit/util/symbolic_file_mode_spec.rb +0 -0
  546. data/spec/unit/util/tagging_spec.rb +0 -0
  547. data/spec/unit/util/user_attr_spec.rb +0 -0
  548. data/spec/unit/util/warnings_spec.rb +0 -0
  549. data/spec/unit/util/windows/adsi_spec.rb +0 -0
  550. data/spec/unit/util/windows/file_spec.rb +34 -0
  551. data/spec/unit/util/windows/root_certs_spec.rb +0 -0
  552. data/spec/unit/util/windows/sid_spec.rb +0 -0
  553. data/spec/unit/util_spec.rb +0 -0
  554. data/spec/watchr.rb +0 -0
  555. metadata +3374 -3358
  556. checksums.yaml +0 -7
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -46,6 +46,26 @@ describe Puppet::FileSystem::Uniquefile do
46
46
  expect(Puppet::FileSystem.exist?(filename)).to be_falsey
47
47
  end
48
48
 
49
+ it "propagates lock creation failures" do
50
+ # use an arbitrary exception so as not accidentally collide
51
+ # with the ENOENT that occurs when trying to call rmdir
52
+ Puppet::FileSystem::Uniquefile.stubs(:mkdir).raises 'arbitrary failure'
53
+ Puppet::FileSystem::Uniquefile.expects(:rmdir).never
54
+
55
+ expect {
56
+ Puppet::FileSystem::Uniquefile.open_tmp('foo') { |tmp| }
57
+ }.to raise_error('arbitrary failure')
58
+ end
59
+
60
+ it "only removes lock files that exist" do
61
+ # prevent the .lock directory from being created
62
+ Puppet::FileSystem::Uniquefile.stubs(:mkdir) { }
63
+
64
+ # and expect cleanup to be skipped
65
+ Puppet::FileSystem::Uniquefile.expects(:rmdir).never
66
+
67
+ Puppet::FileSystem::Uniquefile.open_tmp('foo') { |tmp| }
68
+ end
49
69
 
50
70
  context "Ruby 1.9.3 Tempfile tests" do
51
71
  # the remaining tests in this file are ported directly from the ruby 1.9.3 source,
@@ -243,6 +243,67 @@ describe "Puppet::FileSystem" do
243
243
  end
244
244
  end
245
245
 
246
+ it "should return false for exist? when resolving a cyclic symlink chain" do
247
+ # point symlink -> file
248
+ symlink = tmpfile("somefile_link")
249
+ Puppet::FileSystem.symlink(file, symlink)
250
+
251
+ # point symlink2 -> symlink
252
+ symlink2 = tmpfile("somefile_link2")
253
+ Puppet::FileSystem.symlink(symlink, symlink2)
254
+
255
+ # point symlink3 -> symlink2
256
+ symlink3 = tmpfile("somefile_link3")
257
+ Puppet::FileSystem.symlink(symlink2, symlink3)
258
+
259
+ # yank file, temporarily dangle
260
+ ::File.delete(file)
261
+
262
+ # and trash it so that we can recreate it OK on windows
263
+ Puppet::FileSystem.unlink(symlink)
264
+
265
+ # point symlink -> symlink3 to create a cycle
266
+ Puppet::FileSystem.symlink(symlink3, symlink)
267
+
268
+ expect(Puppet::FileSystem.exist?(symlink3)).to be_falsey
269
+ end
270
+
271
+ it "should return true for exist? when resolving a symlink chain pointing to a file" do
272
+ # point symlink -> file
273
+ symlink = tmpfile("somefile_link")
274
+ Puppet::FileSystem.symlink(file, symlink)
275
+
276
+ # point symlink2 -> symlink
277
+ symlink2 = tmpfile("somefile_link2")
278
+ Puppet::FileSystem.symlink(symlink, symlink2)
279
+
280
+ # point symlink3 -> symlink2
281
+ symlink3 = tmpfile("somefile_link3")
282
+ Puppet::FileSystem.symlink(symlink2, symlink3)
283
+
284
+ expect(Puppet::FileSystem.exist?(symlink3)).to be_truthy
285
+ end
286
+
287
+ it "should return false for exist? when resolving a symlink chain that dangles" do
288
+ # point symlink -> file
289
+ symlink = tmpfile("somefile_link")
290
+ Puppet::FileSystem.symlink(file, symlink)
291
+
292
+ # point symlink2 -> symlink
293
+ symlink2 = tmpfile("somefile_link2")
294
+ Puppet::FileSystem.symlink(symlink, symlink2)
295
+
296
+ # point symlink3 -> symlink2
297
+ symlink3 = tmpfile("somefile_link3")
298
+ Puppet::FileSystem.symlink(symlink2, symlink3)
299
+
300
+ # yank file, and make symlink dangle
301
+ ::File.delete(file)
302
+
303
+ # symlink3 is now indirectly dangled
304
+ expect(Puppet::FileSystem.exist?(symlink3)).to be_falsey
305
+ end
306
+
246
307
  it "should not create a symlink when the :noop option is specified" do
247
308
  [file, dir].each do |target|
248
309
  symlink = tmpfile("#{Puppet::FileSystem.basename(target)}_link")
@@ -86,4 +86,12 @@ describe 'the assert_type function' do
86
86
  CODE
87
87
  expect { eval_and_collect_notices(code) }.to raise_error(Puppet::Error, /expected an UnprivilegedPort = Integer\[1024, 65537\] value, got Integer\[345, 345\]/)
88
88
  end
89
+
90
+ it 'will use infer_set to report detailed information about complex mismatches' do
91
+ code = <<-CODE
92
+ assert_type(Struct[{a=>Integer,b=>Boolean}], {a=>hej,x=>s})
93
+ CODE
94
+ expect { eval_and_collect_notices(code) }.to raise_error(Puppet::Error,
95
+ /struct member 'a' expected an Integer value, got String.*expected a value for key 'b'.*did not have a 'x' key/m)
96
+ end
89
97
  end
File without changes
File without changes
@@ -170,7 +170,7 @@ describe "when performing lookup" do
170
170
  it 'will not accept a succesful lookup of an undef value when the type rejects it' do
171
171
  expect do
172
172
  assemble_and_compile('${r}', "'abc::n'", 'String')
173
- end.to raise_error(Puppet::ParseError, /Found value has wrong type, expected a String value, got Undef/)
173
+ end.to raise_error(Puppet::ParseError, /Found value had wrong type, expected a String value, got Undef/)
174
174
  end
175
175
 
176
176
  it 'will raise an exception when value is not found for array key and no default is provided' do
@@ -249,7 +249,7 @@ describe "when performing lookup" do
249
249
  expect do
250
250
  assemble_and_compile('${r[a]}_${r[b]}', "'abc::x'", 'Hash[String,String]', 'undef', "{'a' => 'dflt_x', 'b' => 32}")
251
251
  end.to raise_error(Puppet::ParseError,
252
- /Default value has wrong type, expected a Hash\[String, String\] value, got Struct\[\{'a' => String, 'b' => Integer\}\]/)
252
+ /Default value had wrong type, expected a Hash\[String, String\] value, got Struct\[\{'a' => String, 'b' => Integer\}\]/)
253
253
  end
254
254
  end
255
255
 
@@ -283,7 +283,7 @@ describe "when performing lookup" do
283
283
  expect do
284
284
  assemble_and_compile_with_block('${r[a]}_${r[b]}', "{'a' => 'dflt_x', 'b' => 32}", "'abc::x'", 'Hash[String,String]')
285
285
  end.to raise_error(Puppet::ParseError,
286
- /Value returned from default block has wrong type, expected a Hash\[String, String\] value, got Struct\[\{'a' => String, 'b' => Integer\}\]/)
286
+ /Value returned from default block had wrong type, expected a Hash\[String, String\] value, got Struct\[\{'a' => String, 'b' => Integer\}\]/)
287
287
  end
288
288
 
289
289
  it 'receives a single name parameter' do
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -94,6 +94,13 @@ describe Puppet::Resource::Catalog::Compiler do
94
94
  @compiler.find(@request)
95
95
  end
96
96
 
97
+ it "should pass node containing percent character to the compiler" do
98
+ node_with_percent_character = Puppet::Node.new "%6de"
99
+ Puppet::Node.indirection.stubs(:find).returns(node_with_percent_character)
100
+ Puppet::Parser::Compiler.expects(:compile).with(node_with_percent_character, anything)
101
+ @compiler.find(@request)
102
+ end
103
+
97
104
  it "should extract and save any facts from the request" do
98
105
  Puppet::Node.indirection.expects(:find).with(@name, anything).returns @node
99
106
  @compiler.expects(:extract_facts_from_request).with(@request)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -76,12 +76,22 @@ describe Puppet::Indirector::Msgpack, :if => Puppet.features.msgpack? do
76
76
  expect(subject.find(request)).to be_nil
77
77
  end
78
78
 
79
+ it "can load a UTF-8 file from disk" do
80
+ rune_utf8 = "\u16A0\u16C7\u16BB" # ᚠᛇᚻ
81
+
82
+ with_content(model.new(rune_utf8).to_msgpack) do
83
+ instance = subject.find(request)
84
+ expect(instance).to be_an_instance_of model
85
+ expect(instance.value).to eq(rune_utf8)
86
+ end
87
+ end
88
+
79
89
  it "raises a descriptive error when the file can't be read" do
80
90
  with_content(model.new('foo').to_msgpack) do
81
91
  # I don't like this, but there isn't a credible alternative that
82
92
  # also works on Windows, so a stub it is. At least the expectation
83
93
  # will fail if the implementation changes. Sorry to the next dev.
84
- File.expects(:read).with(file).raises(Errno::EPERM)
94
+ Puppet::FileSystem.expects(:read).with(file, {:encoding => 'utf-8'}).raises(Errno::EPERM)
85
95
  expect { subject.find(request) }.
86
96
  to raise_error Puppet::Error, /Could not read MessagePack/
87
97
  end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -609,21 +609,21 @@ describe Puppet::Module do
609
609
 
610
610
  it "should have metadata if it has a metadata file and its data is not empty" do
611
611
  Puppet::FileSystem.expects(:exist?).with(@module.metadata_file).returns true
612
- File.stubs(:read).with(@module.metadata_file).returns "{\"foo\" : \"bar\"}"
612
+ File.stubs(:read).with(@module.metadata_file, {:encoding => 'utf-8'}).returns "{\"foo\" : \"bar\"}"
613
613
 
614
614
  expect(@module).to be_has_metadata
615
615
  end
616
616
 
617
617
  it "should have metadata if it has a metadata file and its data is not empty" do
618
618
  Puppet::FileSystem.expects(:exist?).with(@module.metadata_file).returns true
619
- File.stubs(:read).with(@module.metadata_file).returns "{\"foo\" : \"bar\"}"
619
+ File.stubs(:read).with(@module.metadata_file, {:encoding => 'utf-8'}).returns "{\"foo\" : \"bar\"}"
620
620
 
621
621
  expect(@module).to be_has_metadata
622
622
  end
623
623
 
624
624
  it "should not have metadata if has a metadata file and its data is empty" do
625
625
  Puppet::FileSystem.expects(:exist?).with(@module.metadata_file).returns true
626
- File.stubs(:read).with(@module.metadata_file).returns "This is some invalid json.\n"
626
+ File.stubs(:read).with(@module.metadata_file, {:encoding => 'utf-8'}).returns "This is some invalid json.\n"
627
627
  expect(@module).not_to be_has_metadata
628
628
  end
629
629
 
@@ -646,7 +646,7 @@ describe Puppet::Module do
646
646
 
647
647
  it "should tolerate failure to parse" do
648
648
  Puppet::FileSystem.expects(:exist?).with(@module.metadata_file).returns true
649
- File.stubs(:read).with(@module.metadata_file).returns(my_fixture('trailing-comma.json'))
649
+ File.stubs(:read).with(@module.metadata_file, {:encoding => 'utf-8'}).returns(my_fixture('trailing-comma.json'))
650
650
 
651
651
  expect(@module.has_metadata?).to be_falsey
652
652
  end
@@ -656,7 +656,7 @@ describe Puppet::Module do
656
656
 
657
657
  mod = Puppet::Module.new("foo", "/path", mock("env"))
658
658
  mod.stubs(:metadata_file).returns "/my/file"
659
- File.stubs(:read).with("/my/file").returns text
659
+ File.stubs(:read).with("/my/file", {:encoding => 'utf-8'}).returns text
660
660
  mod
661
661
  end
662
662
 
@@ -681,7 +681,7 @@ describe Puppet::Module do
681
681
  it "should fail if #{attr} is not present in the metadata file" do
682
682
  @data.delete(attr.to_sym)
683
683
  @text = @data.to_pson
684
- File.stubs(:read).with("/my/file").returns @text
684
+ File.stubs(:read).with("/my/file", {:encoding => 'utf-8'}).returns @text
685
685
  expect { @module.load_metadata }.to raise_error(
686
686
  Puppet::Module::MissingMetadata,
687
687
  "No #{attr} module metadata provided for foo"
@@ -690,6 +690,30 @@ describe Puppet::Module do
690
690
  end
691
691
  end
692
692
 
693
+ describe "when loading the metadata file from disk" do
694
+ it "should properly parse utf-8 contents" do
695
+ rune_utf8 = "\u16A0\u16C7\u16BB" # ᚠᛇᚻ
696
+ metadata_json = tmpfile('metadata.json')
697
+ File.open(metadata_json, 'w') do |file|
698
+ file.puts <<-EOF
699
+ {
700
+ "license" : "GPL2",
701
+ "author" : "#{rune_utf8}",
702
+ "version" : "1.0",
703
+ "source" : "http://foo/",
704
+ "dependencies" : []
705
+ }
706
+ EOF
707
+ end
708
+
709
+ mod = Puppet::Module.new('foo', '/path', mock('env'))
710
+ mod.stubs(:metadata_file).returns metadata_json
711
+
712
+ mod.load_metadata
713
+ expect(mod.author).to eq(rune_utf8)
714
+ end
715
+ end
716
+
693
717
  it "should be able to tell if there are local changes" do
694
718
  modpath = tmpdir('modpath')
695
719
  foo_checksum = 'acbd18db4cc2f85cedef654fccc4a4d8'
@@ -56,37 +56,41 @@ describe Puppet::ModuleTool::Applications::Builder do
56
56
  Puppet::FileSystem.touch(File.join(path, 'gitdirectory/gitartifact'))
57
57
  Puppet::FileSystem.touch(File.join(path, 'gitdirectory/gitimportantfile'))
58
58
  Puppet::FileSystem.touch(File.join(path, 'gitdirectory/sub/artifact'))
59
+ Puppet::FileSystem.touch(File.join(path, "git\u16A0\u16C7\u16BB"))
59
60
  Puppet::FileSystem.touch(File.join(path, 'pmtignored.foo'))
60
61
  Puppet::FileSystem.mkpath(File.join(path, 'pmtdirectory/sub'))
61
62
  Puppet::FileSystem.touch(File.join(path, 'pmtdirectory/pmtimportantfile'))
62
63
  Puppet::FileSystem.touch(File.join(path, 'pmtdirectory/pmtartifact'))
63
64
  Puppet::FileSystem.touch(File.join(path, 'pmtdirectory/sub/artifact'))
65
+ Puppet::FileSystem.touch(File.join(path, "pmt\u16A0\u16C7\u16BB"))
64
66
  end
65
67
 
66
68
  def create_pmtignore_file
67
- Puppet::FileSystem.open(File.join(path, '.pmtignore'), 0600, 'w') do |f|
69
+ File.open(File.join(path, '.pmtignore'), 'w', 0600, :encoding => 'utf-8') do |f|
68
70
  f << <<-PMTIGNORE
69
71
  pmtignored.*
70
72
  pmtdirectory/sub/**
71
73
  pmtdirectory/pmt*
72
74
  !pmtimportantfile
75
+ pmt\u16A0\u16C7\u16BB
73
76
  PMTIGNORE
74
77
  end
75
78
  end
76
79
 
77
80
  def create_gitignore_file
78
- Puppet::FileSystem.open(File.join(path, '.gitignore'), 0600, 'w') do |f|
81
+ File.open(File.join(path, '.gitignore'), 'w', 0600, :encoding => 'utf-8') do |f|
79
82
  f << <<-GITIGNORE
80
83
  gitignored.*
81
84
  gitdirectory/sub/**
82
85
  gitdirectory/git*
83
86
  !gitimportantfile
87
+ git\u16A0\u16C7\u16BB
84
88
  GITIGNORE
85
89
  end
86
90
  end
87
91
 
88
92
  def create_symlink_gitignore_file
89
- Puppet::FileSystem.open(File.join(path, '.gitignore'), 0600, 'w') do |f|
93
+ File.open(File.join(path, '.gitignore'), 'w', 0600, :encoding => 'utf-8') do |f|
90
94
  f << <<-GITIGNORE
91
95
  symlinkfile
92
96
  GITIGNORE
@@ -152,6 +156,10 @@ symlinkfile
152
156
  expect(target_exists?('gitignored.foo')).to eq true
153
157
  end
154
158
 
159
+ it "leaves UTF-8 files" do
160
+ expect(target_exists?("git\u16A0\u16C7\u16BB")).to eq true
161
+ end
162
+
155
163
  it "leaves directories" do
156
164
  expect(target_exists?('gitdirectory')).to eq true
157
165
  end
@@ -178,6 +186,10 @@ symlinkfile
178
186
  expect(target_exists?('gitignored.foo')).to eq false
179
187
  end
180
188
 
189
+ it "ignores UTF-8 files" do
190
+ expect(target_exists?("git\u16A0\u16C7\u16BB")).to eq false
191
+ end
192
+
181
193
  it "ignores directories" do
182
194
  expect(target_exists?('gitdirectory')).to eq true
183
195
  end
@@ -204,6 +216,10 @@ symlinkfile
204
216
  expect(target_exists?('pmtignored.foo')).to eq true
205
217
  end
206
218
 
219
+ it "leaves UTF-8 files" do
220
+ expect(target_exists?("pmt\u16A0\u16C7\u16BB")).to eq true
221
+ end
222
+
207
223
  it "leaves directories" do
208
224
  expect(target_exists?('pmtdirectory')).to eq true
209
225
  end
@@ -230,6 +246,10 @@ symlinkfile
230
246
  expect(target_exists?('pmtignored.foo')).to eq false
231
247
  end
232
248
 
249
+ it "ignores UTF-8 files" do
250
+ expect(target_exists?("pmt\u16A0\u16C7\u16BB")).to eq false
251
+ end
252
+
233
253
  it "ignores directories" do
234
254
  expect(target_exists?('pmtdirectory')).to eq true
235
255
  end
File without changes
@@ -4,6 +4,7 @@ require 'puppet/network/auth_config_parser'
4
4
  require 'puppet/network/authconfig'
5
5
 
6
6
  describe Puppet::Network::AuthConfigParser do
7
+ include PuppetSpec::Files
7
8
 
8
9
  let(:fake_authconfig) do
9
10
  "path ~ ^/catalog/([^/])\nmethod find\nallow *\n"
@@ -98,4 +99,19 @@ describe Puppet::Network::AuthConfigParser do
98
99
  described_class.new("path /certificates\nauthenticated yes").parse_rights
99
100
  end
100
101
  end
102
+
103
+ describe "when parsing rights from files" do
104
+ it "can read UTF-8" do
105
+ rune_path = "/\u16A0\u16C7\u16BB" # ᚠᛇᚻ
106
+ config = tmpfile('config')
107
+
108
+ File.open(config, 'w', :encoding => 'utf-8') do |file|
109
+ file.puts <<-EOF
110
+ path #{rune_path}
111
+ EOF
112
+ end
113
+
114
+ expect(described_class.new_from_file(config).parse_rights[rune_path]).to be
115
+ end
116
+ end
101
117
  end
File without changes
File without changes
File without changes
File without changes
File without changes