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
@@ -1,5 +1,6 @@
1
1
  require 'spec_helper'
2
2
  require 'puppet/pops'
3
+ require 'puppet_spec/compiler'
3
4
 
4
5
  module Puppet::Pops
5
6
  module Types
@@ -150,6 +151,92 @@ describe 'Puppet Type System' do
150
151
  end
151
152
  end
152
153
 
154
+ context 'Iterable type' do
155
+ include PuppetSpec::Compiler
156
+
157
+ it 'can be parameterized with element type' do
158
+ code = <<-CODE
159
+ function foo(Iterable[String] $x) {
160
+ $x.each |$e| {
161
+ notice $e
162
+ }
163
+ }
164
+ foo([bar, baz, cake])
165
+ CODE
166
+ expect(eval_and_collect_notices(code)).to eq(['bar', 'baz', 'cake'])
167
+ end
168
+ end
169
+
170
+ context 'Iterator type' do
171
+ include PuppetSpec::Compiler
172
+
173
+ let!(:iterint) { tf.iterator(tf.integer) }
174
+
175
+ context 'when testing instance?' do
176
+ it 'will consider an iterable on an integer is an instance of Iterator[Integer]' do
177
+ expect(iterint.instance?(Iterable.on(3))).to be_truthy
178
+ end
179
+
180
+ it 'will consider an iterable on string to be an instance of Iterator[Integer]' do
181
+ expect(iterint.instance?(Iterable.on('string'))).to be_falsey
182
+ end
183
+ end
184
+
185
+ context 'when testing assignable?' do
186
+ it 'will consider an iterator with an assignable type as assignable' do
187
+ expect(tf.iterator(tf.numeric).assignable?(iterint)).to be_truthy
188
+ end
189
+
190
+ it 'will not consider an iterator with a non assignable type as assignable' do
191
+ expect(tf.iterator(tf.string).assignable?(iterint)).to be_falsey
192
+ end
193
+ end
194
+
195
+ context 'when asked for an iterable type' do
196
+ it 'the default iterator type returns the default iterable type' do
197
+ expect(PIteratorType::DEFAULT.iterable_type).to be(PIterableType::DEFAULT)
198
+ end
199
+
200
+ it 'a typed iterator type returns the an equally typed iterable type' do
201
+ expect(iterint.iterable_type).to eq(tf.iterable(tf.integer))
202
+ end
203
+ end
204
+
205
+ it 'can be parameterized with an element type' do
206
+ code = <<-CODE
207
+ function foo(Iterator[String] $x) {
208
+ $x.each |$e| {
209
+ notice $e
210
+ }
211
+ }
212
+ foo([bar, baz, cake].reverse_each)
213
+ CODE
214
+ expect(eval_and_collect_notices(code)).to eq(['cake', 'baz', 'bar'])
215
+ end
216
+ end
217
+
218
+ context 'Collection type' do
219
+ include PuppetSpec::Compiler
220
+
221
+ it 'can be parameterized with a range' do
222
+ code = <<-CODE
223
+ notice(Collection[5, default] == Collection[5])
224
+ notice(Collection[5, 5] > Tuple[Integer, 0, 10])
225
+ CODE
226
+ expect(eval_and_collect_notices(code)).to eq(['true', 'false'])
227
+ end
228
+ end
229
+
230
+ context 'Struct type' do
231
+ context 'can be used as key in hash' do
232
+ it 'compacts optional in optional in optional to just optional' do
233
+ key1 = tf.struct({'foo' => tf.string})
234
+ key2 = tf.struct({'foo' => tf.string})
235
+ expect({key1 => 'hi'}[key2]).to eq('hi')
236
+ end
237
+ end
238
+ end
239
+
153
240
  context 'Optional type' do
154
241
  let!(:overlapping_ints) { tf.variant(tf.range(10, 20), tf.range(18, 28)) }
155
242
  let!(:optoptopt) { tf.optional(tf.optional(tf.optional(overlapping_ints))) }
@@ -169,6 +256,7 @@ describe 'Puppet Type System' do
169
256
  context 'NotUndef type' do
170
257
  let!(:nununu) { tf.not_undef(tf.not_undef(tf.not_undef(tf.any))) }
171
258
  let!(:nuopt) { tf.not_undef(tf.optional(tf.any)) }
259
+ let!(:nuoptint) { tf.not_undef(tf.optional(tf.integer)) }
172
260
 
173
261
  context 'when normalizing' do
174
262
  it 'compacts NotUndef in NotUndef in NotUndef to just NotUndef' do
@@ -178,6 +266,10 @@ describe 'Puppet Type System' do
178
266
  it 'compacts Optional in NotUndef to just NotUndef' do
179
267
  expect(nuopt.normalize).to eq(tf.not_undef(tf.any))
180
268
  end
269
+
270
+ it 'compacts NotUndef[Optional[Integer]] in NotUndef to just Integer' do
271
+ expect(nuoptint.normalize).to eq(tf.integer)
272
+ end
181
273
  end
182
274
  end
183
275
 
@@ -235,6 +327,129 @@ describe 'Puppet Type System' do
235
327
  )
236
328
  end
237
329
  end
330
+
331
+ context 'when generalizing' do
332
+ it 'will generalize and compact contained types' do
333
+ expect(tf.variant(tf.string(tf.range(3,3)), tf.string(tf.range(5,5))).generalize).to eq(tf.variant(tf.string))
334
+ end
335
+ end
336
+ end
337
+
338
+ context 'Type aliases' do
339
+ include PuppetSpec::Compiler
340
+
341
+ it 'will resolve nested objects using self recursion' do
342
+ code = <<-CODE
343
+ type Tree = Hash[String,Variant[String,Tree]]
344
+ notice({a => {b => {c => d}}} =~ Tree)
345
+ CODE
346
+ expect(eval_and_collect_notices(code)).to eq(['true'])
347
+ end
348
+
349
+ it 'will find mismatches using self recursion' do
350
+ code = <<-CODE
351
+ type Tree = Hash[String,Variant[String,Tree]]
352
+ notice({a => {b => {c => 1}}} =~ Tree)
353
+ CODE
354
+ expect(eval_and_collect_notices(code)).to eq(['false'])
355
+ end
356
+
357
+ it 'will not allow an alias chain to only contain aliases' do
358
+ code = <<-CODE
359
+ type Foo = Bar
360
+ type Fee = Foo
361
+ type Bar = Fee
362
+ notice(0 =~ Bar)
363
+ CODE
364
+ expect { eval_and_collect_notices(code) }.to raise_error(Puppet::Error, /Type alias 'Foo' cannot be resolved to a real type/)
365
+ end
366
+
367
+ it 'will not allow an alias chain that contains nothing but aliases and variants' do
368
+ code = <<-CODE
369
+ type Foo = Bar
370
+ type Fee = Foo
371
+ type Bar = Variant[Fee,Foo]
372
+ notice(0 =~ Bar)
373
+ CODE
374
+ expect { eval_and_collect_notices(code) }.to raise_error(Puppet::Error, /Type alias 'Foo' cannot be resolved to a real type/)
375
+ end
376
+
377
+ it 'will not allow an alias to directly reference itself' do
378
+ code = <<-CODE
379
+ type Foo = Foo
380
+ notice(0 =~ Foo)
381
+ CODE
382
+ expect { eval_and_collect_notices(code) }.to raise_error(Puppet::Error, /Type alias 'Foo' cannot be resolved to a real type/)
383
+ end
384
+
385
+ it 'will allow an alias to directly reference itself in a variant with other types' do
386
+ code = <<-CODE
387
+ type Foo = Variant[Foo,String]
388
+ notice(a =~ Foo)
389
+ CODE
390
+ expect(eval_and_collect_notices(code)).to eq(['true'])
391
+ end
392
+
393
+ it 'will allow an alias where a variant references an alias with a variant that references itself' do
394
+ code = <<-CODE
395
+ type X = Variant[Y, Integer]
396
+ type Y = Variant[X, String]
397
+
398
+ notice(X >= X)
399
+ notice(X >= Y)
400
+ notice(Y >= X)
401
+ CODE
402
+ expect(eval_and_collect_notices(code)).to eq(['true','true','true'])
403
+ end
404
+
405
+ it 'will detect a mismatch in an alias that directly references itself in a variant with other types' do
406
+ code = <<-CODE
407
+ type Foo = Variant[Foo,String]
408
+ notice(3 =~ Foo)
409
+ CODE
410
+ expect(eval_and_collect_notices(code)).to eq(['false'])
411
+ end
412
+
413
+ it 'will normalize a Variant containing a self reference so that the self reference is removed' do
414
+ code = <<-CODE
415
+ type Foo = Variant[Foo,String,Integer]
416
+ assert_type(Foo, /x/)
417
+ CODE
418
+ expect { eval_and_collect_notices(code) }.to raise_error(/expected a value of type String or Integer, got Regexp/)
419
+ end
420
+
421
+ it 'will handle a scalar correctly in combinations of nested aliased variants' do
422
+ code = <<-CODE
423
+ type Bar = Variant[Foo,Integer]
424
+ type Foo = Variant[Bar,String]
425
+ notice(a =~ Foo)
426
+ notice(1 =~ Foo)
427
+ notice(/x/ =~ Foo)
428
+ CODE
429
+ expect(eval_and_collect_notices(code)).to eq(['true', 'true', 'false'])
430
+ end
431
+
432
+ it 'will handle a non scalar correctly in combinations of nested aliased array with nested variants' do
433
+ code = <<-CODE
434
+ type Bar = Variant[Foo,Integer]
435
+ type Foo = Array[Variant[Bar,String]]
436
+ notice([a] =~ Foo)
437
+ notice([1] =~ Foo)
438
+ notice([/x/] =~ Foo)
439
+ CODE
440
+ expect(eval_and_collect_notices(code)).to eq(['true', 'true', 'false'])
441
+ end
442
+
443
+ it 'will handle a non scalar correctly in combinations of nested aliased variants with array' do
444
+ code = <<-CODE
445
+ type Bar = Variant[Foo,Array[Integer]]
446
+ type Foo = Variant[Bar,Array[String]]
447
+ notice([a] =~ Foo)
448
+ notice([1] =~ Foo)
449
+ notice([/x/] =~ Foo)
450
+ CODE
451
+ expect(eval_and_collect_notices(code)).to eq(['true', 'true', 'false'])
452
+ end
238
453
  end
239
454
  end
240
455
  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
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
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
File without changes
@@ -737,7 +737,7 @@ describe Puppet::Settings do
737
737
 
738
738
  Puppet::FileSystem.expects(:exist?).with(myfile).returns(true)
739
739
 
740
- Puppet::FileSystem.expects(:read).with(myfile).returns "[main]"
740
+ Puppet::FileSystem.expects(:read).with(myfile, :encoding => 'utf-8').returns "[main]"
741
741
 
742
742
  @settings.send(:parse_config_files)
743
743
  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
File without changes
File without changes
File without changes