puppet 6.0.10 → 6.1.0

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

Potentially problematic release.


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

Files changed (748) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/Gemfile.lock +31 -27
  4. data/Guardfile.example +76 -0
  5. data/LICENSE +189 -4
  6. data/MAINTAINERS +47 -0
  7. data/README.md +3 -3
  8. data/lib/hiera/scope.rb +0 -7
  9. data/lib/puppet.rb +6 -5
  10. data/lib/puppet/application.rb +3 -3
  11. data/lib/puppet/application/cert.rb +2 -2
  12. data/lib/puppet/application/device.rb +83 -109
  13. data/lib/puppet/application/filebucket.rb +1 -10
  14. data/lib/puppet/application/ssl.rb +0 -2
  15. data/lib/puppet/configurer.rb +9 -10
  16. data/lib/puppet/confine/false.rb +1 -7
  17. data/lib/puppet/confine/true.rb +1 -7
  18. data/lib/puppet/defaults.rb +39 -51
  19. data/lib/puppet/forge.rb +1 -4
  20. data/lib/puppet/functions/abs.rb +1 -1
  21. data/lib/puppet/functions/call.rb +1 -2
  22. data/lib/puppet/functions/new.rb +1 -1
  23. data/lib/puppet/indirector/request.rb +15 -26
  24. data/lib/puppet/network/http/connection.rb +12 -32
  25. data/lib/puppet/network/http/factory.rb +0 -5
  26. data/lib/puppet/pal/catalog_compiler.rb +96 -0
  27. data/lib/puppet/pal/compiler.rb +221 -0
  28. data/lib/puppet/pal/function_signature.rb +52 -0
  29. data/lib/puppet/pal/json_catalog_encoder.rb +67 -0
  30. data/lib/puppet/pal/pal_api.rb +15 -0
  31. data/lib/puppet/pal/pal_impl.rb +523 -0
  32. data/lib/puppet/pal/plan_signature.rb +71 -0
  33. data/lib/puppet/pal/script_compiler.rb +71 -0
  34. data/lib/puppet/pal/task_signature.rb +58 -0
  35. data/lib/puppet/parser/functions/generate.rb +7 -6
  36. data/lib/puppet/plugins/configuration.rb +5 -1
  37. data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -1
  38. data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -3
  39. data/lib/puppet/pops/issues.rb +0 -4
  40. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +4 -60
  41. data/lib/puppet/pops/model/factory.rb +4 -38
  42. data/lib/puppet/pops/model/pn_transformer.rb +0 -5
  43. data/lib/puppet/pops/parser/egrammar.ra +2 -2
  44. data/lib/puppet/pops/parser/heredoc_support.rb +7 -17
  45. data/lib/puppet/pops/parser/lexer2.rb +1 -6
  46. data/lib/puppet/pops/parser/locator.rb +86 -106
  47. data/lib/puppet/pops/parser/parser_support.rb +2 -11
  48. data/lib/puppet/pops/types/string_converter.rb +7 -2
  49. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  50. data/lib/puppet/pops/types/types.rb +3 -5
  51. data/lib/puppet/pops/validation/checker4_0.rb +13 -0
  52. data/lib/puppet/provider.rb +2 -1
  53. data/lib/puppet/provider/exec.rb +6 -1
  54. data/lib/puppet/provider/file/windows.rb +1 -49
  55. data/lib/puppet/provider/group/windows_adsi.rb +1 -4
  56. data/lib/puppet/provider/package.rb +0 -2
  57. data/lib/puppet/provider/package/dpkg.rb +2 -15
  58. data/lib/puppet/provider/package/gem.rb +42 -102
  59. data/lib/puppet/provider/package/pip.rb +111 -135
  60. data/lib/puppet/provider/package/pip3.rb +1 -1
  61. data/lib/puppet/provider/package/pkgng.rb +37 -21
  62. data/lib/puppet/provider/package/puppet_gem.rb +1 -1
  63. data/lib/puppet/provider/package/rpm.rb +16 -27
  64. data/lib/puppet/provider/package/windows.rb +1 -5
  65. data/lib/puppet/provider/package/yum.rb +1 -2
  66. data/lib/puppet/provider/service/systemd.rb +17 -0
  67. data/lib/puppet/provider/service/upstart.rb +5 -17
  68. data/lib/puppet/provider/service/windows.rb +8 -3
  69. data/lib/puppet/provider/user/directoryservice.rb +4 -16
  70. data/lib/puppet/provider/user/useradd.rb +13 -16
  71. data/lib/puppet/resource.rb +3 -1
  72. data/lib/puppet/rest/client.rb +83 -0
  73. data/lib/puppet/rest/route.rb +1 -1
  74. data/lib/puppet/settings.rb +5 -10
  75. data/lib/puppet/settings/server_list_setting.rb +0 -9
  76. data/lib/puppet/ssl/host.rb +11 -0
  77. data/lib/puppet/ssl/validator/default_validator.rb +0 -31
  78. data/lib/puppet/syntax_checkers/epp.rb +34 -0
  79. data/lib/puppet/syntax_checkers/pp.rb +34 -0
  80. data/lib/puppet/transaction.rb +7 -12
  81. data/lib/puppet/transaction/event_manager.rb +5 -1
  82. data/lib/puppet/transaction/resource_harness.rb +0 -1
  83. data/lib/puppet/type.rb +6 -0
  84. data/lib/puppet/type/exec.rb +5 -27
  85. data/lib/puppet/type/file/mode.rb +1 -6
  86. data/lib/puppet/type/file/source.rb +1 -0
  87. data/lib/puppet/type/filebucket.rb +8 -12
  88. data/lib/puppet/type/package.rb +11 -44
  89. data/lib/puppet/type/schedule.rb +0 -4
  90. data/lib/puppet/type/service.rb +12 -0
  91. data/lib/puppet/type/user.rb +1 -1
  92. data/lib/puppet/util/command_line.rb +1 -5
  93. data/lib/puppet/util/connection.rb +6 -15
  94. data/lib/puppet/util/http_proxy.rb +2 -3
  95. data/lib/puppet/util/log.rb +2 -7
  96. data/lib/puppet/util/pidlock.rb +1 -15
  97. data/lib/puppet/util/windows/process.rb +5 -73
  98. data/lib/puppet/util/windows/registry.rb +1 -7
  99. data/lib/puppet/util/windows/security.rb +8 -29
  100. data/lib/puppet/util/windows/service.rb +33 -27
  101. data/lib/puppet/util/windows/user.rb +4 -14
  102. data/lib/puppet/version.rb +1 -1
  103. data/lib/puppet_pal.rb +5 -1132
  104. data/locales/ja/puppet.po +297 -363
  105. data/locales/puppet.pot +445 -517
  106. data/man/man5/puppet.conf.5 +12 -20
  107. data/man/man8/puppet-agent.8 +1 -1
  108. data/man/man8/puppet-apply.8 +1 -1
  109. data/man/man8/puppet-catalog.8 +1 -1
  110. data/man/man8/puppet-config.8 +1 -1
  111. data/man/man8/puppet-describe.8 +1 -1
  112. data/man/man8/puppet-device.8 +1 -1
  113. data/man/man8/puppet-doc.8 +1 -1
  114. data/man/man8/puppet-epp.8 +1 -1
  115. data/man/man8/puppet-facts.8 +1 -1
  116. data/man/man8/puppet-filebucket.8 +2 -6
  117. data/man/man8/puppet-generate.8 +1 -1
  118. data/man/man8/puppet-help.8 +1 -1
  119. data/man/man8/puppet-key.8 +1 -1
  120. data/man/man8/puppet-lookup.8 +1 -1
  121. data/man/man8/puppet-man.8 +1 -1
  122. data/man/man8/puppet-module.8 +1 -1
  123. data/man/man8/puppet-node.8 +1 -1
  124. data/man/man8/puppet-parser.8 +1 -1
  125. data/man/man8/puppet-plugin.8 +1 -1
  126. data/man/man8/puppet-report.8 +1 -1
  127. data/man/man8/puppet-resource.8 +1 -1
  128. data/man/man8/puppet-script.8 +1 -1
  129. data/man/man8/puppet-ssl.8 +1 -1
  130. data/man/man8/puppet-status.8 +1 -1
  131. data/man/man8/puppet.8 +2 -2
  132. data/spec/fixtures/unit/provider/package/pkgng/pkg.query +7 -1
  133. data/spec/fixtures/unit/provider/package/pkgng/pkg.query.zsh +1 -0
  134. data/spec/integration/agent/logging_spec.rb +7 -5
  135. data/spec/integration/application/apply_spec.rb +16 -18
  136. data/spec/integration/application/doc_spec.rb +2 -1
  137. data/spec/integration/application/lookup_spec.rb +5 -5
  138. data/spec/integration/configurer_spec.rb +6 -5
  139. data/spec/integration/defaults_spec.rb +6 -5
  140. data/spec/integration/directory_environments_spec.rb +1 -1
  141. data/spec/integration/faces/config_spec.rb +4 -3
  142. data/spec/integration/faces/documentation_spec.rb +1 -0
  143. data/spec/integration/faces/plugin_spec.rb +1 -1
  144. data/spec/integration/file_bucket/file_spec.rb +4 -2
  145. data/spec/integration/file_serving/content_spec.rb +1 -0
  146. data/spec/integration/file_serving/fileset_spec.rb +1 -0
  147. data/spec/integration/file_serving/metadata_spec.rb +1 -0
  148. data/spec/integration/file_serving/terminus_helper_spec.rb +1 -0
  149. data/spec/integration/indirector/catalog/compiler_spec.rb +11 -10
  150. data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
  151. data/spec/integration/indirector/facts/facter_spec.rb +5 -4
  152. data/spec/integration/indirector/file_content/file_server_spec.rb +8 -7
  153. data/spec/integration/indirector/file_metadata/file_server_spec.rb +8 -7
  154. data/spec/integration/network/authconfig_spec.rb +24 -23
  155. data/spec/integration/network/formats_spec.rb +1 -0
  156. data/spec/integration/node/environment_spec.rb +1 -0
  157. data/spec/integration/node/facts_spec.rb +10 -9
  158. data/spec/integration/node_spec.rb +7 -6
  159. data/spec/integration/parser/catalog_spec.rb +5 -1
  160. data/spec/integration/parser/collection_spec.rb +2 -1
  161. data/spec/integration/parser/compiler_spec.rb +6 -6
  162. data/spec/integration/parser/scope_spec.rb +1 -1
  163. data/spec/integration/parser/undef_param_spec.rb +1 -1
  164. data/spec/integration/provider/service/init_spec.rb +5 -4
  165. data/spec/integration/provider/service/systemd_spec.rb +2 -0
  166. data/spec/integration/provider/service/windows_spec.rb +2 -1
  167. data/spec/integration/reference/providers_spec.rb +2 -1
  168. data/spec/integration/reports_spec.rb +2 -1
  169. data/spec/integration/resource/catalog_spec.rb +17 -14
  170. data/spec/integration/resource/type_collection_spec.rb +5 -4
  171. data/spec/integration/ssl/certificate_request_spec.rb +1 -0
  172. data/spec/integration/ssl/host_spec.rb +2 -1
  173. data/spec/integration/ssl/key_spec.rb +1 -0
  174. data/spec/integration/test/test_helper_spec.rb +1 -0
  175. data/spec/integration/transaction/report_spec.rb +11 -6
  176. data/spec/integration/transaction_spec.rb +19 -18
  177. data/spec/integration/type/exec_spec.rb +1 -0
  178. data/spec/integration/type/file_spec.rb +33 -13
  179. data/spec/integration/type/package_spec.rb +24 -20
  180. data/spec/integration/type/tidy_spec.rb +2 -1
  181. data/spec/integration/type_spec.rb +1 -0
  182. data/spec/integration/util/autoload_spec.rb +2 -1
  183. data/spec/integration/util/rdoc/parser_spec.rb +1 -0
  184. data/spec/integration/util/settings_spec.rb +1 -0
  185. data/spec/integration/util/windows/adsi_spec.rb +5 -3
  186. data/spec/integration/util/windows/principal_spec.rb +1 -0
  187. data/spec/integration/util/windows/process_spec.rb +6 -4
  188. data/spec/integration/util/windows/registry_spec.rb +51 -93
  189. data/spec/integration/util/windows/security_spec.rb +4 -2
  190. data/spec/integration/util/windows/user_spec.rb +20 -37
  191. data/spec/integration/util_spec.rb +7 -4
  192. data/spec/lib/puppet_spec/compiler.rb +1 -1
  193. data/spec/lib/puppet_spec/files.rb +1 -0
  194. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
  195. data/spec/lib/puppet_spec/scope.rb +2 -1
  196. data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
  197. data/spec/shared_behaviours/file_server_terminus.rb +9 -8
  198. data/spec/shared_behaviours/file_serving.rb +8 -6
  199. data/spec/shared_behaviours/file_serving_model.rb +5 -3
  200. data/spec/shared_behaviours/hiera_indirections.rb +4 -3
  201. data/spec/shared_behaviours/iterative_functions.rb +1 -0
  202. data/spec/shared_behaviours/memory_terminus.rb +2 -2
  203. data/spec/shared_examples/rhel_package_provider.rb +70 -112
  204. data/spec/spec_helper.rb +2 -11
  205. data/spec/unit/agent/disabler_spec.rb +5 -4
  206. data/spec/unit/agent/locker_spec.rb +13 -12
  207. data/spec/unit/agent_spec.rb +85 -80
  208. data/spec/unit/application/agent_spec.rb +93 -88
  209. data/spec/unit/application/apply_spec.rb +83 -82
  210. data/spec/unit/application/config_spec.rb +1 -0
  211. data/spec/unit/application/describe_spec.rb +7 -6
  212. data/spec/unit/application/device_spec.rb +419 -395
  213. data/spec/unit/application/doc_spec.rb +46 -44
  214. data/spec/unit/application/face_base_spec.rb +62 -61
  215. data/spec/unit/application/facts_spec.rb +4 -3
  216. data/spec/unit/application/filebucket_spec.rb +74 -66
  217. data/spec/unit/application/indirection_base_spec.rb +6 -8
  218. data/spec/unit/application/lookup_spec.rb +26 -26
  219. data/spec/unit/application/resource_spec.rb +48 -42
  220. data/spec/unit/application/ssl_spec.rb +3 -8
  221. data/spec/unit/application_spec.rb +98 -86
  222. data/spec/unit/capability_spec.rb +6 -6
  223. data/spec/unit/certificate_factory_spec.rb +5 -3
  224. data/spec/unit/configurer/downloader_spec.rb +21 -20
  225. data/spec/unit/configurer/fact_handler_spec.rb +3 -2
  226. data/spec/unit/configurer/plugin_handler_spec.rb +8 -41
  227. data/spec/unit/configurer_spec.rb +198 -194
  228. data/spec/unit/confine/exists_spec.rb +15 -17
  229. data/spec/unit/confine/false_spec.rb +6 -32
  230. data/spec/unit/confine/feature_spec.rb +5 -7
  231. data/spec/unit/confine/true_spec.rb +6 -32
  232. data/spec/unit/confine/variable_spec.rb +15 -14
  233. data/spec/unit/confine_collection_spec.rb +29 -28
  234. data/spec/unit/confine_spec.rb +14 -13
  235. data/spec/unit/confiner_spec.rb +11 -10
  236. data/spec/unit/context/trusted_information_spec.rb +1 -1
  237. data/spec/unit/daemon_spec.rb +36 -35
  238. data/spec/unit/data_providers/function_data_provider_spec.rb +1 -0
  239. data/spec/unit/data_providers/hiera_data_provider_spec.rb +1 -0
  240. data/spec/unit/datatypes_spec.rb +4 -3
  241. data/spec/unit/defaults_spec.rb +27 -18
  242. data/spec/unit/environments_spec.rb +7 -7
  243. data/spec/unit/etc_spec.rb +32 -30
  244. data/spec/unit/external/pson_spec.rb +1 -0
  245. data/spec/unit/face/catalog_spec.rb +1 -0
  246. data/spec/unit/face/config_spec.rb +35 -31
  247. data/spec/unit/face/epp_face_spec.rb +4 -3
  248. data/spec/unit/face/facts_spec.rb +6 -5
  249. data/spec/unit/face/generate_spec.rb +5 -4
  250. data/spec/unit/face/help_spec.rb +8 -7
  251. data/spec/unit/face/key_spec.rb +1 -0
  252. data/spec/unit/face/man_spec.rb +2 -1
  253. data/spec/unit/face/module/install_spec.rb +5 -3
  254. data/spec/unit/face/module/list_spec.rb +12 -2
  255. data/spec/unit/face/module/search_spec.rb +9 -11
  256. data/spec/unit/face/module/uninstall_spec.rb +8 -4
  257. data/spec/unit/face/node_spec.rb +24 -23
  258. data/spec/unit/face/parser_spec.rb +18 -3
  259. data/spec/unit/face/plugin_spec.rb +9 -36
  260. data/spec/unit/face/status_spec.rb +1 -0
  261. data/spec/unit/file_bucket/dipper_spec.rb +20 -24
  262. data/spec/unit/file_bucket/file_spec.rb +2 -0
  263. data/spec/unit/file_serving/base_spec.rb +15 -14
  264. data/spec/unit/file_serving/configuration/parser_spec.rb +28 -27
  265. data/spec/unit/file_serving/configuration_spec.rb +66 -63
  266. data/spec/unit/file_serving/content_spec.rb +11 -10
  267. data/spec/unit/file_serving/fileset_spec.rb +58 -63
  268. data/spec/unit/file_serving/http_metadata_spec.rb +7 -8
  269. data/spec/unit/file_serving/metadata_spec.rb +36 -36
  270. data/spec/unit/file_serving/mount/file_spec.rb +32 -31
  271. data/spec/unit/file_serving/mount/locales_spec.rb +24 -23
  272. data/spec/unit/file_serving/mount/modules_spec.rb +15 -14
  273. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +24 -23
  274. data/spec/unit/file_serving/mount/plugins_spec.rb +24 -23
  275. data/spec/unit/file_serving/mount/tasks_spec.rb +15 -14
  276. data/spec/unit/file_serving/mount_spec.rb +1 -0
  277. data/spec/unit/file_serving/terminus_helper_spec.rb +42 -37
  278. data/spec/unit/file_serving/terminus_selector_spec.rb +13 -12
  279. data/spec/unit/file_system/uniquefile_spec.rb +4 -4
  280. data/spec/unit/file_system_spec.rb +2 -2
  281. data/spec/unit/forge/errors_spec.rb +1 -1
  282. data/spec/unit/forge/forge_spec.rb +16 -17
  283. data/spec/unit/forge/module_release_spec.rb +18 -18
  284. data/spec/unit/forge/repository_spec.rb +30 -29
  285. data/spec/unit/forge_spec.rb +11 -15
  286. data/spec/unit/functions/binary_file_spec.rb +3 -3
  287. data/spec/unit/functions/contain_spec.rb +2 -0
  288. data/spec/unit/functions/defined_spec.rb +1 -0
  289. data/spec/unit/functions/epp_spec.rb +2 -2
  290. data/spec/unit/functions/find_file_spec.rb +7 -7
  291. data/spec/unit/functions/include_spec.rb +4 -0
  292. data/spec/unit/functions/lookup_fixture_spec.rb +1 -0
  293. data/spec/unit/functions/lookup_spec.rb +2 -1
  294. data/spec/unit/functions/module_directory_spec.rb +12 -12
  295. data/spec/unit/functions/new_spec.rb +0 -15
  296. data/spec/unit/functions/require_spec.rb +3 -0
  297. data/spec/unit/functions/shared.rb +8 -5
  298. data/spec/unit/functions/versioncmp_spec.rb +2 -1
  299. data/spec/unit/functions4_spec.rb +10 -9
  300. data/spec/unit/gettext/config_spec.rb +4 -4
  301. data/spec/unit/gettext/module_loading_spec.rb +7 -7
  302. data/spec/unit/graph/rb_tree_map_spec.rb +2 -0
  303. data/spec/unit/graph/relationship_graph_spec.rb +2 -1
  304. data/spec/unit/graph/simple_graph_spec.rb +10 -9
  305. data/spec/unit/hiera/scope_spec.rb +0 -7
  306. data/spec/unit/hiera_puppet_spec.rb +20 -20
  307. data/spec/unit/indirector/catalog/compiler_spec.rb +149 -147
  308. data/spec/unit/indirector/catalog/json_spec.rb +2 -1
  309. data/spec/unit/indirector/catalog/msgpack_spec.rb +1 -0
  310. data/spec/unit/indirector/catalog/rest_spec.rb +1 -0
  311. data/spec/unit/indirector/catalog/store_configs_spec.rb +1 -0
  312. data/spec/unit/indirector/catalog/yaml_spec.rb +1 -0
  313. data/spec/unit/indirector/certificate/file_spec.rb +1 -0
  314. data/spec/unit/indirector/certificate/rest_spec.rb +10 -8
  315. data/spec/unit/indirector/certificate_request/file_spec.rb +1 -0
  316. data/spec/unit/indirector/certificate_request/rest_spec.rb +1 -0
  317. data/spec/unit/indirector/direct_file_server_spec.rb +18 -17
  318. data/spec/unit/indirector/envelope_spec.rb +2 -1
  319. data/spec/unit/indirector/exec_spec.rb +5 -4
  320. data/spec/unit/indirector/face_spec.rb +9 -9
  321. data/spec/unit/indirector/facts/facter_spec.rb +43 -37
  322. data/spec/unit/indirector/facts/network_device_spec.rb +9 -8
  323. data/spec/unit/indirector/facts/rest_spec.rb +8 -7
  324. data/spec/unit/indirector/facts/store_configs_spec.rb +1 -0
  325. data/spec/unit/indirector/facts/yaml_spec.rb +1 -0
  326. data/spec/unit/indirector/file_bucket_file/file_spec.rb +4 -3
  327. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +1 -0
  328. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +5 -4
  329. data/spec/unit/indirector/file_content/file_server_spec.rb +1 -0
  330. data/spec/unit/indirector/file_content/file_spec.rb +1 -0
  331. data/spec/unit/indirector/file_content/rest_spec.rb +1 -0
  332. data/spec/unit/indirector/file_content/selector_spec.rb +1 -0
  333. data/spec/unit/indirector/file_metadata/file_server_spec.rb +1 -0
  334. data/spec/unit/indirector/file_metadata/file_spec.rb +13 -12
  335. data/spec/unit/indirector/file_metadata/rest_spec.rb +1 -0
  336. data/spec/unit/indirector/file_metadata/selector_spec.rb +1 -0
  337. data/spec/unit/indirector/file_server_spec.rb +87 -87
  338. data/spec/unit/indirector/indirection_spec.rb +226 -242
  339. data/spec/unit/indirector/json_spec.rb +9 -7
  340. data/spec/unit/indirector/key/file_spec.rb +22 -21
  341. data/spec/unit/indirector/memory_spec.rb +7 -6
  342. data/spec/unit/indirector/msgpack_spec.rb +9 -7
  343. data/spec/unit/indirector/node/exec_spec.rb +3 -2
  344. data/spec/unit/indirector/node/memory_spec.rb +4 -2
  345. data/spec/unit/indirector/node/msgpack_spec.rb +1 -0
  346. data/spec/unit/indirector/node/plain_spec.rb +4 -2
  347. data/spec/unit/indirector/node/rest_spec.rb +1 -0
  348. data/spec/unit/indirector/node/store_configs_spec.rb +1 -0
  349. data/spec/unit/indirector/node/yaml_spec.rb +1 -0
  350. data/spec/unit/indirector/none_spec.rb +5 -5
  351. data/spec/unit/indirector/plain_spec.rb +8 -7
  352. data/spec/unit/indirector/report/msgpack_spec.rb +1 -0
  353. data/spec/unit/indirector/report/processor_spec.rb +22 -21
  354. data/spec/unit/indirector/report/rest_spec.rb +12 -11
  355. data/spec/unit/indirector/report/yaml_spec.rb +1 -0
  356. data/spec/unit/indirector/request_spec.rb +12 -11
  357. data/spec/unit/indirector/resource/ral_spec.rb +54 -47
  358. data/spec/unit/indirector/resource/store_configs_spec.rb +1 -0
  359. data/spec/unit/indirector/rest_spec.rb +110 -113
  360. data/spec/unit/indirector/ssl_file_spec.rb +65 -64
  361. data/spec/unit/indirector/status/local_spec.rb +1 -0
  362. data/spec/unit/indirector/status/rest_spec.rb +1 -0
  363. data/spec/unit/indirector/store_configs_spec.rb +1 -0
  364. data/spec/unit/indirector/terminus_spec.rb +27 -27
  365. data/spec/unit/indirector/yaml_spec.rb +6 -5
  366. data/spec/unit/indirector_spec.rb +2 -1
  367. data/spec/unit/info_service_spec.rb +1 -1
  368. data/spec/unit/interface/action_builder_spec.rb +1 -0
  369. data/spec/unit/interface/action_manager_spec.rb +1 -0
  370. data/spec/unit/interface/action_spec.rb +3 -2
  371. data/spec/unit/interface/documentation_spec.rb +1 -0
  372. data/spec/unit/interface/face_collection_spec.rb +12 -19
  373. data/spec/unit/interface_spec.rb +3 -3
  374. data/spec/unit/man_spec.rb +4 -3
  375. data/spec/unit/module_spec.rb +51 -46
  376. data/spec/unit/module_tool/applications/installer_spec.rb +11 -10
  377. data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
  378. data/spec/unit/module_tool/applications/uninstaller_spec.rb +2 -1
  379. data/spec/unit/module_tool/applications/unpacker_spec.rb +13 -13
  380. data/spec/unit/module_tool/applications/upgrader_spec.rb +5 -5
  381. data/spec/unit/module_tool/install_directory_spec.rb +8 -8
  382. data/spec/unit/module_tool/installed_modules_spec.rb +3 -3
  383. data/spec/unit/module_tool/tar/gnu_spec.rb +6 -6
  384. data/spec/unit/module_tool/tar/mini_spec.rb +12 -12
  385. data/spec/unit/module_tool/tar_spec.rb +13 -12
  386. data/spec/unit/module_tool_spec.rb +12 -7
  387. data/spec/unit/network/auth_config_parser_spec.rb +13 -11
  388. data/spec/unit/network/authconfig_spec.rb +18 -17
  389. data/spec/unit/network/authorization_spec.rb +5 -4
  390. data/spec/unit/network/authstore_spec.rb +1 -0
  391. data/spec/unit/network/format_handler_spec.rb +1 -0
  392. data/spec/unit/network/format_spec.rb +10 -9
  393. data/spec/unit/network/format_support_spec.rb +29 -28
  394. data/spec/unit/network/formats_spec.rb +5 -4
  395. data/spec/unit/network/http/api/indirected_routes_spec.rb +29 -24
  396. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +2 -2
  397. data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -1
  398. data/spec/unit/network/http/api/master/v3/environments_spec.rb +7 -6
  399. data/spec/unit/network/http/api_spec.rb +2 -0
  400. data/spec/unit/network/http/compression_spec.rb +22 -21
  401. data/spec/unit/network/http/connection_spec.rb +121 -30
  402. data/spec/unit/network/http/factory_spec.rb +6 -11
  403. data/spec/unit/network/http/handler_spec.rb +18 -9
  404. data/spec/unit/network/http/nocache_pool_spec.rb +7 -6
  405. data/spec/unit/network/http/pool_spec.rb +29 -28
  406. data/spec/unit/network/http/request_spec.rb +2 -0
  407. data/spec/unit/network/http/response_spec.rb +13 -11
  408. data/spec/unit/network/http/route_spec.rb +1 -0
  409. data/spec/unit/network/http/session_spec.rb +2 -1
  410. data/spec/unit/network/http/site_spec.rb +1 -0
  411. data/spec/unit/network/http_pool_spec.rb +9 -18
  412. data/spec/unit/network/http_spec.rb +1 -0
  413. data/spec/unit/network/resolver_spec.rb +26 -25
  414. data/spec/unit/network/rights_spec.rb +53 -52
  415. data/spec/unit/node/environment_spec.rb +15 -14
  416. data/spec/unit/node/facts_spec.rb +7 -5
  417. data/spec/unit/node_spec.rb +10 -4
  418. data/spec/unit/other/selinux_spec.rb +1 -0
  419. data/spec/unit/parameter/boolean_spec.rb +2 -1
  420. data/spec/unit/parameter/package_options_spec.rb +2 -1
  421. data/spec/unit/parameter/path_spec.rb +1 -0
  422. data/spec/unit/parameter/value_collection_spec.rb +1 -0
  423. data/spec/unit/parameter/value_spec.rb +1 -0
  424. data/spec/unit/parameter_spec.rb +9 -9
  425. data/spec/unit/parser/ast/block_expression_spec.rb +8 -6
  426. data/spec/unit/parser/ast/leaf_spec.rb +21 -20
  427. data/spec/unit/parser/compiler_spec.rb +96 -84
  428. data/spec/unit/parser/environment_compiler_spec.rb +8 -7
  429. data/spec/unit/parser/files_spec.rb +1 -0
  430. data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
  431. data/spec/unit/parser/functions/digest_spec.rb +1 -0
  432. data/spec/unit/parser/functions/fail_spec.rb +2 -1
  433. data/spec/unit/parser/functions/file_spec.rb +14 -13
  434. data/spec/unit/parser/functions/fqdn_rand_spec.rb +6 -5
  435. data/spec/unit/parser/functions/generate_spec.rb +8 -7
  436. data/spec/unit/parser/functions/inline_template_spec.rb +1 -0
  437. data/spec/unit/parser/functions/regsubst_spec.rb +1 -0
  438. data/spec/unit/parser/functions/scanf_spec.rb +1 -0
  439. data/spec/unit/parser/functions/shellquote_spec.rb +1 -0
  440. data/spec/unit/parser/functions/split_spec.rb +1 -0
  441. data/spec/unit/parser/functions/sprintf_spec.rb +1 -0
  442. data/spec/unit/parser/functions/tag_spec.rb +2 -1
  443. data/spec/unit/parser/functions/tagged_spec.rb +3 -2
  444. data/spec/unit/parser/functions/template_spec.rb +13 -13
  445. data/spec/unit/parser/functions/versioncmp_spec.rb +2 -1
  446. data/spec/unit/parser/functions_spec.rb +7 -6
  447. data/spec/unit/parser/relationship_spec.rb +1 -0
  448. data/spec/unit/parser/resource_spec.rb +42 -42
  449. data/spec/unit/parser/scope_spec.rb +35 -39
  450. data/spec/unit/parser/templatewrapper_spec.rb +12 -11
  451. data/spec/unit/parser/type_loader_spec.rb +19 -17
  452. data/spec/unit/pops/adaptable_spec.rb +1 -0
  453. data/spec/unit/pops/benchmark_spec.rb +1 -0
  454. data/spec/unit/pops/evaluator/access_ops_spec.rb +1 -0
  455. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +1 -0
  456. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -0
  457. data/spec/unit/pops/evaluator/collections_ops_spec.rb +1 -0
  458. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +1 -0
  459. data/spec/unit/pops/evaluator/conditionals_spec.rb +1 -0
  460. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +47 -10
  461. data/spec/unit/pops/evaluator/logical_ops_spec.rb +1 -0
  462. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +1 -0
  463. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +1 -0
  464. data/spec/unit/pops/evaluator/variables_spec.rb +1 -0
  465. data/spec/unit/pops/factory_spec.rb +4 -3
  466. data/spec/unit/pops/issues_spec.rb +20 -19
  467. data/spec/unit/pops/loaders/loader_spec.rb +4 -8
  468. data/spec/unit/pops/loaders/loaders_spec.rb +31 -101
  469. data/spec/unit/pops/lookup/context_spec.rb +1 -0
  470. data/spec/unit/pops/lookup/interpolation_spec.rb +3 -2
  471. data/spec/unit/pops/merge_strategy_spec.rb +1 -0
  472. data/spec/unit/pops/migration_spec.rb +5 -3
  473. data/spec/unit/pops/model/model_spec.rb +1 -0
  474. data/spec/unit/pops/model/pn_transformer_spec.rb +1 -4
  475. data/spec/unit/pops/parser/locator_spec.rb +6 -48
  476. data/spec/unit/pops/parser/parse_application_spec.rb +1 -0
  477. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +1 -0
  478. data/spec/unit/pops/parser/parse_calls_spec.rb +1 -0
  479. data/spec/unit/pops/parser/parse_capabilities_spec.rb +1 -0
  480. data/spec/unit/pops/parser/parse_conditionals_spec.rb +1 -0
  481. data/spec/unit/pops/parser/parse_containers_spec.rb +1 -0
  482. data/spec/unit/pops/parser/parse_heredoc_spec.rb +15 -111
  483. data/spec/unit/pops/parser/parse_plan_spec.rb +1 -0
  484. data/spec/unit/pops/parser/parse_resource_spec.rb +1 -0
  485. data/spec/unit/pops/parser/parse_site_spec.rb +1 -0
  486. data/spec/unit/pops/parser/pn_parser_spec.rb +1 -0
  487. data/spec/unit/pops/pn_spec.rb +1 -0
  488. data/spec/unit/pops/resource/resource_type_impl_spec.rb +1 -0
  489. data/spec/unit/pops/serialization/serialization_spec.rb +1 -1
  490. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  491. data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
  492. data/spec/unit/pops/types/ruby_generator_spec.rb +2 -2
  493. data/spec/unit/pops/types/string_converter_spec.rb +5 -1
  494. data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
  495. data/spec/unit/pops/types/type_calculator_spec.rb +30 -30
  496. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +0 -9
  497. data/spec/unit/pops/types/type_parser_spec.rb +13 -13
  498. data/spec/unit/pops/validator/validator_spec.rb +2 -1
  499. data/spec/unit/pops/visitor_spec.rb +1 -0
  500. data/spec/unit/property/boolean_spec.rb +1 -1
  501. data/spec/unit/property/ensure_spec.rb +1 -0
  502. data/spec/unit/property/keyvalue_spec.rb +34 -32
  503. data/spec/unit/property/list_spec.rb +27 -26
  504. data/spec/unit/property/ordered_list_spec.rb +14 -10
  505. data/spec/unit/property_spec.rb +43 -42
  506. data/spec/unit/provider/aix_object_spec.rb +45 -47
  507. data/spec/unit/provider/command_spec.rb +9 -9
  508. data/spec/unit/provider/exec/posix_spec.rb +31 -6
  509. data/spec/unit/provider/exec/shell_spec.rb +1 -0
  510. data/spec/unit/provider/exec/windows_spec.rb +4 -2
  511. data/spec/unit/provider/exec_spec.rb +1 -0
  512. data/spec/unit/provider/file/posix_spec.rb +24 -22
  513. data/spec/unit/provider/file/windows_spec.rb +17 -15
  514. data/spec/unit/provider/group/aix_spec.rb +2 -3
  515. data/spec/unit/provider/group/groupadd_spec.rb +26 -30
  516. data/spec/unit/provider/group/ldap_spec.rb +18 -18
  517. data/spec/unit/provider/group/pw_spec.rb +11 -11
  518. data/spec/unit/provider/group/windows_adsi_spec.rb +53 -59
  519. data/spec/unit/provider/ldap_spec.rb +62 -61
  520. data/spec/unit/provider/nameservice/directoryservice_spec.rb +36 -35
  521. data/spec/unit/provider/nameservice_spec.rb +40 -38
  522. data/spec/unit/provider/package/aix_spec.rb +15 -15
  523. data/spec/unit/provider/package/appdmg_spec.rb +13 -13
  524. data/spec/unit/provider/package/apt_spec.rb +27 -44
  525. data/spec/unit/provider/package/aptitude_spec.rb +7 -6
  526. data/spec/unit/provider/package/aptrpm_spec.rb +12 -7
  527. data/spec/unit/provider/package/base_spec.rb +4 -4
  528. data/spec/unit/provider/package/dnf_spec.rb +20 -18
  529. data/spec/unit/provider/package/dpkg_spec.rb +53 -70
  530. data/spec/unit/provider/package/freebsd_spec.rb +11 -11
  531. data/spec/unit/provider/package/gem_spec.rb +55 -132
  532. data/spec/unit/provider/package/hpux_spec.rb +8 -8
  533. data/spec/unit/provider/package/macports_spec.rb +42 -46
  534. data/spec/unit/provider/package/nim_spec.rb +39 -30
  535. data/spec/unit/provider/package/openbsd_spec.rb +39 -36
  536. data/spec/unit/provider/package/opkg_spec.rb +26 -23
  537. data/spec/unit/provider/package/pacman_spec.rb +118 -97
  538. data/spec/unit/provider/package/pip3_spec.rb +0 -17
  539. data/spec/unit/provider/package/pip_spec.rb +106 -95
  540. data/spec/unit/provider/package/pkg_spec.rb +109 -109
  541. data/spec/unit/provider/package/pkgdmg_spec.rb +63 -65
  542. data/spec/unit/provider/package/pkgin_spec.rb +8 -10
  543. data/spec/unit/provider/package/pkgng_spec.rb +31 -22
  544. data/spec/unit/provider/package/pkgutil_spec.rb +49 -45
  545. data/spec/unit/provider/package/portage_spec.rb +74 -70
  546. data/spec/unit/provider/package/puppet_gem_spec.rb +13 -37
  547. data/spec/unit/provider/package/rpm_spec.rb +76 -154
  548. data/spec/unit/provider/package/sun_spec.rb +18 -16
  549. data/spec/unit/provider/package/tdnf_spec.rb +2 -2
  550. data/spec/unit/provider/package/up2date_spec.rb +4 -2
  551. data/spec/unit/provider/package/urpmi_spec.rb +17 -15
  552. data/spec/unit/provider/package/windows/exe_package_spec.rb +15 -12
  553. data/spec/unit/provider/package/windows/msi_package_spec.rb +22 -19
  554. data/spec/unit/provider/package/windows/package_spec.rb +42 -37
  555. data/spec/unit/provider/package/windows_spec.rb +32 -47
  556. data/spec/unit/provider/package/yum_spec.rb +7 -7
  557. data/spec/unit/provider/package/zypper_spec.rb +87 -87
  558. data/spec/unit/provider/parsedfile_spec.rb +45 -44
  559. data/spec/unit/provider/service/base_spec.rb +5 -4
  560. data/spec/unit/provider/service/bsd_spec.rb +29 -27
  561. data/spec/unit/provider/service/daemontools_spec.rb +35 -35
  562. data/spec/unit/provider/service/debian_spec.rb +38 -38
  563. data/spec/unit/provider/service/freebsd_spec.rb +18 -18
  564. data/spec/unit/provider/service/gentoo_spec.rb +55 -50
  565. data/spec/unit/provider/service/init_spec.rb +52 -53
  566. data/spec/unit/provider/service/launchd_spec.rb +116 -138
  567. data/spec/unit/provider/service/openbsd_spec.rb +50 -50
  568. data/spec/unit/provider/service/openrc_spec.rb +45 -43
  569. data/spec/unit/provider/service/openwrt_spec.rb +31 -26
  570. data/spec/unit/provider/service/rcng_spec.rb +14 -14
  571. data/spec/unit/provider/service/redhat_spec.rb +43 -45
  572. data/spec/unit/provider/service/runit_spec.rb +27 -29
  573. data/spec/unit/provider/service/smf_spec.rb +66 -74
  574. data/spec/unit/provider/service/src_spec.rb +47 -46
  575. data/spec/unit/provider/service/systemd_spec.rb +136 -109
  576. data/spec/unit/provider/service/upstart_spec.rb +93 -77
  577. data/spec/unit/provider/service/windows_spec.rb +41 -33
  578. data/spec/unit/provider/user/aix_spec.rb +31 -31
  579. data/spec/unit/provider/user/directoryservice_spec.rb +114 -146
  580. data/spec/unit/provider/user/hpux_spec.rb +16 -16
  581. data/spec/unit/provider/user/ldap_spec.rb +57 -57
  582. data/spec/unit/provider/user/openbsd_spec.rb +12 -10
  583. data/spec/unit/provider/user/pw_spec.rb +35 -37
  584. data/spec/unit/provider/user/user_role_add_spec.rb +93 -93
  585. data/spec/unit/provider/user/useradd_spec.rb +92 -93
  586. data/spec/unit/provider/user/windows_adsi_spec.rb +60 -59
  587. data/spec/unit/provider_spec.rb +35 -35
  588. data/spec/unit/puppet_pal_2pec.rb +5 -4
  589. data/spec/unit/puppet_pal_spec.rb +1 -0
  590. data/spec/unit/puppet_spec.rb +7 -6
  591. data/spec/unit/relationship_spec.rb +1 -0
  592. data/spec/unit/reports/http_spec.rb +23 -21
  593. data/spec/unit/reports/store_spec.rb +4 -3
  594. data/spec/unit/reports_spec.rb +14 -12
  595. data/spec/unit/resource/capability_finder_spec.rb +17 -15
  596. data/spec/unit/resource/catalog_spec.rb +68 -72
  597. data/spec/unit/resource/status_spec.rb +8 -6
  598. data/spec/unit/resource/type_collection_spec.rb +18 -17
  599. data/spec/unit/resource/type_spec.rb +35 -34
  600. data/spec/unit/resource_spec.rb +63 -36
  601. data/spec/unit/rest/client_spec.rb +135 -0
  602. data/spec/unit/rest/route_spec.rb +6 -6
  603. data/spec/unit/scheduler/job_spec.rb +1 -0
  604. data/spec/unit/scheduler/scheduler_spec.rb +1 -0
  605. data/spec/unit/scheduler/splay_job_spec.rb +2 -1
  606. data/spec/unit/settings/array_setting_spec.rb +1 -1
  607. data/spec/unit/settings/autosign_setting_spec.rb +9 -9
  608. data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
  609. data/spec/unit/settings/config_file_spec.rb +1 -0
  610. data/spec/unit/settings/directory_setting_spec.rb +7 -2
  611. data/spec/unit/settings/duration_setting_spec.rb +2 -1
  612. data/spec/unit/settings/enum_setting_spec.rb +1 -1
  613. data/spec/unit/settings/environment_conf_spec.rb +6 -4
  614. data/spec/unit/settings/file_setting_spec.rb +46 -44
  615. data/spec/unit/settings/path_setting_spec.rb +2 -1
  616. data/spec/unit/settings/priority_setting_spec.rb +2 -1
  617. data/spec/unit/settings/string_setting_spec.rb +15 -14
  618. data/spec/unit/settings/terminus_setting_spec.rb +2 -1
  619. data/spec/unit/settings/value_translator_spec.rb +1 -0
  620. data/spec/unit/settings_spec.rb +224 -253
  621. data/spec/unit/ssl/base_spec.rb +15 -14
  622. data/spec/unit/ssl/certificate_request_spec.rb +58 -62
  623. data/spec/unit/ssl/certificate_spec.rb +25 -23
  624. data/spec/unit/ssl/digest_spec.rb +1 -0
  625. data/spec/unit/ssl/host_spec.rb +149 -166
  626. data/spec/unit/ssl/key_spec.rb +31 -30
  627. data/spec/unit/ssl/validator_spec.rb +39 -40
  628. data/spec/unit/task_spec.rb +45 -44
  629. data/spec/unit/transaction/additional_resource_generator_spec.rb +5 -3
  630. data/spec/unit/transaction/event_manager_spec.rb +88 -87
  631. data/spec/unit/transaction/event_spec.rb +15 -16
  632. data/spec/unit/transaction/persistence_spec.rb +17 -16
  633. data/spec/unit/transaction/report_spec.rb +12 -11
  634. data/spec/unit/transaction/resource_harness_spec.rb +31 -52
  635. data/spec/unit/transaction_spec.rb +87 -140
  636. data/spec/unit/type/component_spec.rb +1 -0
  637. data/spec/unit/type/exec_spec.rb +50 -101
  638. data/spec/unit/type/file/checksum_spec.rb +10 -9
  639. data/spec/unit/type/file/checksum_value_spec.rb +32 -31
  640. data/spec/unit/type/file/content_spec.rb +61 -58
  641. data/spec/unit/type/file/ctime_spec.rb +1 -0
  642. data/spec/unit/type/file/ensure_spec.rb +13 -12
  643. data/spec/unit/type/file/group_spec.rb +7 -5
  644. data/spec/unit/type/file/mode_spec.rb +6 -4
  645. data/spec/unit/type/file/mtime_spec.rb +1 -0
  646. data/spec/unit/type/file/owner_spec.rb +8 -6
  647. data/spec/unit/type/file/selinux_spec.rb +19 -17
  648. data/spec/unit/type/file/source_spec.rb +101 -104
  649. data/spec/unit/type/file/type_spec.rb +1 -0
  650. data/spec/unit/type/file_spec.rb +185 -195
  651. data/spec/unit/type/filebucket_spec.rb +10 -11
  652. data/spec/unit/type/group_spec.rb +8 -6
  653. data/spec/unit/type/noop_metaparam_spec.rb +2 -1
  654. data/spec/unit/type/package/package_settings_spec.rb +23 -44
  655. data/spec/unit/type/package_spec.rb +57 -56
  656. data/spec/unit/type/resources_spec.rb +74 -72
  657. data/spec/unit/type/schedule_spec.rb +26 -24
  658. data/spec/unit/type/service_spec.rb +75 -49
  659. data/spec/unit/type/stage_spec.rb +1 -0
  660. data/spec/unit/type/tidy_spec.rb +62 -61
  661. data/spec/unit/type/user_spec.rb +25 -24
  662. data/spec/unit/type/whit_spec.rb +1 -0
  663. data/spec/unit/type_spec.rb +54 -55
  664. data/spec/unit/util/at_fork_spec.rb +19 -18
  665. data/spec/unit/util/autoload_spec.rb +56 -55
  666. data/spec/unit/util/backups_spec.rb +35 -34
  667. data/spec/unit/util/character_encoding_spec.rb +5 -5
  668. data/spec/unit/util/checksums_spec.rb +39 -38
  669. data/spec/unit/util/colors_spec.rb +2 -1
  670. data/spec/unit/util/command_line_spec.rb +20 -40
  671. data/spec/unit/util/constant_inflector_spec.rb +1 -0
  672. data/spec/unit/util/diff_spec.rb +8 -7
  673. data/spec/unit/util/errors_spec.rb +1 -0
  674. data/spec/unit/util/execution_spec.rb +163 -187
  675. data/spec/unit/util/execution_stub_spec.rb +1 -0
  676. data/spec/unit/util/feature_spec.rb +14 -21
  677. data/spec/unit/util/filetype_spec.rb +49 -49
  678. data/spec/unit/util/http_proxy_spec.rb +12 -12
  679. data/spec/unit/util/inifile_spec.rb +31 -26
  680. data/spec/unit/util/json_lockfile_spec.rb +5 -3
  681. data/spec/unit/util/ldap/connection_spec.rb +25 -26
  682. data/spec/unit/util/ldap/generator_spec.rb +1 -0
  683. data/spec/unit/util/ldap/manager_spec.rb +101 -102
  684. data/spec/unit/util/lockfile_spec.rb +1 -0
  685. data/spec/unit/util/log/destinations_spec.rb +33 -30
  686. data/spec/unit/util/log_spec.rb +34 -48
  687. data/spec/unit/util/logging_spec.rb +72 -58
  688. data/spec/unit/util/metric_spec.rb +1 -0
  689. data/spec/unit/util/monkey_patches_spec.rb +9 -7
  690. data/spec/unit/util/multi_match_spec.rb +1 -0
  691. data/spec/unit/util/network_device/config_spec.rb +1 -0
  692. data/spec/unit/util/network_device/transport/base_spec.rb +6 -5
  693. data/spec/unit/util/network_device_spec.rb +9 -7
  694. data/spec/unit/util/package_spec.rb +1 -0
  695. data/spec/unit/util/pidlock_spec.rb +15 -60
  696. data/spec/unit/util/plist_spec.rb +33 -40
  697. data/spec/unit/util/posix_spec.rb +51 -54
  698. data/spec/unit/util/rdoc_spec.rb +10 -9
  699. data/spec/unit/util/reference_spec.rb +1 -0
  700. data/spec/unit/util/resource_template_spec.rb +20 -20
  701. data/spec/unit/util/retry_action_spec.rb +8 -7
  702. data/spec/unit/util/rubygems_spec.rb +8 -7
  703. data/spec/unit/util/run_mode_spec.rb +4 -3
  704. data/spec/unit/util/selinux_spec.rb +72 -79
  705. data/spec/unit/util/splayer_spec.rb +9 -8
  706. data/spec/unit/util/ssl_spec.rb +1 -0
  707. data/spec/unit/util/storage_spec.rb +23 -22
  708. data/spec/unit/util/suidmanager_spec.rb +54 -45
  709. data/spec/unit/util/symbolic_file_mode_spec.rb +1 -0
  710. data/spec/unit/util/tag_set_spec.rb +1 -0
  711. data/spec/unit/util/tagging_spec.rb +1 -0
  712. data/spec/unit/util/terminal_spec.rb +10 -9
  713. data/spec/unit/util/user_attr_spec.rb +2 -1
  714. data/spec/unit/util/warnings_spec.rb +4 -3
  715. data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
  716. data/spec/unit/util/watcher_spec.rb +21 -51
  717. data/spec/unit/util/windows/access_control_entry_spec.rb +1 -0
  718. data/spec/unit/util/windows/access_control_list_spec.rb +1 -0
  719. data/spec/unit/util/windows/adsi_spec.rb +138 -136
  720. data/spec/unit/util/windows/api_types_spec.rb +1 -0
  721. data/spec/unit/util/windows/eventlog_spec.rb +12 -9
  722. data/spec/unit/util/windows/file_spec.rb +1 -0
  723. data/spec/unit/util/windows/root_certs_spec.rb +1 -0
  724. data/spec/unit/util/windows/security_descriptor_spec.rb +2 -0
  725. data/spec/unit/util/windows/service_spec.rb +103 -100
  726. data/spec/unit/util/windows/sid_spec.rb +13 -11
  727. data/spec/unit/util/windows/string_spec.rb +1 -0
  728. data/spec/unit/util_spec.rb +57 -55
  729. data/spec/unit/version_spec.rb +6 -6
  730. metadata +20 -32
  731. data/CODEOWNERS +0 -30
  732. data/ext/autotest/Rakefile +0 -8
  733. data/ext/autotest/config +0 -43
  734. data/ext/autotest/readme.rst +0 -16
  735. data/lib/puppet/confine/boolean.rb +0 -45
  736. data/lib/puppet/provider/package_targetable.rb +0 -68
  737. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load2.rb +0 -11
  738. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load3.rb +0 -11
  739. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load4.rb +0 -11
  740. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load5.rb +0 -12
  741. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/good_func_load.rb +0 -9
  742. data/spec/fixtures/unit/provider/package/pkgng/pkg.info +0 -7
  743. data/spec/fixtures/unit/provider/package/pkgng/pkg.query_absent +0 -1
  744. data/spec/integration/network/http_pool_spec.rb +0 -120
  745. data/spec/integration/provider/file/windows_spec.rb +0 -162
  746. data/spec/lib/puppet_spec/https.rb +0 -166
  747. data/spec/unit/settings/server_list_setting_spec.rb +0 -21
  748. data/spec/watchr.rb +0 -137
@@ -1,139 +1,143 @@
1
+ #! /usr/bin/env ruby
2
+
1
3
  require 'spec_helper'
2
4
 
3
- describe Puppet::Type.type(:package).provider(:portage) do
5
+ provider = Puppet::Type.type(:package).provider(:portage)
6
+
7
+ describe provider do
4
8
  before do
5
- packagename = "sl"
6
- @resource = double('resource', :should => true)
7
- allow(@resource).to receive(:[]).with(:name).and_return(packagename)
8
- allow(@resource).to receive(:[]).with(:install_options).and_return(['--foo', '--bar'])
9
- allow(@resource).to receive(:[]).with(:uninstall_options).and_return(['--foo', { '--bar' => 'baz', '--baz' => 'foo' }])
9
+ packagename="sl"
10
+ @resource = stub('resource', :should => true)
11
+ @resource.stubs(:[]).with(:name).returns(packagename)
12
+ @resource.stubs(:[]).with(:install_options).returns(['--foo', '--bar'])
13
+ @resource.stubs(:[]).with(:uninstall_options).returns(['--foo', { '--bar' => 'baz', '--baz' => 'foo' }])
10
14
 
11
15
  unslotted_packagename = "dev-lang/ruby"
12
- @unslotted_resource = double('resource', :should => true)
13
- allow(@unslotted_resource).to receive(:should).with(:ensure).and_return(:latest)
14
- allow(@unslotted_resource).to receive(:[]).with(:name).and_return(unslotted_packagename)
15
- allow(@unslotted_resource).to receive(:[]).with(:install_options).and_return([])
16
+ @unslotted_resource = stub('resource', :should => true)
17
+ @unslotted_resource.stubs(:should).with(:ensure).returns :latest
18
+ @unslotted_resource.stubs(:[]).with(:name).returns(unslotted_packagename)
19
+ @unslotted_resource.stubs(:[]).with(:install_options).returns([])
16
20
 
17
21
  slotted_packagename = "dev-lang/ruby:2.1"
18
- @slotted_resource = double('resource', :should => true)
19
- allow(@slotted_resource).to receive(:[]).with(:name).and_return(slotted_packagename)
20
- allow(@slotted_resource).to receive(:[]).with(:install_options).and_return(['--foo', { '--bar' => 'baz', '--baz' => 'foo' }])
22
+ @slotted_resource = stub('resource', :should => true)
23
+ @slotted_resource.stubs(:[]).with(:name).returns(slotted_packagename)
24
+ @slotted_resource.stubs(:[]).with(:install_options).returns(['--foo', { '--bar' => 'baz', '--baz' => 'foo' }])
21
25
 
22
26
  versioned_packagename = "dev-lang/ruby-1.9.3"
23
- @versioned_resource = double('resource', :should => true)
24
- allow(@versioned_resource).to receive(:[]).with(:name).and_return(versioned_packagename)
25
- allow(@versioned_resource).to receive(:[]).with(:uninstall_options).and_return([])
27
+ @versioned_resource = stub('resource', :should => true)
28
+ @versioned_resource.stubs(:[]).with(:name).returns(versioned_packagename)
29
+ @versioned_resource.stubs(:[]).with(:uninstall_options).returns([])
26
30
 
27
31
  versioned_slotted_packagename = "=dev-lang/ruby-1.9.3:1.9"
28
- @versioned_slotted_resource = double('resource', :should => true)
29
- allow(@versioned_slotted_resource).to receive(:[]).with(:name).and_return(versioned_slotted_packagename)
30
- allow(@versioned_slotted_resource).to receive(:[]).with(:uninstall_options).and_return([])
32
+ @versioned_slotted_resource = stub('resource', :should => true)
33
+ @versioned_slotted_resource.stubs(:[]).with(:name).returns(versioned_slotted_packagename)
34
+ @versioned_slotted_resource.stubs(:[]).with(:uninstall_options).returns([])
31
35
 
32
36
  set_packagename = "@system"
33
- @set_resource = double('resource', :should => true)
34
- allow(@set_resource).to receive(:[]).with(:name).and_return(set_packagename)
35
- allow(@set_resource).to receive(:[]).with(:install_options).and_return([])
37
+ @set_resource = stub('resource', :should => true)
38
+ @set_resource.stubs(:[]).with(:name).returns(set_packagename)
39
+ @set_resource.stubs(:[]).with(:install_options).returns([])
36
40
 
37
41
  package_sets = "system\nworld\n"
38
- @provider = described_class.new(@resource)
39
- allow(@provider).to receive(:qatom).and_return({:category=>nil, :pn=>"sl", :pv=>nil, :pr=>nil, :slot=>nil, :pfx=>nil, :sfx=>nil})
40
- allow(@provider.class).to receive(:emerge).with('--list-sets').and_return(package_sets)
41
- @unslotted_provider = described_class.new(@unslotted_resource)
42
- allow(@unslotted_provider).to receive(:qatom).and_return({:category=>"dev-lang", :pn=>"ruby", :pv=>nil, :pr=>nil, :slot=>nil, :pfx=>nil, :sfx=>nil})
43
- allow(@unslotted_provider.class).to receive(:emerge).with('--list-sets').and_return(package_sets)
44
- @slotted_provider = described_class.new(@slotted_resource)
45
- allow(@slotted_provider).to receive(:qatom).and_return({:category=>"dev-lang", :pn=>"ruby", :pv=>nil, :pr=>nil, :slot=>":2.1", :pfx=>nil, :sfx=>nil})
46
- allow(@slotted_provider.class).to receive(:emerge).with('--list-sets').and_return(package_sets)
47
- @versioned_provider = described_class.new(@versioned_resource)
48
- allow(@versioned_provider).to receive(:qatom).and_return({:category=>"dev-lang", :pn=>"ruby", :pv=>"1.9.3", :pr=>nil, :slot=>nil, :pfx=>nil, :sfx=>nil})
49
- allow(@versioned_provider.class).to receive(:emerge).with('--list-sets').and_return(package_sets)
50
- @versioned_slotted_provider = described_class.new(@versioned_slotted_resource)
51
- allow(@versioned_slotted_provider).to receive(:qatom).and_return({:category=>"dev-lang", :pn=>"ruby", :pv=>"1.9.3", :pr=>nil, :slot=>":1.9", :pfx=>"=", :sfx=>nil})
52
- allow(@versioned_slotted_provider.class).to receive(:emerge).with('--list-sets').and_return(package_sets)
53
- @set_provider = described_class.new(@set_resource)
54
- allow(@set_provider).to receive(:qatom).and_return({:category=>nil, :pn=>"@system", :pv=>nil, :pr=>nil, :slot=>nil, :pfx=>nil, :sfx=>nil})
55
- allow(@set_provider.class).to receive(:emerge).with('--list-sets').and_return(package_sets)
56
-
57
- portage= double(:executable => "foo",:execute => true)
58
- allow(Puppet::Provider::CommandDefiner).to receive(:define).and_return(portage)
59
-
60
- @nomatch_result = ""
61
- @match_result = "app-misc sl [] [5.02] [] [] [5.02] [5.02:0] http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/index_e.html https://github.com/mtoyoda/sl/ sophisticated graphical program which corrects your miss typing\n"
42
+ @provider = provider.new(@resource)
43
+ @provider.stubs(:qatom).returns({:category=>nil, :pn=>"sl", :pv=>nil, :pr=>nil, :slot=>nil, :pfx=>nil, :sfx=>nil})
44
+ @provider.class.stubs(:emerge).with('--list-sets').returns(package_sets)
45
+ @unslotted_provider = provider.new(@unslotted_resource)
46
+ @unslotted_provider.stubs(:qatom).returns({:category=>"dev-lang", :pn=>"ruby", :pv=>nil, :pr=>nil, :slot=>nil, :pfx=>nil, :sfx=>nil})
47
+ @unslotted_provider.class.stubs(:emerge).with('--list-sets').returns(package_sets)
48
+ @slotted_provider = provider.new(@slotted_resource)
49
+ @slotted_provider.stubs(:qatom).returns({:category=>"dev-lang", :pn=>"ruby", :pv=>nil, :pr=>nil, :slot=>":2.1", :pfx=>nil, :sfx=>nil})
50
+ @slotted_provider.class.stubs(:emerge).with('--list-sets').returns(package_sets)
51
+ @versioned_provider = provider.new(@versioned_resource)
52
+ @versioned_provider.stubs(:qatom).returns({:category=>"dev-lang", :pn=>"ruby", :pv=>"1.9.3", :pr=>nil, :slot=>nil, :pfx=>nil, :sfx=>nil})
53
+ @versioned_provider.class.stubs(:emerge).with('--list-sets').returns(package_sets)
54
+ @versioned_slotted_provider = provider.new(@versioned_slotted_resource)
55
+ @versioned_slotted_provider.stubs(:qatom).returns({:category=>"dev-lang", :pn=>"ruby", :pv=>"1.9.3", :pr=>nil, :slot=>":1.9", :pfx=>"=", :sfx=>nil})
56
+ @versioned_slotted_provider.class.stubs(:emerge).with('--list-sets').returns(package_sets)
57
+ @set_provider = provider.new(@set_resource)
58
+ @set_provider.stubs(:qatom).returns({:category=>nil, :pn=>"@system", :pv=>nil, :pr=>nil, :slot=>nil, :pfx=>nil, :sfx=>nil})
59
+ @set_provider.class.stubs(:emerge).with('--list-sets').returns(package_sets)
60
+
61
+ portage = stub(:executable => "foo",:execute => true)
62
+ Puppet::Provider::CommandDefiner.stubs(:define).returns(portage)
63
+
64
+ @nomatch_result = ""
65
+ @match_result = "app-misc sl [] [5.02] [] [] [5.02] [5.02:0] http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/index_e.html https://github.com/mtoyoda/sl/ sophisticated graphical program which corrects your miss typing\n"
62
66
  @slot_match_result = "dev-lang ruby [2.1.8] [2.1.9] [2.1.8:2.1] [2.1.8] [2.1.9,,,,,,,] [2.1.9:2.1] http://www.ruby-lang.org/ An object-oriented scripting language\n"
63
67
  end
64
68
 
65
69
  it "is versionable" do
66
- expect(described_class).to be_versionable
70
+ expect(provider).to be_versionable
67
71
  end
68
72
 
69
73
  it "is reinstallable" do
70
- expect(described_class).to be_reinstallable
74
+ expect(provider).to be_reinstallable
71
75
  end
72
76
 
73
77
  it 'should support string install options' do
74
- expect(@provider).to receive(:emerge).with('--foo', '--bar', @resource[:name])
78
+ @provider.expects(:emerge).with('--foo', '--bar', @resource[:name])
75
79
 
76
80
  @provider.install
77
81
  end
78
82
 
79
83
  it 'should support updating' do
80
- expect(@unslotted_provider).to receive(:emerge).with('--update', @unslotted_resource[:name])
84
+ @unslotted_provider.expects(:emerge).with('--update', @unslotted_resource[:name])
81
85
 
82
86
  @unslotted_provider.install
83
87
  end
84
88
 
85
89
  it 'should support hash install options' do
86
- expect(@slotted_provider).to receive(:emerge).with('--foo', '--bar=baz', '--baz=foo', @slotted_resource[:name])
90
+ @slotted_provider.expects(:emerge).with('--foo', '--bar=baz', '--baz=foo', @slotted_resource[:name])
87
91
 
88
92
  @slotted_provider.install
89
93
  end
90
94
 
91
95
  it 'should support hash uninstall options' do
92
- expect(@provider).to receive(:emerge).with('--rage-clean', '--foo', '--bar=baz', '--baz=foo', @resource[:name])
96
+ @provider.expects(:emerge).with('--rage-clean', '--foo', '--bar=baz', '--baz=foo', @resource[:name])
93
97
 
94
98
  @provider.uninstall
95
99
  end
96
100
 
97
101
  it 'should support uninstall of specific version' do
98
- expect(@versioned_provider).to receive(:emerge).with('--rage-clean', @versioned_resource[:name])
102
+ @versioned_provider.expects(:emerge).with('--rage-clean', @versioned_resource[:name])
99
103
 
100
104
  @versioned_provider.uninstall
101
105
  end
102
106
 
103
107
  it 'should support uninstall of specific version and slot' do
104
- expect(@versioned_slotted_provider).to receive(:emerge).with('--rage-clean', @versioned_slotted_resource[:name])
108
+ @versioned_slotted_provider.expects(:emerge).with('--rage-clean', @versioned_slotted_resource[:name])
105
109
 
106
110
  @versioned_slotted_provider.uninstall
107
111
  end
108
112
 
109
113
  it "uses :emerge to install packages" do
110
- expect(@provider).to receive(:emerge)
114
+ @provider.expects(:emerge)
111
115
 
112
116
  @provider.install
113
117
  end
114
118
 
115
119
  it "uses query to find the latest package" do
116
- expect(@provider).to receive(:query).and_return({:versions_available => "myversion"})
120
+ @provider.expects(:query).returns({:versions_available => "myversion"})
117
121
 
118
122
  @provider.latest
119
123
  end
120
124
 
121
125
  it "uses eix to search the lastest version of a package" do
122
- allow(@provider).to receive(:update_eix)
123
- expect(@provider).to receive(:eix).and_return(StringIO.new(@match_result))
126
+ @provider.stubs(:update_eix)
127
+ @provider.expects(:eix).returns(StringIO.new(@match_result))
124
128
 
125
129
  @provider.query
126
130
  end
127
131
 
128
132
  it "allows to emerge package sets" do
129
- expect(@set_provider).to receive(:emerge).with(@set_resource[:name])
133
+ @set_provider.expects(:emerge).with(@set_resource[:name])
130
134
 
131
135
  @set_provider.install
132
136
  end
133
137
 
134
138
  it "allows to emerge and update package sets" do
135
- allow(@set_resource).to receive(:should).with(:ensure).and_return(:latest)
136
- expect(@set_provider).to receive(:emerge).with('--update', @set_resource[:name])
139
+ @set_resource.stubs(:should).with(:ensure).returns :latest
140
+ @set_provider.expects(:emerge).with('--update', @set_resource[:name])
137
141
 
138
142
  @set_provider.install
139
143
  end
@@ -147,16 +151,16 @@ describe Puppet::Type.type(:package).provider(:portage) do
147
151
  end
148
152
 
149
153
  it "query uses default arguments" do
150
- allow(@provider).to receive(:update_eix)
151
- expect(@provider).to receive(:eix).and_return(StringIO.new(@match_result))
152
- expect(@provider.class).to receive(:eix_search_arguments).and_return([])
154
+ @provider.stubs(:update_eix)
155
+ @provider.expects(:eix).returns(StringIO.new(@match_result))
156
+ @provider.class.expects(:eix_search_arguments).returns([])
153
157
 
154
158
  @provider.query
155
159
  end
156
160
 
157
161
  it "can handle search output with empty square brackets" do
158
- allow(@provider).to receive(:update_eix)
159
- expect(@provider).to receive(:eix).and_return(StringIO.new(@match_result))
162
+ @provider.stubs(:update_eix)
163
+ @provider.expects(:eix).returns(StringIO.new(@match_result))
160
164
 
161
165
  expect(@provider.query[:name]).to eq("sl")
162
166
  end
@@ -186,8 +190,8 @@ describe Puppet::Type.type(:package).provider(:portage) do
186
190
  end
187
191
 
188
192
  it "can handle search output with slots for unslotted packages" do
189
- allow(@unslotted_provider).to receive(:update_eix)
190
- expect(@unslotted_provider).to receive(:eix).and_return(StringIO.new(@slot_match_result))
193
+ @unslotted_provider.stubs(:update_eix)
194
+ @unslotted_provider.expects(:eix).returns(StringIO.new(@slot_match_result))
191
195
 
192
196
  result = @unslotted_provider.query
193
197
  expect(result[:name]).to eq('ruby')
@@ -196,8 +200,8 @@ describe Puppet::Type.type(:package).provider(:portage) do
196
200
  end
197
201
 
198
202
  it "can handle search output with slots" do
199
- allow(@slotted_provider).to receive(:update_eix)
200
- expect(@slotted_provider).to receive(:eix).and_return(StringIO.new(@slot_match_result))
203
+ @slotted_provider.stubs(:update_eix)
204
+ @slotted_provider.expects(:eix).returns(StringIO.new(@slot_match_result))
201
205
 
202
206
  result = @slotted_provider.query
203
207
  expect(result[:name]).to eq('ruby')
@@ -15,74 +15,50 @@ describe Puppet::Type.type(:package).provider(:puppet_gem) do
15
15
  end
16
16
 
17
17
  if Puppet::Util::Platform.windows?
18
- let(:provider_gem_cmd) { 'gem' }
18
+ let(:puppet_gem) { 'gem' }
19
19
  else
20
- let(:provider_gem_cmd) { '/opt/puppetlabs/puppet/bin/gem' }
20
+ let(:puppet_gem) { '/opt/puppetlabs/puppet/bin/gem' }
21
21
  end
22
22
 
23
- let(:execute_options) { {:failonfail => true, :combine => true, :custom_environment => {"HOME"=>ENV["HOME"]}} }
24
-
25
23
  before :each do
26
24
  resource.provider = provider
27
- allow(described_class).to receive(:command).with(:gemcmd).and_return(provider_gem_cmd)
28
25
  end
29
26
 
30
27
  context "when installing" do
31
- before :each do
32
- allow(provider).to receive(:rubygem_version).and_return('1.9.9')
33
- end
34
-
35
- it "should use the path to the gem command" do
36
- allow(described_class).to receive(:validate_command).with(provider_gem_cmd)
37
- expect(described_class).to receive(:execute).with(be_a(Array), execute_options) { |args| expect(args[0]).to eq(provider_gem_cmd) }.and_return('')
28
+ it "should use the path to the gem" do
29
+ described_class.expects(:which).with(puppet_gem).returns(puppet_gem)
30
+ provider.expects(:execute).with { |args| args[0] == puppet_gem }.returns ''
38
31
  provider.install
39
32
  end
40
33
 
41
34
  it "should not append install_options by default" do
42
- expect(described_class).to receive(:execute_gem_command).with(provider_gem_cmd, %w{install --no-rdoc --no-ri myresource}).and_return('')
35
+ provider.expects(:execute).with { |args| args.length == 5 }.returns ''
43
36
  provider.install
44
37
  end
45
38
 
46
39
  it "should allow setting an install_options parameter" do
47
40
  resource[:install_options] = [ '--force', {'--bindir' => '/usr/bin' } ]
48
- expect(described_class).to receive(:execute_gem_command).with(provider_gem_cmd, %w{install --force --bindir=/usr/bin --no-rdoc --no-ri myresource}).and_return('')
41
+ provider.expects(:execute).with { |args| args[2] == '--force' && args[3] == '--bindir=/usr/bin' }.returns ''
49
42
  provider.install
50
43
  end
51
44
  end
52
45
 
53
46
  context "when uninstalling" do
54
- it "should use the path to the gem command" do
55
- allow(described_class).to receive(:validate_command).with(provider_gem_cmd)
56
- expect(described_class).to receive(:execute).with(be_a(Array), execute_options) { |args| expect(args[0]).to eq(provider_gem_cmd) }.and_return('')
57
- provider.uninstall
47
+ it "should use the path to the gem" do
48
+ described_class.expects(:which).with(puppet_gem).returns(puppet_gem)
49
+ provider.expects(:execute).with { |args| args[0] == puppet_gem }.returns ''
50
+ provider.install
58
51
  end
59
52
 
60
53
  it "should not append uninstall_options by default" do
61
- expect(described_class).to receive(:execute_gem_command).with(provider_gem_cmd, %w{uninstall --executables --all myresource}).and_return('')
54
+ provider.expects(:execute).with { |args| args.length == 5 }.returns ''
62
55
  provider.uninstall
63
56
  end
64
57
 
65
58
  it "should allow setting an uninstall_options parameter" do
66
59
  resource[:uninstall_options] = [ '--force', {'--bindir' => '/usr/bin' } ]
67
- expect(described_class).to receive(:execute_gem_command).with(provider_gem_cmd, %w{uninstall --executables --all myresource --force --bindir=/usr/bin}).and_return('')
60
+ provider.expects(:execute).with { |args| args[5] == '--force' && args[6] == '--bindir=/usr/bin' }.returns ''
68
61
  provider.uninstall
69
62
  end
70
63
  end
71
-
72
- context 'calculated specificity' do
73
- context 'when is not defaultfor' do
74
- subject { described_class.specificity }
75
- it { is_expected.to eql 1 }
76
- end
77
-
78
- context 'when is defaultfor' do
79
- let(:os) { Facter.value(:operatingsystem) }
80
- subject do
81
- described_class.defaultfor(operatingsystem: os)
82
- described_class.specificity
83
- end
84
- it { is_expected.to be > 100 }
85
- end
86
- end
87
-
88
64
  end
@@ -1,6 +1,9 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
 
3
- describe Puppet::Type.type(:package).provider(:rpm) do
4
+ provider_class = Puppet::Type.type(:package).provider(:rpm)
5
+
6
+ describe provider_class do
4
7
  let (:packages) do
5
8
  <<-RPM_OUTPUT
6
9
  'cracklib-dicts 0 2.8.9 3.3 x86_64
@@ -23,7 +26,7 @@ describe Puppet::Type.type(:package).provider(:rpm) do
23
26
  end
24
27
 
25
28
  let(:provider) do
26
- provider = subject()
29
+ provider = provider_class.new
27
30
  provider.resource = resource
28
31
  provider
29
32
  end
@@ -35,15 +38,15 @@ describe Puppet::Type.type(:package).provider(:rpm) do
35
38
  let(:rpm_version) { "RPM version 5.0.0\n" }
36
39
 
37
40
  before(:each) do
38
- allow(Puppet::Util).to receive(:which).with("rpm").and_return("/bin/rpm")
39
- allow(described_class).to receive(:which).with("rpm").and_return("/bin/rpm")
40
- described_class.instance_variable_set("@current_version", nil)
41
- expect(Puppet::Type::Package::ProviderRpm).to receive(:execute)
41
+ Puppet::Util.stubs(:which).with("rpm").returns("/bin/rpm")
42
+ provider_class.stubs(:which).with("rpm").returns("/bin/rpm")
43
+ provider_class.instance_variable_set("@current_version", nil)
44
+ Puppet::Type::Package::ProviderRpm.expects(:execute)
42
45
  .with(["/bin/rpm", "--version"])
43
- .and_return(rpm_version).at_most(:once)
44
- expect(Puppet::Util::Execution).to receive(:execute)
46
+ .returns(rpm_version).at_most_once
47
+ Puppet::Util::Execution.expects(:execute)
45
48
  .with(["/bin/rpm", "--version"], execute_options)
46
- .and_return(Puppet::Util::Execution::ProcessOutput.new(rpm_version, 0)).at_most(:once)
49
+ .returns(Puppet::Util::Execution::ProcessOutput.new(rpm_version, 0)).at_most_once
47
50
  end
48
51
 
49
52
  describe 'provider features' do
@@ -56,44 +59,34 @@ describe Puppet::Type.type(:package).provider(:rpm) do
56
59
  describe "self.instances" do
57
60
  describe "with a modern version of RPM" do
58
61
  it "includes all the modern flags" do
59
- expect(Puppet::Util::Execution).to receive(:execpipe)
60
- .with("/bin/rpm -qa --nosignature --nodigest --qf '#{nevra_format}'")
61
- .and_yield(packages)
62
+ Puppet::Util::Execution.expects(:execpipe).with("/bin/rpm -qa --nosignature --nodigest --qf '#{nevra_format}'").yields(packages)
62
63
 
63
- described_class.instances
64
+ provider_class.instances
64
65
  end
65
66
  end
66
67
 
67
68
  describe "with a version of RPM < 4.1" do
68
69
  let(:rpm_version) { "RPM version 4.0.2\n" }
69
-
70
70
  it "excludes the --nosignature flag" do
71
- expect(Puppet::Util::Execution).to receive(:execpipe)
72
- .with("/bin/rpm -qa --nodigest --qf '#{nevra_format}'")
73
- .and_yield(packages)
71
+ Puppet::Util::Execution.expects(:execpipe).with("/bin/rpm -qa --nodigest --qf '#{nevra_format}'").yields(packages)
74
72
 
75
- described_class.instances
73
+ provider_class.instances
76
74
  end
77
75
  end
78
76
 
79
77
  describe "with a version of RPM < 4.0.2" do
80
78
  let(:rpm_version) { "RPM version 3.0.5\n" }
81
-
82
79
  it "excludes the --nodigest flag" do
83
- expect(Puppet::Util::Execution).to receive(:execpipe)
84
- .with("/bin/rpm -qa --qf '#{nevra_format}'")
85
- .and_yield(packages)
80
+ Puppet::Util::Execution.expects(:execpipe).with("/bin/rpm -qa --qf '#{nevra_format}'").yields(packages)
86
81
 
87
- described_class.instances
82
+ provider_class.instances
88
83
  end
89
84
  end
90
85
 
91
86
  it "returns an array of packages" do
92
- expect(Puppet::Util::Execution).to receive(:execpipe)
93
- .with("/bin/rpm -qa --nosignature --nodigest --qf '#{nevra_format}'")
94
- .and_yield(packages)
87
+ Puppet::Util::Execution.expects(:execpipe).with("/bin/rpm -qa --nosignature --nodigest --qf '#{nevra_format}'").yields(packages)
95
88
 
96
- installed_packages = described_class.instances
89
+ installed_packages = provider_class.instances
97
90
 
98
91
  expect(installed_packages[0].properties).to eq(
99
92
  {
@@ -175,8 +168,7 @@ describe Puppet::Type.type(:package).provider(:rpm) do
175
168
 
176
169
  describe "when not already installed" do
177
170
  it "only includes the '-i' flag" do
178
- expect(Puppet::Util::Execution).to receive(:execute)
179
- .with(["/bin/rpm", ["-i"], '/path/to/package'], execute_options)
171
+ Puppet::Util::Execution.expects(:execute).with(["/bin/rpm", ["-i"], '/path/to/package'], execute_options)
180
172
  provider.install
181
173
  end
182
174
  end
@@ -193,8 +185,7 @@ describe Puppet::Type.type(:package).provider(:rpm) do
193
185
  end
194
186
 
195
187
  it "includes the options" do
196
- expect(Puppet::Util::Execution).to receive(:execute)
197
- .with(["/bin/rpm", ["-i", "-D", "--test=value", "-Q"], '/path/to/package'], execute_options)
188
+ Puppet::Util::Execution.expects(:execute).with(["/bin/rpm", ["-i", "-D", "--test=value", "-Q"], '/path/to/package'], execute_options)
198
189
  provider.install
199
190
  end
200
191
  end
@@ -207,8 +198,7 @@ describe Puppet::Type.type(:package).provider(:rpm) do
207
198
  end
208
199
 
209
200
  it "includes the '-U --oldpackage' flags" do
210
- expect(Puppet::Util::Execution).to receive(:execute)
211
- .with(["/bin/rpm", ["-U", "--oldpackage"], '/path/to/package'], execute_options)
201
+ Puppet::Util::Execution.expects(:execute).with(["/bin/rpm", ["-U", "--oldpackage"], '/path/to/package'], execute_options)
212
202
  provider.install
213
203
  end
214
204
  end
@@ -216,18 +206,16 @@ describe Puppet::Type.type(:package).provider(:rpm) do
216
206
 
217
207
  describe "#latest" do
218
208
  it "retrieves version string after querying rpm for version from source file" do
219
- expect(resource).to receive(:[]).with(:source).and_return('source-string')
220
- expect(Puppet::Util::Execution).to receive(:execute)
209
+ resource.expects(:[]).with(:source).returns('source-string')
210
+ Puppet::Util::Execution.expects(:execute)
221
211
  .with(["/bin/rpm", "-q", "--qf", "'#{nevra_format}'", "-p", "source-string"])
222
- .and_return(Puppet::Util::Execution::ProcessOutput.new("myresource 0 1.2.3.4 5.el4 noarch\n", 0))
212
+ .returns(Puppet::Util::Execution::ProcessOutput.new("myresource 0 1.2.3.4 5.el4 noarch\n", 0))
223
213
  expect(provider.latest).to eq("1.2.3.4-5.el4")
224
214
  end
225
215
 
226
216
  it "raises an error if the rpm command fails" do
227
- expect(resource).to receive(:[]).with(:source).and_return('source-string')
228
- expect(Puppet::Util::Execution).to receive(:execute)
229
- .with(["/bin/rpm", "-q", "--qf", "'#{nevra_format}'", "-p", "source-string"])
230
- .and_raise(Puppet::ExecutionFailure, 'rpm command failed')
217
+ resource.expects(:[]).with(:source).returns('source-string')
218
+ Puppet::Util::Execution.expects(:execute).with(["/bin/rpm", "-q", "--qf", "'#{nevra_format}'", "-p", "source-string"]).raises(Puppet::ExecutionFailure, 'rpm command failed')
231
219
 
232
220
  expect {
233
221
  provider.latest
@@ -238,115 +226,52 @@ describe Puppet::Type.type(:package).provider(:rpm) do
238
226
  describe "#uninstall" do
239
227
  let(:resource) do
240
228
  Puppet::Type.type(:package).new(
241
- :name => resource_name,
242
- :ensure => :installed
229
+ :name => 'myresource',
230
+ :ensure => :installed
243
231
  )
244
232
  end
245
233
 
246
- describe "on an ancient RPM" do
247
- let(:rpm_version) { "RPM version 3.0.6\n" }
248
-
249
- before(:each) do
250
- expect(Puppet::Util::Execution).to receive(:execute)
251
- .with(["/bin/rpm", "-q", resource_name, '', '', '--qf', "'#{nevra_format}'"], execute_options)
252
- .and_return(Puppet::Util::Execution::ProcessOutput.new("#{resource_name} 0 1.2.3.4 5.el4 noarch\n", 0))
253
- end
254
-
255
- it "excludes the architecture from the package name" do
256
- expect(Puppet::Util::Execution).to receive(:execute)
257
- .with(["/bin/rpm", ["-e"], resource_name], execute_options)
258
- .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0)).at_most(:once)
259
- provider.uninstall
260
- end
261
- end
262
-
263
234
  describe "on a modern RPM" do
264
- let(:rpm_version) { "RPM version 4.10.0\n" }
265
-
266
-
267
235
  before(:each) do
268
- expect(Puppet::Util::Execution).to receive(:execute)
269
- .with(["/bin/rpm", "-q", resource_name, '--nosignature', '--nodigest', "--qf", "'#{nevra_format}'"], execute_options)
270
- .and_return(Puppet::Util::Execution::ProcessOutput.new("#{resource_name} 0 1.2.3.4 5.el4 noarch\n", 0))
271
- end
272
-
273
- it "excludes the architecture from the package name" do
274
- expect(Puppet::Util::Execution).to receive(:execute)
275
- .with(["/bin/rpm", ["-e"], resource_name], execute_options)
276
- .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0)).at_most(:once)
277
- provider.uninstall
236
+ Puppet::Util::Execution.expects(:execute)
237
+ .with(["/bin/rpm", "-q", "myresource", '--nosignature', '--nodigest', "--qf", "'#{nevra_format}'"], execute_options)
238
+ .returns(Puppet::Util::Execution::ProcessOutput.new("myresource 0 1.2.3.4 5.el4 noarch\n", 0))
278
239
  end
279
- end
280
240
 
281
- describe "on a modern RPM when architecture is specified" do
282
241
  let(:rpm_version) { "RPM version 4.10.0\n" }
283
242
 
284
- let(:resource) do
285
- Puppet::Type.type(:package).new(
286
- :name => "#{resource_name}.noarch",
287
- :ensure => :absent,
288
- )
289
- end
290
-
291
- before(:each) do
292
- expect(Puppet::Util::Execution).to receive(:execute)
293
- .with(["/bin/rpm", "-q", "#{resource_name}.noarch", '--nosignature', '--nodigest', "--qf", "'#{nevra_format}'"], execute_options)
294
- .and_return(Puppet::Util::Execution::ProcessOutput.new("#{resource_name} 0 1.2.3.4 5.el4 noarch\n", 0))
295
- end
296
-
297
243
  it "includes the architecture in the package name" do
298
- expect(Puppet::Util::Execution).to receive(:execute)
299
- .with(["/bin/rpm", ["-e"], "#{resource_name}.noarch"], execute_options)
300
- .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0)).at_most(:once)
244
+ Puppet::Util::Execution.expects(:execute)
245
+ .with(["/bin/rpm", ["-e"], 'myresource-1.2.3.4-5.el4.noarch'], execute_options)
246
+ .returns(Puppet::Util::Execution::ProcessOutput.new('', 0)).at_most_once
301
247
  provider.uninstall
302
248
  end
303
249
  end
304
250
 
305
- describe "when version and release are specified" do
306
- let(:resource) do
307
- Puppet::Type.type(:package).new(
308
- :name => "#{resource_name}-1.2.3.4-5.el4",
309
- :ensure => :absent,
310
- )
311
- end
312
-
251
+ describe "on an ancient RPM" do
313
252
  before(:each) do
314
- expect(Puppet::Util::Execution).to receive(:execute)
315
- .with(["/bin/rpm", "-q", "#{resource_name}-1.2.3.4-5.el4", '--nosignature', '--nodigest', "--qf", "'#{nevra_format}'"], execute_options)
316
- .and_return(Puppet::Util::Execution::ProcessOutput.new("#{resource_name} 0 1.2.3.4 5.el4 noarch\n", 0))
253
+ Puppet::Util::Execution.expects(:execute)
254
+ .with(["/bin/rpm", "-q", "myresource", '', '', '--qf', "'#{nevra_format}'"], execute_options)
255
+ .returns(Puppet::Util::Execution::ProcessOutput.new("myresource 0 1.2.3.4 5.el4 noarch\n", 0))
317
256
  end
318
257
 
319
- it "includes the version and release in the package name" do
320
- expect(Puppet::Util::Execution).to receive(:execute)
321
- .with(["/bin/rpm", ["-e"], "#{resource_name}-1.2.3.4-5.el4"], execute_options)
322
- .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0)).at_most(:once)
258
+ let(:rpm_version) { "RPM version 3.0.6\n" }
259
+
260
+ it "excludes the architecture from the package name" do
261
+ Puppet::Util::Execution.expects(:execute)
262
+ .with(["/bin/rpm", ["-e"], 'myresource-1.2.3.4-5.el4'], execute_options)
263
+ .returns(Puppet::Util::Execution::ProcessOutput.new('', 0)).at_most_once
323
264
  provider.uninstall
324
265
  end
325
266
  end
326
267
 
327
- describe "when only version is specified" do
328
- let(:resource) do
329
- Puppet::Type.type(:package).new(
330
- :name => "#{resource_name}-1.2.3.4",
331
- :ensure => :absent,
332
- )
333
- end
334
-
268
+ describe "when uninstalled with options" do
335
269
  before(:each) do
336
- expect(Puppet::Util::Execution).to receive(:execute)
337
- .with(["/bin/rpm", "-q", "#{resource_name}-1.2.3.4", '--nosignature', '--nodigest', "--qf", "'#{nevra_format}'"], execute_options)
338
- .and_return(Puppet::Util::Execution::ProcessOutput.new("#{resource_name} 0 1.2.3.4 5.el4 noarch\n", 0))
339
- end
340
-
341
- it "includes the version in the package name" do
342
- expect(Puppet::Util::Execution).to receive(:execute)
343
- .with(["/bin/rpm", ["-e"], "#{resource_name}-1.2.3.4"], execute_options)
344
- .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0)).at_most(:once)
345
- provider.uninstall
270
+ Puppet::Util::Execution.expects(:execute)
271
+ .with(["/bin/rpm", "-q", "myresource", '--nosignature', '--nodigest', "--qf", "'#{nevra_format}'"], execute_options)
272
+ .returns(Puppet::Util::Execution::ProcessOutput.new("myresource 0 1.2.3.4 5.el4 noarch\n", 0))
346
273
  end
347
- end
348
274
 
349
- describe "when uninstalled with options" do
350
275
  let(:resource) do
351
276
  Puppet::Type.type(:package).new(
352
277
  :name => resource_name,
@@ -356,15 +281,8 @@ describe Puppet::Type.type(:package).provider(:rpm) do
356
281
  )
357
282
  end
358
283
 
359
- before(:each) do
360
- expect(Puppet::Util::Execution).to receive(:execute)
361
- .with(["/bin/rpm", "-q", resource_name, '--nosignature', '--nodigest', "--qf", "'#{nevra_format}'"], execute_options)
362
- .and_return(Puppet::Util::Execution::ProcessOutput.new("#{resource_name} 0 1.2.3.4 5.el4 noarch\n", 0))
363
- end
364
-
365
284
  it "includes the options" do
366
- expect(Puppet::Util::Execution).to receive(:execute)
367
- .with(["/bin/rpm", ["-e", "--nodeps"], resource_name], execute_options)
285
+ Puppet::Util::Execution.expects(:execute).with(["/bin/rpm", ["-e", "--nodeps"], 'myresource-1.2.3.4-5.el4.noarch'], execute_options)
368
286
  provider.uninstall
369
287
  end
370
288
  end
@@ -372,10 +290,10 @@ describe Puppet::Type.type(:package).provider(:rpm) do
372
290
 
373
291
  describe "parsing" do
374
292
  def parser_test(rpm_output_string, gold_hash, number_of_debug_logs = 0)
375
- expect(Puppet).to receive(:debug).exactly(number_of_debug_logs).times()
376
- expect(Puppet::Util::Execution).to receive(:execute)
293
+ Puppet.expects(:debug).times(number_of_debug_logs)
294
+ Puppet::Util::Execution.expects(:execute)
377
295
  .with(["/bin/rpm", "-q", resource_name, "--nosignature", "--nodigest", "--qf", "'#{nevra_format}'"], execute_options)
378
- .and_return(Puppet::Util::Execution::ProcessOutput.new(rpm_output_string, 0))
296
+ .returns(Puppet::Util::Execution::ProcessOutput.new(rpm_output_string, 0))
379
297
  expect(provider.query).to eq(gold_hash)
380
298
  end
381
299
 
@@ -395,6 +313,7 @@ describe Puppet::Type.type(:package).provider(:rpm) do
395
313
  let(:line) { 'name epoch version release arch' }
396
314
 
397
315
  ['name', 'epoch', 'version', 'release', 'arch'].each do |field|
316
+
398
317
  it "still parses if #{field} is replaced by delimiter" do
399
318
  parser_test(
400
319
  line.gsub(field, delimiter),
@@ -404,6 +323,7 @@ describe Puppet::Type.type(:package).provider(:rpm) do
404
323
  )
405
324
  )
406
325
  end
326
+
407
327
  end
408
328
 
409
329
  it "does not fail if line is unparseable, but issues a debug log" do
@@ -412,11 +332,9 @@ describe Puppet::Type.type(:package).provider(:rpm) do
412
332
 
413
333
  describe "when the package is not found" do
414
334
  before do
415
- expect(Puppet).not_to receive(:debug)
335
+ Puppet.expects(:debug).never
416
336
  expected_args = ["/bin/rpm", "-q", resource_name, "--nosignature", "--nodigest", "--qf", "'#{nevra_format}'"]
417
- expect(Puppet::Util::Execution).to receive(:execute)
418
- .with(expected_args, execute_options)
419
- .and_raise(Puppet::ExecutionFailure.new("package #{resource_name} is not installed"))
337
+ Puppet::Util::Execution.expects(:execute).with(expected_args, execute_options).raises Puppet::ExecutionFailure.new("package #{resource_name} is not installed")
420
338
  end
421
339
 
422
340
  it "does not log or fail if allow_virtual is false" do
@@ -427,9 +345,7 @@ describe Puppet::Type.type(:package).provider(:rpm) do
427
345
  it "does not log or fail if allow_virtual is true" do
428
346
  resource[:allow_virtual] = true
429
347
  expected_args = ['/bin/rpm', '-q', resource_name, '--nosignature', '--nodigest', '--qf', "'#{nevra_format}'", '--whatprovides']
430
- expect(Puppet::Util::Execution).to receive(:execute)
431
- .with(expected_args, execute_options)
432
- .and_raise(Puppet::ExecutionFailure.new("package #{resource_name} is not provided"))
348
+ Puppet::Util::Execution.expects(:execute).with(expected_args, execute_options).raises Puppet::ExecutionFailure.new("package #{resource_name} is not provided")
433
349
  expect(provider.query).to be_nil
434
350
  end
435
351
  end
@@ -437,12 +353,10 @@ describe Puppet::Type.type(:package).provider(:rpm) do
437
353
  it "parses virtual package" do
438
354
  provider.resource[:allow_virtual] = true
439
355
  expected_args = ["/bin/rpm", "-q", resource_name, "--nosignature", "--nodigest", "--qf", "'#{nevra_format}'"]
440
- expect(Puppet::Util::Execution).to receive(:execute)
441
- .with(expected_args, execute_options)
442
- .and_raise(Puppet::ExecutionFailure.new("package #{resource_name} is not installed"))
443
- expect(Puppet::Util::Execution).to receive(:execute)
356
+ Puppet::Util::Execution.expects(:execute).with(expected_args, execute_options).raises Puppet::ExecutionFailure.new("package #{resource_name} is not installed")
357
+ Puppet::Util::Execution.expects(:execute)
444
358
  .with(expected_args + ["--whatprovides"], execute_options)
445
- .and_return(Puppet::Util::Execution::ProcessOutput.new("myresource 0 1.2.3.4 5.el4 noarch\n", 0))
359
+ .returns(Puppet::Util::Execution::ProcessOutput.new("myresource 0 1.2.3.4 5.el4 noarch\n", 0))
446
360
  expect(provider.query).to eq({
447
361
  :name => "myresource",
448
362
  :epoch => "0",
@@ -516,8 +430,8 @@ describe Puppet::Type.type(:package).provider(:rpm) do
516
430
  }.each do |version, expected|
517
431
  describe "when current version is #{version}" do
518
432
  it "returns #{expected.inspect}" do
519
- allow(described_class).to receive(:current_version).and_return(version)
520
- expect(described_class.nodigest).to eq(expected)
433
+ provider_class.stubs(:current_version).returns(version)
434
+ expect(provider_class.nodigest).to eq(expected)
521
435
  end
522
436
  end
523
437
  end
@@ -532,14 +446,15 @@ describe Puppet::Type.type(:package).provider(:rpm) do
532
446
  }.each do |version, expected|
533
447
  describe "when current version is #{version}" do
534
448
  it "returns #{expected.inspect}" do
535
- allow(described_class).to receive(:current_version).and_return(version)
536
- expect(described_class.nosignature).to eq(expected)
449
+ provider_class.stubs(:current_version).returns(version)
450
+ expect(provider_class.nosignature).to eq(expected)
537
451
  end
538
452
  end
539
453
  end
540
454
  end
541
455
 
542
456
  describe 'version comparison' do
457
+
543
458
  # test cases munged directly from rpm's own
544
459
  # tests/rpmvercmp.at
545
460
  it { expect(provider.rpmvercmp("1.0", "1.0")).to eq(0) }
@@ -623,6 +538,7 @@ describe Puppet::Type.type(:package).provider(:rpm) do
623
538
  end
624
539
 
625
540
  describe 'package evr parsing' do
541
+
626
542
  it 'should parse full simple evr' do
627
543
  v = provider.rpm_parse_evr('0:1.2.3-4.el5')
628
544
  expect(v[:epoch]).to eq('0')
@@ -679,9 +595,11 @@ describe Puppet::Type.type(:package).provider(:rpm) do
679
595
  expect(v[:version]).to eq('2.2')
680
596
  expect(v[:release]).to eq('SNAPSHOT20121119105647')
681
597
  end
598
+
682
599
  end
683
600
 
684
601
  describe 'rpm evr comparison' do
602
+
685
603
  # currently passing tests
686
604
  it 'should evaluate identical version-release as equal' do
687
605
  v = provider.rpm_compareEVR({:epoch => '0', :version => '1.2.3', :release => '1.el5'},
@@ -725,9 +643,11 @@ describe Puppet::Type.type(:package).provider(:rpm) do
725
643
  expect(provider.rpm_compareEVR({:epoch => '0', :version => '2.2', :release => '405'},
726
644
  {:epoch => '0', :version => '2.2', :release => '406'})).to eq(-1)
727
645
  end
646
+
728
647
  end
729
648
 
730
649
  describe 'version segment comparison' do
650
+
731
651
  it 'should treat two nil values as equal' do
732
652
  v = provider.compare_values(nil, nil)
733
653
  expect(v).to eq(0)
@@ -744,9 +664,11 @@ describe Puppet::Type.type(:package).provider(:rpm) do
744
664
  end
745
665
 
746
666
  it 'should pass two non-nil values on to rpmvercmp' do
747
- allow(provider).to receive(:rpmvercmp).and_return(0)
748
- expect(provider).to receive(:rpmvercmp).with('s1', 's2')
667
+ provider.stubs(:rpmvercmp) { 0 }
668
+ provider.expects(:rpmvercmp).with('s1', 's2')
749
669
  provider.compare_values('s1', 's2')
750
670
  end
671
+
751
672
  end
673
+
752
674
  end