puppet 6.17.0-x64-mingw32 → 6.21.0-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +2 -16
- data/Gemfile +2 -0
- data/Gemfile.lock +38 -34
- data/README.md +1 -2
- data/Rakefile +4 -12
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application.rb +10 -6
- data/lib/puppet/application/agent.rb +9 -3
- data/lib/puppet/application/apply.rb +20 -21
- data/lib/puppet/application/device.rb +1 -0
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/filebucket.rb +2 -2
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/script.rb +1 -0
- data/lib/puppet/application_support.rb +7 -0
- data/lib/puppet/configurer.rb +50 -8
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/confine.rb +1 -1
- data/lib/puppet/confine/any.rb +1 -1
- data/lib/puppet/defaults.rb +88 -38
- data/lib/puppet/environments.rb +84 -59
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +56 -16
- data/lib/puppet/face/epp.rb +12 -2
- data/lib/puppet/face/facts.rb +60 -0
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/node/clean.rb +2 -2
- data/lib/puppet/face/status.rb +1 -1
- data/lib/puppet/feature/base.rb +1 -1
- data/lib/puppet/ffi/posix.rb +10 -0
- data/lib/puppet/ffi/posix/constants.rb +14 -0
- data/lib/puppet/ffi/posix/functions.rb +24 -0
- data/lib/puppet/file_bucket/dipper.rb +1 -1
- data/lib/puppet/file_serving/mount/locales.rb +1 -2
- data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
- data/lib/puppet/file_serving/mount/plugins.rb +1 -2
- data/lib/puppet/file_system/file_impl.rb +3 -3
- data/lib/puppet/functions/epp.rb +1 -0
- data/lib/puppet/functions/inline_epp.rb +1 -0
- data/lib/puppet/functions/lstrip.rb +4 -4
- data/lib/puppet/functions/new.rb +8 -3
- data/lib/puppet/functions/reverse_each.rb +1 -1
- data/lib/puppet/functions/rstrip.rb +4 -4
- data/lib/puppet/functions/step.rb +1 -1
- data/lib/puppet/functions/strip.rb +4 -4
- data/lib/puppet/gettext/config.rb +5 -5
- data/lib/puppet/gettext/module_translations.rb +4 -4
- data/lib/puppet/http.rb +1 -0
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/resolver.rb +5 -8
- data/lib/puppet/http/resolver/server_list.rb +18 -36
- data/lib/puppet/http/resolver/settings.rb +4 -4
- data/lib/puppet/http/resolver/srv.rb +5 -5
- data/lib/puppet/http/service.rb +3 -1
- data/lib/puppet/http/service/compiler.rb +1 -1
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/puppetserver.rb +39 -0
- data/lib/puppet/http/session.rb +5 -4
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/json.rb +27 -0
- data/lib/puppet/indirector/facts/yaml.rb +4 -59
- data/lib/puppet/indirector/file_metadata/http.rb +1 -0
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/json.rb +5 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/node/json.rb +8 -0
- data/lib/puppet/indirector/report/json.rb +34 -0
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/request.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/module.rb +1 -2
- data/lib/puppet/module_tool/applications/installer.rb +48 -2
- data/lib/puppet/module_tool/errors/shared.rb +17 -2
- data/lib/puppet/network/format_support.rb +2 -2
- data/lib/puppet/network/formats.rb +2 -1
- data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/node/environment.rb +12 -5
- data/lib/puppet/node/facts.rb +17 -0
- data/lib/puppet/pal/pal_impl.rb +90 -13
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast/leaf.rb +3 -2
- data/lib/puppet/parser/functions.rb +21 -17
- data/lib/puppet/parser/functions/create_resources.rb +11 -7
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +2 -2
- data/lib/puppet/pops/adaptable.rb +7 -13
- data/lib/puppet/pops/adapters.rb +8 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +5 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +22 -3
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
- data/lib/puppet/pops/loaders.rb +18 -11
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
- data/lib/puppet/pops/model/ast_transformer.rb +1 -1
- data/lib/puppet/pops/types/iterable.rb +34 -8
- data/lib/puppet/pops/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
- data/lib/puppet/pops/validation/checker4_0.rb +19 -15
- data/lib/puppet/property/list.rb +1 -1
- data/lib/puppet/provider/file/windows.rb +1 -1
- data/lib/puppet/provider/group/groupadd.rb +13 -8
- data/lib/puppet/provider/package/apt.rb +67 -1
- data/lib/puppet/provider/package/aptitude.rb +6 -0
- data/lib/puppet/provider/package/dpkg.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +4 -2
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/puppet_gem.rb +5 -0
- data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
- data/lib/puppet/provider/package/yum.rb +1 -0
- data/lib/puppet/provider/package/zypper.rb +3 -0
- data/lib/puppet/provider/service/debian.rb +2 -0
- data/lib/puppet/provider/user/aix.rb +3 -3
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +55 -8
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/reference/configuration.rb +6 -5
- data/lib/puppet/resource/type.rb +2 -1
- data/lib/puppet/rest/route.rb +2 -2
- data/lib/puppet/settings.rb +63 -21
- data/lib/puppet/settings/alias_setting.rb +37 -0
- data/lib/puppet/settings/base_setting.rb +26 -2
- data/lib/puppet/ssl/validator/default_validator.rb +1 -1
- data/lib/puppet/test/test_helper.rb +10 -3
- data/lib/puppet/transaction.rb +2 -2
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +12 -8
- data/lib/puppet/trusted_external.rb +2 -2
- data/lib/puppet/type.rb +4 -3
- data/lib/puppet/type/file.rb +2 -2
- data/lib/puppet/type/file/source.rb +28 -8
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +3 -3
- data/lib/puppet/type/service.rb +4 -0
- data/lib/puppet/type/user.rb +18 -3
- data/lib/puppet/util.rb +26 -12
- data/lib/puppet/util/autoload.rb +10 -15
- data/lib/puppet/util/character_encoding.rb +9 -5
- data/lib/puppet/util/connection.rb +8 -8
- data/lib/puppet/util/execution.rb +2 -2
- data/lib/puppet/util/fact_dif.rb +62 -0
- data/lib/puppet/util/posix.rb +54 -5
- data/lib/puppet/util/rubygems.rb +5 -1
- data/lib/puppet/util/run_mode.rb +5 -1
- data/lib/puppet/util/windows.rb +1 -0
- data/lib/puppet/util/windows/api_types.rb +15 -1
- data/lib/puppet/util/windows/monkey_patches/dir.rb +40 -0
- data/lib/puppet/util/windows/security.rb +4 -4
- data/lib/puppet/util/windows/service.rb +1 -1
- data/lib/puppet/util/windows/user.rb +219 -0
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +342 -312
- data/man/man5/puppet.conf.5 +53 -18
- data/man/man8/puppet-agent.8 +7 -4
- data/man/man8/puppet-apply.8 +2 -2
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +6 -6
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +2 -2
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +32 -1
- data/man/man8/puppet-filebucket.8 +3 -3
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +2 -2
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +7 -4
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +4 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +2 -2
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet-status.8 +2 -2
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +91 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
- data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
- data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
- data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +4 -0
- data/spec/integration/application/agent_spec.rb +208 -55
- data/spec/integration/application/apply_spec.rb +168 -149
- data/spec/integration/application/doc_spec.rb +16 -6
- data/spec/integration/application/filebucket_spec.rb +70 -21
- data/spec/integration/application/help_spec.rb +42 -0
- data/spec/integration/application/lookup_spec.rb +13 -0
- data/spec/integration/application/module_spec.rb +68 -0
- data/spec/integration/application/plugin_spec.rb +53 -3
- data/spec/integration/configurer_spec.rb +14 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +19 -1
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/node/environment_spec.rb +1 -1
- data/spec/integration/resource/type_collection_spec.rb +2 -6
- data/spec/integration/transaction_spec.rb +4 -9
- data/spec/integration/util/execution_spec.rb +22 -0
- data/spec/integration/util/windows/adsi_spec.rb +5 -3
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +11 -0
- data/spec/integration/util/windows/process_spec.rb +26 -32
- data/spec/integration/util/windows/registry_spec.rb +0 -10
- data/spec/integration/util/windows/user_spec.rb +7 -0
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +8 -0
- data/spec/lib/puppet_spec/settings.rb +6 -1
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/spec_helper.rb +1 -4
- data/spec/unit/agent_spec.rb +8 -6
- data/spec/unit/application/agent_spec.rb +3 -5
- data/spec/unit/application/config_spec.rb +224 -4
- data/spec/unit/application/doc_spec.rb +2 -2
- data/spec/unit/application/face_base_spec.rb +6 -4
- data/spec/unit/application/facts_spec.rb +41 -10
- data/spec/unit/application/filebucket_spec.rb +0 -2
- data/spec/unit/application/man_spec.rb +52 -0
- data/spec/unit/application/resource_spec.rb +3 -1
- data/spec/unit/application/ssl_spec.rb +15 -2
- data/spec/unit/application_spec.rb +60 -13
- data/spec/unit/configurer/downloader_spec.rb +10 -0
- data/spec/unit/configurer_spec.rb +86 -37
- data/spec/unit/confine/feature_spec.rb +1 -1
- data/spec/unit/confine_spec.rb +10 -3
- data/spec/unit/defaults_spec.rb +20 -1
- data/spec/unit/environments_spec.rb +176 -32
- data/spec/unit/face/config_spec.rb +65 -12
- data/spec/unit/face/node_spec.rb +2 -13
- data/spec/unit/file_serving/configuration/parser_spec.rb +0 -1
- data/spec/unit/file_serving/metadata_spec.rb +3 -3
- data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
- data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
- data/spec/unit/file_serving/terminus_helper_spec.rb +11 -4
- data/spec/unit/file_system/uniquefile_spec.rb +18 -0
- data/spec/unit/file_system_spec.rb +1 -2
- data/spec/unit/forge/module_release_spec.rb +2 -7
- data/spec/unit/functions/inline_epp_spec.rb +26 -1
- data/spec/unit/http/client_spec.rb +0 -1
- data/spec/unit/http/resolver_spec.rb +24 -5
- data/spec/unit/http/service/ca_spec.rb +2 -3
- data/spec/unit/http/service/compiler_spec.rb +51 -3
- data/spec/unit/http/service/file_server_spec.rb +2 -3
- data/spec/unit/http/service/puppetserver_spec.rb +82 -0
- data/spec/unit/http/service/report_spec.rb +2 -3
- data/spec/unit/http/service_spec.rb +1 -2
- data/spec/unit/http/session_spec.rb +8 -21
- data/spec/unit/indirector/catalog/json_spec.rb +1 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
- data/spec/unit/indirector/face_spec.rb +0 -1
- data/spec/unit/indirector/facts/facter_spec.rb +0 -1
- data/spec/unit/indirector/facts/json_spec.rb +255 -0
- data/spec/unit/indirector/facts/rest_spec.rb +1 -1
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +26 -8
- data/spec/unit/indirector/indirection_spec.rb +8 -12
- data/spec/unit/indirector/json_spec.rb +8 -8
- data/spec/unit/indirector/key/file_spec.rb +0 -1
- data/spec/unit/indirector/msgpack_spec.rb +8 -8
- data/spec/unit/indirector/node/json_spec.rb +33 -0
- data/spec/unit/indirector/node/rest_spec.rb +1 -1
- data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
- data/spec/unit/indirector/report/yaml_spec.rb +72 -8
- data/spec/unit/indirector/request_spec.rb +4 -4
- data/spec/unit/indirector/rest_spec.rb +1 -1
- data/spec/unit/indirector/status/rest_spec.rb +1 -1
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/module_tool/applications/installer_spec.rb +66 -0
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/authconfig_spec.rb +0 -3
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/network/http/api/indirected_routes_spec.rb +0 -9
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- data/spec/unit/network/http/handler_spec.rb +0 -5
- data/spec/unit/node/environment_spec.rb +18 -1
- data/spec/unit/parser/compiler_spec.rb +3 -19
- data/spec/unit/parser/resource_spec.rb +14 -8
- data/spec/unit/parser/templatewrapper_spec.rb +4 -3
- data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +20 -0
- data/spec/unit/pops/loaders/loaders_spec.rb +70 -0
- data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
- data/spec/unit/property_spec.rb +1 -0
- data/spec/unit/provider/exec_spec.rb +4 -3
- data/spec/unit/provider/group/groupadd_spec.rb +5 -2
- data/spec/unit/provider/nameservice_spec.rb +66 -65
- data/spec/unit/provider/package/apt_spec.rb +85 -3
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/base_spec.rb +6 -5
- data/spec/unit/provider/package/dpkg_spec.rb +22 -7
- data/spec/unit/provider/package/openbsd_spec.rb +2 -0
- data/spec/unit/provider/package/pacman_spec.rb +18 -12
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/pip_spec.rb +6 -11
- data/spec/unit/provider/package/pkgdmg_spec.rb +0 -4
- data/spec/unit/provider/package/puppet_gem_spec.rb +4 -1
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
- data/spec/unit/provider/package/yum_spec.rb +31 -0
- data/spec/unit/provider/package/zypper_spec.rb +14 -0
- data/spec/unit/provider/service/base_spec.rb +2 -4
- data/spec/unit/provider/service/bsd_spec.rb +5 -1
- data/spec/unit/provider/service/daemontools_spec.rb +1 -1
- data/spec/unit/provider/service/debian_spec.rb +3 -5
- data/spec/unit/provider/service/freebsd_spec.rb +1 -1
- data/spec/unit/provider/service/gentoo_spec.rb +4 -5
- data/spec/unit/provider/service/init_spec.rb +45 -5
- data/spec/unit/provider/service/launchd_spec.rb +5 -6
- data/spec/unit/provider/service/openrc_spec.rb +4 -5
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/runit_spec.rb +2 -1
- data/spec/unit/provider/service/smf_spec.rb +1 -1
- data/spec/unit/provider/service/src_spec.rb +3 -5
- data/spec/unit/provider/service/systemd_spec.rb +3 -6
- data/spec/unit/provider/service/upstart_spec.rb +4 -5
- data/spec/unit/provider/service/windows_spec.rb +28 -0
- data/spec/unit/provider/user/aix_spec.rb +5 -0
- data/spec/unit/provider/user/hpux_spec.rb +1 -1
- data/spec/unit/provider/user/pw_spec.rb +2 -0
- data/spec/unit/provider/user/useradd_spec.rb +56 -3
- data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
- data/spec/unit/provider_spec.rb +8 -10
- data/spec/unit/puppet_pal_2pec.rb +40 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/resource/capability_finder_spec.rb +6 -1
- data/spec/unit/resource/type_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +11 -10
- data/spec/unit/rest/route_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +576 -239
- data/spec/unit/ssl/base_spec.rb +0 -1
- data/spec/unit/ssl/host_spec.rb +0 -5
- data/spec/unit/ssl/ssl_provider_spec.rb +14 -8
- data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -7
- data/spec/unit/transaction/event_manager_spec.rb +14 -11
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/transaction/report_spec.rb +2 -0
- data/spec/unit/transaction_spec.rb +13 -4
- data/spec/unit/type/file/content_spec.rb +0 -1
- data/spec/unit/type/file/selinux_spec.rb +0 -2
- data/spec/unit/type/file/source_spec.rb +1 -1
- data/spec/unit/type/file_spec.rb +0 -6
- data/spec/unit/type/filebucket_spec.rb +1 -1
- data/spec/unit/type/group_spec.rb +13 -6
- data/spec/unit/type/resources_spec.rb +7 -7
- data/spec/unit/type/service_spec.rb +36 -3
- data/spec/unit/type/tidy_spec.rb +0 -1
- data/spec/unit/type/user_spec.rb +31 -2
- data/spec/unit/type_spec.rb +2 -2
- data/spec/unit/util/at_fork_spec.rb +2 -2
- data/spec/unit/util/autoload_spec.rb +5 -1
- data/spec/unit/util/backups_spec.rb +1 -2
- data/spec/unit/util/character_encoding_spec.rb +4 -4
- data/spec/unit/util/command_line_spec.rb +11 -6
- data/spec/unit/util/execution_spec.rb +15 -11
- data/spec/unit/util/inifile_spec.rb +6 -14
- data/spec/unit/util/log_spec.rb +8 -7
- data/spec/unit/util/logging_spec.rb +3 -3
- data/spec/unit/util/posix_spec.rb +363 -15
- data/spec/unit/util/rubygems_spec.rb +2 -2
- data/spec/unit/util/run_mode_spec.rb +6 -6
- data/spec/unit/util/selinux_spec.rb +76 -52
- data/spec/unit/util/storage_spec.rb +3 -1
- data/spec/unit/util/suidmanager_spec.rb +44 -41
- data/spec/unit/util_spec.rb +13 -6
- metadata +49 -50
- data/spec/integration/faces/config_spec.rb +0 -91
- data/spec/integration/faces/documentation_spec.rb +0 -57
- data/spec/integration/file_bucket/file_spec.rb +0 -50
- data/spec/integration/file_serving/content_spec.rb +0 -7
- data/spec/integration/file_serving/fileset_spec.rb +0 -12
- data/spec/integration/file_serving/metadata_spec.rb +0 -8
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
- data/spec/integration/file_system/uniquefile_spec.rb +0 -26
- data/spec/integration/module_tool/forge_spec.rb +0 -51
- data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
- data/spec/integration/provider/service/init_spec.rb +0 -48
- data/spec/integration/provider/service/systemd_spec.rb +0 -25
- data/spec/integration/provider/service/windows_spec.rb +0 -50
- data/spec/integration/reference/providers_spec.rb +0 -21
- data/spec/integration/reports_spec.rb +0 -13
- data/spec/integration/ssl/certificate_request_spec.rb +0 -44
- data/spec/integration/ssl/host_spec.rb +0 -72
- data/spec/integration/ssl/key_spec.rb +0 -99
- data/spec/shared_behaviours/file_serving_model.rb +0 -51
- data/spec/unit/face/catalog_spec.rb +0 -6
- data/spec/unit/face/man_spec.rb +0 -25
- data/spec/unit/face/module_spec.rb +0 -3
- data/spec/unit/man_spec.rb +0 -31
@@ -23,6 +23,19 @@ describe "Puppet defaults" do
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
+
describe "when setting the :masterport" do
|
27
|
+
it "should also set :serverport to the same value" do
|
28
|
+
Puppet.settings[:masterport] = 3939
|
29
|
+
expect(Puppet.settings[:serverport]).to eq(3939)
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should not overwrite :serverport if explicitly set" do
|
33
|
+
Puppet.settings[:serverport] = 9000
|
34
|
+
Puppet.settings[:masterport] = 9001
|
35
|
+
expect(Puppet.settings[:serverport]).to eq(9000)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
26
39
|
describe "when setting the :factpath" do
|
27
40
|
it "should add the :factpath to Facter's search paths" do
|
28
41
|
expect(Facter).to receive(:search).with("/my/fact/path")
|
@@ -149,13 +162,18 @@ describe "Puppet defaults" do
|
|
149
162
|
expect(Puppet.settings[:report_server]).to eq("server")
|
150
163
|
end
|
151
164
|
|
165
|
+
it "should use the default serverport value when report port is unspecified" do
|
166
|
+
Puppet.settings[:serverport] = "1234"
|
167
|
+
expect(Puppet.settings[:report_port]).to eq("1234")
|
168
|
+
end
|
169
|
+
|
152
170
|
it "should use the default masterport value when report port is unspecified" do
|
153
171
|
Puppet.settings[:masterport] = "1234"
|
154
172
|
expect(Puppet.settings[:report_port]).to eq("1234")
|
155
173
|
end
|
156
174
|
|
157
175
|
it "should use report_port when set" do
|
158
|
-
Puppet.settings[:
|
176
|
+
Puppet.settings[:serverport] = "1234"
|
159
177
|
Puppet.settings[:report_port] = "5678"
|
160
178
|
expect(Puppet.settings[:report_port]).to eq("5678")
|
161
179
|
end
|
@@ -2,11 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe "directory environments" do
|
4
4
|
let(:args) { ['--configprint', 'modulepath', '--environment', 'direnv'] }
|
5
|
-
let(:puppet)
|
6
|
-
app = Puppet::Application[:apply]
|
7
|
-
allow(app).to receive(:command_line).and_return(double('command_line', :args => []))
|
8
|
-
app
|
9
|
-
end
|
5
|
+
let(:puppet) { Puppet::Application[:apply] }
|
10
6
|
|
11
7
|
context "with a single directory environmentpath" do
|
12
8
|
before(:each) do
|
@@ -17,17 +13,19 @@ describe "directory environments" do
|
|
17
13
|
|
18
14
|
it "config prints the environments modulepath" do
|
19
15
|
Puppet.settings.initialize_global_settings(args)
|
20
|
-
expect
|
21
|
-
|
22
|
-
|
16
|
+
expect {
|
17
|
+
puppet.run
|
18
|
+
}.to exit_with(0)
|
19
|
+
.and output(%r{/direnv/modules}).to_stdout
|
23
20
|
end
|
24
21
|
|
25
22
|
it "config prints the cli --modulepath despite environment" do
|
26
23
|
args << '--modulepath' << '/completely/different'
|
27
24
|
Puppet.settings.initialize_global_settings(args)
|
28
|
-
expect
|
29
|
-
|
30
|
-
|
25
|
+
expect {
|
26
|
+
puppet.run
|
27
|
+
}.to exit_with(0)
|
28
|
+
.and output(%r{/completely/different}).to_stdout
|
31
29
|
end
|
32
30
|
|
33
31
|
it 'given an 8.3 style path on Windows, will config print an expanded path',
|
@@ -41,9 +39,10 @@ describe "directory environments" do
|
|
41
39
|
expect(Puppet[:environmentpath]).to match(/~/)
|
42
40
|
|
43
41
|
Puppet.settings.initialize_global_settings(args)
|
44
|
-
expect
|
45
|
-
|
46
|
-
|
42
|
+
expect {
|
43
|
+
puppet.run
|
44
|
+
}.to exit_with(0)
|
45
|
+
.and output(a_string_matching(expanded)).to_stdout
|
47
46
|
end
|
48
47
|
end
|
49
48
|
|
@@ -59,9 +58,10 @@ describe "directory environments" do
|
|
59
58
|
|
60
59
|
it "config prints a directory environment modulepath" do
|
61
60
|
Puppet.settings.initialize_global_settings(args)
|
62
|
-
expect
|
63
|
-
|
64
|
-
|
61
|
+
expect {
|
62
|
+
puppet.run
|
63
|
+
}.to exit_with(0)
|
64
|
+
.and output(%r{otherdirenv/modules}).to_stdout
|
65
65
|
end
|
66
66
|
end
|
67
67
|
end
|
@@ -12,7 +12,7 @@ describe "setting hooks" do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
it "accesses correct directory environment settings after initializing a setting with an on_write hook" do
|
15
|
-
expect(Puppet.settings.setting(:
|
15
|
+
expect(Puppet.settings.setting(:strict).call_hook).to eq(:on_write_only)
|
16
16
|
|
17
17
|
File.open(File.join(confdir, "puppet.conf"), "w:UTF-8") do |f|
|
18
18
|
f.puts("environmentpath=#{environmentpath}")
|
@@ -43,9 +43,10 @@ describe Puppet::Node::Facts::Facter do
|
|
43
43
|
Puppet.initialize_settings(['--modulepath', factdir])
|
44
44
|
apply = Puppet::Application.find(:apply).new(double('command_line', :subcommand_name => :apply, :args => ['--modulepath', factdir, '-e', 'notify { $custom: }']))
|
45
45
|
|
46
|
-
expect
|
47
|
-
|
48
|
-
|
46
|
+
expect {
|
47
|
+
apply.run
|
48
|
+
}.to exit_with(0)
|
49
|
+
.and output(/defined 'message' as '#{Puppet.version}'/).to_stdout
|
49
50
|
end
|
50
51
|
|
51
52
|
it "should resolve external facts" do
|
@@ -58,9 +59,10 @@ describe Puppet::Node::Facts::Facter do
|
|
58
59
|
Puppet.initialize_settings(['--pluginfactdest', factdir])
|
59
60
|
apply = Puppet::Application.find(:apply).new(double('command_line', :subcommand_name => :apply, :args => ['--pluginfactdest', factdir, '-e', 'notify { $foo: }']))
|
60
61
|
|
61
|
-
expect
|
62
|
-
|
63
|
-
|
62
|
+
expect {
|
63
|
+
apply.run
|
64
|
+
}.to exit_with(0)
|
65
|
+
.and output(/defined 'message' as 'bar'/).to_stdout
|
64
66
|
end
|
65
67
|
end
|
66
68
|
|
@@ -79,7 +79,7 @@ describe Puppet::Node::Environment do
|
|
79
79
|
it "should not yield a module with the same name as a defined Bolt project" do
|
80
80
|
project_path = File.join(tmpfile('project'), 'bolt_project')
|
81
81
|
FileUtils.mkdir_p(project_path)
|
82
|
-
project = Struct.new("Project", :name, :path).new('project', project_path)
|
82
|
+
project = Struct.new("Project", :name, :path, :load_as_module?).new('project', project_path, true)
|
83
83
|
|
84
84
|
Puppet.override(bolt_project: project) do
|
85
85
|
base = tmpfile("base")
|
@@ -11,12 +11,8 @@ describe Puppet::Resource::TypeCollection do
|
|
11
11
|
@dir = tmpfile("autoload_testing")
|
12
12
|
FileUtils.mkdir_p @dir
|
13
13
|
|
14
|
-
loader =
|
15
|
-
|
16
|
-
allow(loader).to receive(:set_entry)
|
17
|
-
|
18
|
-
loaders = Object.new
|
19
|
-
expect(loaders).to receive(:runtime3_type_loader).at_most(:once).and_return(loader)
|
14
|
+
loader = double('loader', load: nil, set_entry: nil)
|
15
|
+
loaders = double('loaders', runtime3_type_loader: loader)
|
20
16
|
expect(Puppet::Pops::Loaders).to receive(:loaders).at_most(:once).and_return(loaders)
|
21
17
|
|
22
18
|
environment = Puppet::Node::Environment.create(:env, [@dir])
|
@@ -61,7 +61,7 @@ describe Puppet::Transaction do
|
|
61
61
|
|
62
62
|
transaction = Puppet::Transaction.new(catalog, nil, Puppet::Graph::SequentialPrioritizer.new)
|
63
63
|
|
64
|
-
expect(resource).not_to receive(:
|
64
|
+
expect(resource).not_to receive(:retrieve)
|
65
65
|
|
66
66
|
transaction.evaluate
|
67
67
|
end
|
@@ -86,7 +86,7 @@ describe Puppet::Transaction do
|
|
86
86
|
|
87
87
|
transaction = Puppet::Transaction.new(catalog, nil, Puppet::Graph::SequentialPrioritizer.new)
|
88
88
|
|
89
|
-
expect(resource).not_to receive(:
|
89
|
+
expect(resource).not_to receive(:retrieve)
|
90
90
|
|
91
91
|
transaction.evaluate
|
92
92
|
end
|
@@ -315,16 +315,14 @@ describe Puppet::Transaction do
|
|
315
315
|
file1 = tmpfile("file1")
|
316
316
|
file2 = tmpfile("file2")
|
317
317
|
|
318
|
+
expect(Puppet::FileSystem).to_not be_exist(file2)
|
319
|
+
|
318
320
|
exec1 = Puppet::Type.type(:exec).new(
|
319
321
|
:name => "exec1",
|
320
322
|
:path => ENV["PATH"],
|
321
323
|
:command => touch(file1),
|
322
324
|
)
|
323
325
|
|
324
|
-
allow(exec1).to receive(:eval_generate).and_return(
|
325
|
-
[ Puppet::Type.type(:notify).new(:name => "eval1_notify") ]
|
326
|
-
)
|
327
|
-
|
328
326
|
exec2 = Puppet::Type.type(:exec).new(
|
329
327
|
:name => "exec2",
|
330
328
|
:path => ENV["PATH"],
|
@@ -332,9 +330,6 @@ describe Puppet::Transaction do
|
|
332
330
|
:refreshonly => true,
|
333
331
|
:subscribe => exec1,
|
334
332
|
)
|
335
|
-
allow(exec2).to receive(:eval_generate).and_return(
|
336
|
-
[ Puppet::Type.type(:notify).new(:name => "eval2_notify") ]
|
337
|
-
)
|
338
333
|
|
339
334
|
Puppet[:tags] = "exec"
|
340
335
|
catalog = mk_catalog(exec1, exec2)
|
@@ -50,6 +50,28 @@ describe Puppet::Util::Execution, unless: Puppet::Util::Platform.jruby? do
|
|
50
50
|
Puppet::Util::Execution.execute(str, sensitive: true)
|
51
51
|
expect(@logs).to include(an_object_having_attributes(level: :debug, message: "Executing: '[redacted]'"))
|
52
52
|
end
|
53
|
+
|
54
|
+
it "allows stdout and stderr to share a file" do
|
55
|
+
command = "ruby -e '(1..10).each {|i| (i%2==0) ? $stdout.puts(i) : $stderr.puts(i)}'"
|
56
|
+
|
57
|
+
expect(Puppet::Util::Execution.execute(command, :combine => true).split).to match_array([*'1'..'10'])
|
58
|
+
end
|
59
|
+
|
60
|
+
it "returns output and set $CHILD_STATUS" do
|
61
|
+
command = "ruby -e 'puts \"foo\"; exit 42'"
|
62
|
+
|
63
|
+
output = Puppet::Util::Execution.execute(command, {:failonfail => false})
|
64
|
+
|
65
|
+
expect(output).to eq("foo\n")
|
66
|
+
expect($CHILD_STATUS.exitstatus).to eq(42)
|
67
|
+
end
|
68
|
+
|
69
|
+
it "raises an error if non-zero exit status is returned" do
|
70
|
+
command = "ruby -e 'exit 43'"
|
71
|
+
|
72
|
+
expect { Puppet::Util::Execution.execute(command) }.to raise_error(Puppet::ExecutionFailure, /Execution of '#{command}' returned 43: /)
|
73
|
+
expect($CHILD_STATUS.exitstatus).to eq(43)
|
74
|
+
end
|
53
75
|
end
|
54
76
|
|
55
77
|
describe "#execute (non-Windows)", :if => !Puppet::Util::Platform.windows? do
|
@@ -33,8 +33,8 @@ describe Puppet::Util::Windows::ADSI::User,
|
|
33
33
|
|
34
34
|
describe '.[]' do
|
35
35
|
it 'should return string attributes as UTF-8' do
|
36
|
-
|
37
|
-
expect(
|
36
|
+
user = Puppet::Util::Windows::ADSI::User.new('Guest')
|
37
|
+
expect(user['Description'].encoding).to eq(Encoding::UTF_8)
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
@@ -157,7 +157,9 @@ describe Puppet::Util::Windows::ADSI::Group,
|
|
157
157
|
|
158
158
|
# touch the native_object member to have it lazily loaded, so COM objects can be stubbed
|
159
159
|
admins.native_object
|
160
|
-
|
160
|
+
without_partial_double_verification do
|
161
|
+
allow(admins.native_object).to receive(:Members).and_return(members)
|
162
|
+
end
|
161
163
|
|
162
164
|
# well-known NULL SID
|
163
165
|
expect(admins.members[0].sid).to eq('S-1-0-0')
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Dir, :if => Puppet::Util::Platform.windows? do
|
4
|
+
it "should always have the PERSONAL constant defined" do
|
5
|
+
expect(described_class).to be_const_defined(:PERSONAL)
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should not raise any errors when accessing the PERSONAL constant" do
|
9
|
+
expect { described_class::PERSONAL }.not_to raise_error
|
10
|
+
end
|
11
|
+
end
|
@@ -33,17 +33,7 @@ describe "Puppet::Util::Windows::Process", :if => Puppet::Util::Platform.windows
|
|
33
33
|
end
|
34
34
|
|
35
35
|
describe "when reading environment variables" do
|
36
|
-
after :each do
|
37
|
-
# spec\integration\test\test_helper_spec.rb calls set_environment_strings
|
38
|
-
# after :all and thus needs access to the real APIs once again
|
39
|
-
allow(Puppet::Util::Windows::Process).to receive(:GetEnvironmentStringsW).and_call_original
|
40
|
-
allow(Puppet::Util::Windows::Process).to receive(:FreeEnvironmentStringsW).and_call_original
|
41
|
-
end
|
42
|
-
|
43
36
|
it "will ignore only keys or values with corrupt byte sequences" do
|
44
|
-
arraydest = []
|
45
|
-
Puppet::Util::Log.newdestination(Puppet::Test::LogCollector.new(arraydest))
|
46
|
-
|
47
37
|
env_vars = {}
|
48
38
|
|
49
39
|
# Create a UTF-16LE version of the below null separated environment string
|
@@ -61,9 +51,9 @@ describe "Puppet::Util::Windows::Process", :if => Puppet::Util::Platform.windows
|
|
61
51
|
ptr.put_array_of_uchar(0, env_var_block_bytes)
|
62
52
|
|
63
53
|
# stub the block of memory that the Win32 API would typically return via pointer
|
64
|
-
|
54
|
+
allow(Puppet::Util::Windows::Process).to receive(:GetEnvironmentStringsW).and_return(ptr)
|
65
55
|
# stub out the real API call to free memory, else process crashes
|
66
|
-
|
56
|
+
allow(Puppet::Util::Windows::Process).to receive(:FreeEnvironmentStringsW)
|
67
57
|
|
68
58
|
env_vars = Puppet::Util::Windows::Process.get_environment_strings
|
69
59
|
end
|
@@ -72,39 +62,43 @@ describe "Puppet::Util::Windows::Process", :if => Puppet::Util::Platform.windows
|
|
72
62
|
expect(env_vars).to eq({'a' => 'b', 'c' => 'd', 'f' => 'g'})
|
73
63
|
|
74
64
|
# and Puppet should emit a warning about it
|
75
|
-
expect(
|
76
|
-
expect(
|
65
|
+
expect(@logs.last.level).to eq(:warning)
|
66
|
+
expect(@logs.last.message).to eq("Discarding environment variable e=\uFFFD which contains invalid bytes")
|
77
67
|
end
|
78
68
|
end
|
79
69
|
|
80
70
|
describe "when setting environment variables" do
|
81
|
-
|
82
|
-
begin
|
83
|
-
name = SecureRandom.uuid
|
84
|
-
value = 'foo=bar'
|
71
|
+
let(:name) { SecureRandom.uuid }
|
85
72
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
expect(env[name]).to eq(value)
|
73
|
+
around :each do |example|
|
74
|
+
begin
|
75
|
+
example.run
|
91
76
|
ensure
|
92
77
|
Puppet::Util::Windows::Process.set_environment_variable(name, nil)
|
93
78
|
end
|
94
79
|
end
|
95
80
|
|
96
|
-
it "
|
97
|
-
|
98
|
-
|
81
|
+
it "sets environment variables containing '='" do
|
82
|
+
value = 'foo=bar'
|
83
|
+
Puppet::Util::Windows::Process.set_environment_variable(name, value)
|
84
|
+
env = Puppet::Util::Windows::Process.get_environment_strings
|
99
85
|
|
100
|
-
|
86
|
+
expect(env[name]).to eq(value)
|
87
|
+
end
|
101
88
|
|
102
|
-
|
89
|
+
it "sets environment variables contains spaces" do
|
90
|
+
Puppet::Util::Windows::Process.set_environment_variable(name, '')
|
91
|
+
env = Puppet::Util::Windows::Process.get_environment_strings
|
103
92
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
93
|
+
expect(env[name]).to eq('')
|
94
|
+
end
|
95
|
+
|
96
|
+
it "sets environment variables containing UTF-8" do
|
97
|
+
rune_utf8 = "\u16A0\u16C7\u16BB\u16EB\u16D2\u16E6\u16A6\u16EB\u16A0\u16B1\u16A9\u16A0\u16A2\u16B1\u16EB\u16A0\u16C1\u16B1\u16AA\u16EB\u16B7\u16D6\u16BB\u16B9\u16E6\u16DA\u16B3\u16A2\u16D7"
|
98
|
+
Puppet::Util::Windows::Process.set_environment_variable(name, rune_utf8)
|
99
|
+
env = Puppet::Util::Windows::Process.get_environment_strings
|
100
|
+
|
101
|
+
expect(env[name]).to eq(rune_utf8)
|
108
102
|
end
|
109
103
|
end
|
110
104
|
end
|
@@ -146,16 +146,6 @@ describe Puppet::Util::Windows::Registry do
|
|
146
146
|
utf_8_bytes = ENDASH_UTF_8 + TM_UTF_8
|
147
147
|
utf_8_str = utf_8_bytes.pack('c*').force_encoding(Encoding::UTF_8)
|
148
148
|
|
149
|
-
# this problematic Ruby codepath triggers a conversion of UTF-16LE to
|
150
|
-
# a local codepage which can totally break when that codepage has no
|
151
|
-
# conversion from the given UTF-16LE characters to local codepage
|
152
|
-
# a prime example is that IBM437 has no conversion from a Unicode en-dash
|
153
|
-
expect(Win32::Registry).not_to receive(:export_string)
|
154
|
-
|
155
|
-
# also, expect that we're using our variants of keys / values, not Rubys
|
156
|
-
expect(Win32::Registry).not_to receive(:each_key)
|
157
|
-
expect(Win32::Registry).not_to receive(:each_value)
|
158
|
-
|
159
149
|
hklm.create("#{puppet_key}\\#{subkey_name}", Win32::Registry::KEY_ALL_ACCESS | regsam) do |reg|
|
160
150
|
reg.write("#{guid}", Win32::Registry::REG_SZ, utf_16_str)
|
161
151
|
|
@@ -215,5 +215,12 @@ describe "Puppet::Util::Windows::User", :if => Puppet::Util::Platform.windows? d
|
|
215
215
|
expect(Puppet::Util::Windows::User.localsystem?('OtherUser')).to eq(false)
|
216
216
|
end
|
217
217
|
end
|
218
|
+
|
219
|
+
describe "get_rights" do
|
220
|
+
it "should be empty when given user does not exist" do
|
221
|
+
allow(Puppet::Util::Windows::SID).to receive(:name_to_principal).with('NonExistingUser').and_return(nil)
|
222
|
+
expect(Puppet::Util::Windows::User.get_rights('NonExistingUser')).to eq("")
|
223
|
+
end
|
224
|
+
end
|
218
225
|
end
|
219
226
|
end
|
@@ -1,32 +1,9 @@
|
|
1
|
+
# coding: utf-8
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
describe Puppet::Util do
|
4
5
|
include PuppetSpec::Files
|
5
6
|
|
6
|
-
describe "#execute", unless: Puppet::Util::Platform.jruby? do
|
7
|
-
it "should properly allow stdout and stderr to share a file" do
|
8
|
-
command = "ruby -e '(1..10).each {|i| (i%2==0) ? $stdout.puts(i) : $stderr.puts(i)}'"
|
9
|
-
|
10
|
-
expect(Puppet::Util::Execution.execute(command, :combine => true).split).to match_array([*'1'..'10'])
|
11
|
-
end
|
12
|
-
|
13
|
-
it "should return output and set $CHILD_STATUS" do
|
14
|
-
command = "ruby -e 'puts \"foo\"; exit 42'"
|
15
|
-
|
16
|
-
output = Puppet::Util::Execution.execute(command, {:failonfail => false})
|
17
|
-
|
18
|
-
expect(output).to eq("foo\n")
|
19
|
-
expect($CHILD_STATUS.exitstatus).to eq(42)
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should raise an error if non-zero exit status is returned" do
|
23
|
-
command = "ruby -e 'exit 43'"
|
24
|
-
|
25
|
-
expect { Puppet::Util::Execution.execute(command) }.to raise_error(Puppet::ExecutionFailure, /Execution of '#{command}' returned 43: /)
|
26
|
-
expect($CHILD_STATUS.exitstatus).to eq(43)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
7
|
describe "#replace_file on Windows", :if => Puppet::Util::Platform.windows? do
|
31
8
|
it "replace_file should preserve original ACEs from existing replaced file on Windows" do
|
32
9
|
|
@@ -110,18 +87,15 @@ describe Puppet::Util do
|
|
110
87
|
describe "#which on Windows", :if => Puppet::Util::Platform.windows? do
|
111
88
|
let (:rune_utf8) { "\u16A0\u16C7\u16BB\u16EB\u16D2\u16E6\u16A6\u16EB\u16A0\u16B1\u16A9\u16A0\u16A2\u16B1\u16EB\u16A0\u16C1\u16B1\u16AA\u16EB\u16B7\u16D6\u16BB\u16B9\u16E6\u16DA\u16B3\u16A2\u16D7" }
|
112
89
|
let (:filename) { 'foo.exe' }
|
113
|
-
let (:filepath) { File.expand_path('C:\\' + rune_utf8 + '\\' + filename) }
|
114
90
|
|
115
|
-
|
116
|
-
|
117
|
-
|
91
|
+
it "should be able to use UTF8 characters in the path" do
|
92
|
+
utf8 = tmpdir(rune_utf8)
|
93
|
+
Puppet::FileSystem.mkpath(utf8)
|
118
94
|
|
119
|
-
|
120
|
-
|
121
|
-
end
|
95
|
+
filepath = File.join(utf8, filename)
|
96
|
+
Puppet::FileSystem.touch(filepath)
|
122
97
|
|
123
|
-
|
124
|
-
path = "C:\\" + rune_utf8 + "#{File::PATH_SEPARATOR}c:\\windows\\system32#{File::PATH_SEPARATOR}c:\\windows"
|
98
|
+
path = [utf8, "c:\\windows\\system32", "c:\\windows"].join(File::PATH_SEPARATOR)
|
125
99
|
Puppet::Util.withenv( { "PATH" => path } , :windows) do
|
126
100
|
expect(Puppet::Util.which(filename)).to eq(filepath)
|
127
101
|
end
|