chef 12.0.3-x86-mingw32 → 12.1.0.rc.0-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +4 -1
- data/README.md +42 -18
- data/distro/common/html/_sources/ctl_chef_client.txt +1 -1
- data/distro/common/html/_sources/ctl_chef_server.txt +53 -35
- data/distro/common/html/_sources/ctl_chef_solo.txt +1 -1
- data/distro/common/html/_sources/knife_bootstrap.txt +1 -1
- data/distro/common/html/_sources/knife_cookbook_site.txt +1 -1
- data/distro/common/html/_sources/knife_data_bag.txt +4 -4
- data/distro/common/html/_sources/knife_status.txt +1 -1
- data/distro/common/html/_static/searchtools.js +1 -1
- data/distro/common/html/ctl_chef_client.html +55 -7
- data/distro/common/html/ctl_chef_server.html +84 -41
- data/distro/common/html/ctl_chef_shell.html +45 -1
- data/distro/common/html/ctl_chef_solo.html +51 -5
- data/distro/common/html/index.html +2 -2
- data/distro/common/html/knife.html +1 -1
- data/distro/common/html/knife_bootstrap.html +30 -10
- data/distro/common/html/knife_cookbook_site.html +2 -0
- data/distro/common/html/knife_data_bag.html +4 -4
- data/distro/common/html/knife_node.html +2 -2
- data/distro/common/html/knife_raw.html +1 -1
- data/distro/common/html/knife_role.html +1 -1
- data/distro/common/html/knife_search.html +3 -3
- data/distro/common/html/knife_status.html +4 -0
- data/distro/common/html/searchindex.js +1 -1
- data/distro/common/man/man1/chef-shell.1 +72 -1
- data/distro/common/man/man1/knife-bootstrap.1 +71 -63
- data/distro/common/man/man1/knife-client.1 +1 -1
- data/distro/common/man/man1/knife-configure.1 +1 -1
- data/distro/common/man/man1/knife-cookbook-site.1 +4 -1
- data/distro/common/man/man1/knife-cookbook.1 +1 -1
- data/distro/common/man/man1/knife-data-bag.1 +5 -5
- data/distro/common/man/man1/knife-delete.1 +1 -1
- data/distro/common/man/man1/knife-deps.1 +1 -1
- data/distro/common/man/man1/knife-diff.1 +1 -1
- data/distro/common/man/man1/knife-download.1 +1 -1
- data/distro/common/man/man1/knife-edit.1 +1 -1
- data/distro/common/man/man1/knife-environment.1 +1 -1
- data/distro/common/man/man1/knife-exec.1 +1 -1
- data/distro/common/man/man1/knife-index-rebuild.1 +1 -1
- data/distro/common/man/man1/knife-list.1 +1 -1
- data/distro/common/man/man1/knife-node.1 +3 -3
- data/distro/common/man/man1/knife-raw.1 +2 -2
- data/distro/common/man/man1/knife-recipe-list.1 +1 -1
- data/distro/common/man/man1/knife-role.1 +2 -2
- data/distro/common/man/man1/knife-search.1 +4 -4
- data/distro/common/man/man1/knife-serve.1 +1 -1
- data/distro/common/man/man1/knife-show.1 +1 -1
- data/distro/common/man/man1/knife-ssh.1 +1 -1
- data/distro/common/man/man1/knife-ssl-check.1 +1 -1
- data/distro/common/man/man1/knife-ssl-fetch.1 +1 -1
- data/distro/common/man/man1/knife-status.1 +1 -1
- data/distro/common/man/man1/knife-tag.1 +1 -1
- data/distro/common/man/man1/knife-upload.1 +1 -1
- data/distro/common/man/man1/knife-user.1 +1 -1
- data/distro/common/man/man1/knife-xargs.1 +1 -1
- data/distro/common/man/man1/knife.1 +1 -1
- data/distro/common/man/man8/chef-apply.8 +86 -0
- data/distro/common/man/man8/chef-client.8 +76 -5
- data/distro/common/man/man8/chef-solo.8 +79 -6
- data/distro/common/markdown/man1/knife-bootstrap.mkd +1 -1
- data/distro/common/markdown/man1/knife-cookbook-site.mkd +1 -1
- data/distro/common/markdown/man1/knife-data-bag.mkd +1 -1
- data/distro/common/markdown/man1/knife-environment.mkd +1 -1
- data/distro/common/markdown/man1/knife.mkd +1 -1
- data/lib/chef.rb +0 -7
- data/lib/chef/api_client.rb +10 -2
- data/lib/chef/api_client/registration.rb +7 -9
- data/lib/chef/application.rb +28 -12
- data/lib/chef/application/apply.rb +17 -1
- data/lib/chef/application/client.rb +74 -6
- data/lib/chef/application/knife.rb +1 -2
- data/lib/chef/application/solo.rb +30 -0
- data/lib/chef/application/windows_service.rb +1 -0
- data/lib/chef/application/windows_service_manager.rb +8 -2
- data/lib/chef/applications.rb +0 -1
- data/lib/chef/audit/audit_event_proxy.rb +93 -0
- data/lib/chef/audit/audit_reporter.rb +169 -0
- data/lib/chef/audit/control_group_data.rb +140 -0
- data/lib/chef/audit/rspec_formatter.rb +37 -0
- data/lib/chef/audit/runner.rb +178 -0
- data/lib/chef/chef_fs/chef_fs_data_store.rb +11 -2
- data/lib/chef/chef_fs/config.rb +25 -4
- data/lib/chef/chef_fs/data_handler/policy_data_handler.rb +15 -0
- data/lib/chef/chef_fs/data_handler/user_data_handler.rb +1 -0
- data/lib/chef/chef_fs/file_system.rb +1 -1
- data/lib/chef/chef_fs/file_system/base_fs_dir.rb +5 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb +3 -2
- data/lib/chef/{shef/ext.rb → chef_fs/file_system/chef_repository_file_system_policies_dir.rb} +22 -3
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +4 -0
- data/lib/chef/client.rb +81 -52
- data/lib/chef/config.rb +35 -3
- data/lib/chef/cookbook/metadata.rb +3 -3
- data/lib/chef/cookbook_manifest.rb +275 -0
- data/lib/chef/cookbook_site_streaming_uploader.rb +24 -23
- data/lib/chef/cookbook_uploader.rb +11 -2
- data/lib/chef/cookbook_version.rb +71 -194
- data/lib/chef/data_bag.rb +5 -2
- data/lib/chef/data_bag_item.rb +6 -3
- data/lib/chef/deprecation/warnings.rb +5 -4
- data/lib/chef/dsl/audit.rb +51 -0
- data/lib/chef/dsl/include_recipe.rb +2 -3
- data/lib/chef/dsl/reboot_pending.rb +1 -1
- data/lib/chef/dsl/recipe.rb +49 -31
- data/lib/chef/encrypted_data_bag_item/assertions.rb +0 -3
- data/lib/chef/environment.rb +5 -2
- data/lib/chef/event_dispatch/base.rb +36 -1
- data/lib/chef/event_dispatch/dispatcher.rb +3 -5
- data/lib/chef/exceptions.rb +61 -2
- data/lib/chef/file_access_control/unix.rb +12 -0
- data/lib/chef/file_access_control/windows.rb +14 -0
- data/lib/chef/formatters/doc.rb +47 -1
- data/{spec/unit/monkey_patches/string_spec.rb → lib/chef/guard_interpreter.rb} +11 -16
- data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +3 -2
- data/lib/chef/http.rb +1 -2
- data/lib/chef/knife.rb +5 -3
- data/lib/chef/knife/bootstrap.rb +84 -15
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +165 -0
- data/lib/chef/knife/bootstrap/client_builder.rb +190 -0
- data/lib/chef/knife/bootstrap/{README.md → templates/README.md} +0 -0
- data/lib/chef/knife/bootstrap/{archlinux-gems.erb → templates/archlinux-gems.erb} +9 -0
- data/lib/chef/knife/bootstrap/{chef-aix.erb → templates/chef-aix.erb} +9 -0
- data/lib/chef/knife/bootstrap/{chef-full.erb → templates/chef-full.erb} +10 -1
- data/lib/chef/knife/client_create.rb +8 -7
- data/lib/chef/knife/cookbook_site_download.rb +1 -1
- data/lib/chef/knife/cookbook_site_install.rb +1 -1
- data/lib/chef/knife/cookbook_site_list.rb +1 -1
- data/lib/chef/knife/cookbook_site_search.rb +1 -1
- data/lib/chef/knife/cookbook_site_share.rb +39 -28
- data/lib/chef/knife/cookbook_site_show.rb +3 -3
- data/lib/chef/knife/cookbook_site_unshare.rb +1 -1
- data/lib/chef/knife/cookbook_test.rb +1 -0
- data/lib/chef/knife/cookbook_upload.rb +13 -8
- data/lib/chef/knife/core/bootstrap_context.rb +14 -3
- data/lib/chef/knife/core/generic_presenter.rb +5 -2
- data/lib/chef/knife/core/object_loader.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +24 -0
- data/lib/chef/knife/core/ui.rb +9 -1
- data/lib/chef/knife/node_run_list_remove.rb +11 -3
- data/lib/chef/knife/raw.rb +14 -3
- data/lib/chef/knife/role_env_run_list_add.rb +86 -0
- data/lib/chef/knife/role_env_run_list_clear.rb +55 -0
- data/lib/chef/knife/role_env_run_list_remove.rb +57 -0
- data/lib/chef/knife/role_env_run_list_replace.rb +59 -0
- data/lib/chef/knife/role_env_run_list_set.rb +70 -0
- data/lib/chef/knife/role_run_list_add.rb +86 -0
- data/lib/chef/knife/role_run_list_clear.rb +55 -0
- data/lib/chef/knife/role_run_list_remove.rb +57 -0
- data/lib/chef/knife/role_run_list_replace.rb +59 -0
- data/lib/chef/knife/role_run_list_set.rb +70 -0
- data/lib/chef/knife/search.rb +4 -4
- data/lib/chef/knife/serve.rb +3 -0
- data/lib/chef/knife/ssh.rb +1 -1
- data/lib/chef/knife/ssl_check.rb +2 -2
- data/lib/chef/knife/ssl_fetch.rb +14 -1
- data/lib/chef/log.rb +10 -1
- data/lib/chef/mixin/command.rb +1 -1
- data/lib/chef/mixin/command/windows.rb +1 -5
- data/lib/chef/mixin/get_source_from_package.rb +1 -0
- data/lib/chef/mixin/params_validate.rb +2 -2
- data/lib/chef/mixin/securable.rb +1 -7
- data/lib/chef/mixin/shell_out.rb +7 -1
- data/lib/chef/mixin/template.rb +2 -14
- data/lib/chef/mixin/why_run.rb +1 -1
- data/lib/chef/monkey_patches/net_http.rb +4 -0
- data/lib/chef/monologger.rb +0 -2
- data/lib/chef/node.rb +5 -2
- data/lib/chef/node/attribute.rb +11 -9
- data/lib/chef/node/attribute_collections.rb +8 -12
- data/lib/chef/node/immutable_collections.rb +4 -10
- data/lib/chef/org.rb +148 -0
- data/lib/chef/platform/provider_mapping.rb +3 -2
- data/lib/chef/platform/provider_priority_map.rb +2 -0
- data/lib/chef/platform/query_helpers.rb +0 -3
- data/lib/chef/policy_builder/policyfile.rb +51 -8
- data/lib/chef/provider/deploy.rb +1 -2
- data/lib/chef/provider/directory.rb +3 -3
- data/lib/chef/provider/dsc_script.rb +13 -7
- data/lib/chef/provider/env.rb +8 -8
- data/lib/chef/provider/execute.rb +55 -36
- data/lib/chef/provider/file.rb +8 -0
- data/lib/chef/provider/group.rb +2 -0
- data/lib/chef/provider/group/dscl.rb +3 -4
- data/lib/chef/provider/ifconfig.rb +25 -25
- data/lib/chef/provider/ifconfig/aix.rb +25 -27
- data/lib/chef/provider/lwrp_base.rb +1 -1
- data/lib/chef/provider/mount.rb +2 -2
- data/lib/chef/provider/mount/mount.rb +3 -4
- data/lib/chef/provider/mount/solaris.rb +1 -1
- data/lib/chef/provider/package.rb +297 -48
- data/lib/chef/provider/package/aix.rb +25 -30
- data/lib/chef/provider/package/apt.rb +63 -19
- data/lib/chef/provider/package/dpkg.rb +15 -16
- data/lib/chef/provider/package/macports.rb +7 -7
- data/lib/chef/provider/package/openbsd.rb +107 -0
- data/lib/chef/provider/package/pacman.rb +13 -15
- data/lib/chef/provider/package/portage.rb +3 -4
- data/lib/chef/provider/package/rpm.rb +28 -17
- data/lib/chef/provider/package/rubygems.rb +9 -9
- data/lib/chef/provider/package/solaris.rb +17 -21
- data/lib/chef/provider/package/windows/msi.rb +1 -1
- data/lib/chef/provider/package/yum-dump.py +2 -2
- data/lib/chef/provider/package/yum.rb +117 -51
- data/lib/chef/provider/package/zypper.rb +17 -18
- data/lib/chef/provider/powershell_script.rb +4 -4
- data/lib/chef/provider/registry_key.rb +2 -2
- data/lib/chef/provider/remote_directory.rb +1 -1
- data/lib/chef/provider/script.rb +25 -16
- data/lib/chef/provider/service.rb +1 -1
- data/lib/chef/provider/service/freebsd.rb +1 -1
- data/lib/chef/provider/service/openbsd.rb +216 -0
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +99 -1
- data/lib/chef/provider/user.rb +1 -1
- data/lib/chef/provider/user/dscl.rb +19 -4
- data/lib/chef/providers.rb +2 -0
- data/lib/chef/recipe.rb +11 -5
- data/lib/chef/request_id.rb +1 -1
- data/lib/chef/resource.rb +839 -444
- data/lib/chef/resource/chef_gem.rb +20 -3
- data/lib/chef/resource/conditional.rb +3 -14
- data/lib/chef/resource/dsc_script.rb +14 -0
- data/lib/chef/resource/execute.rb +14 -7
- data/lib/chef/resource/file.rb +14 -0
- data/lib/chef/resource/file/verification.rb +122 -0
- data/lib/chef/resource/ips_package.rb +1 -1
- data/lib/chef/resource/lwrp_base.rb +2 -11
- data/lib/chef/resource/macports_package.rb +2 -1
- data/lib/chef/resource/openbsd_package.rb +51 -0
- data/lib/chef/resource/package.rb +2 -2
- data/lib/chef/resource/paludis_package.rb +1 -1
- data/lib/chef/resource/reboot.rb +1 -1
- data/lib/chef/resource/remote_file.rb +1 -0
- data/lib/chef/resource/rpm_package.rb +9 -0
- data/lib/chef/resource/script.rb +11 -0
- data/lib/chef/resource/template.rb +2 -3
- data/lib/chef/resource/windows_package.rb +1 -1
- data/lib/chef/resource/windows_service.rb +18 -0
- data/lib/chef/resource_builder.rb +137 -0
- data/lib/chef/resource_definition.rb +1 -1
- data/lib/chef/resource_reporter.rb +1 -1
- data/lib/chef/resources.rb +1 -0
- data/lib/chef/role.rb +17 -4
- data/lib/chef/run_context.rb +10 -6
- data/lib/chef/search/query.rb +66 -87
- data/lib/chef/shell/ext.rb +2 -2
- data/lib/chef/util/diff.rb +1 -4
- data/lib/chef/util/dsc/configuration_generator.rb +30 -6
- data/lib/chef/util/dsc/lcm_output_parser.rb +7 -3
- data/lib/chef/util/dsc/local_configuration_manager.rb +8 -8
- data/lib/chef/util/file_edit.rb +2 -2
- data/lib/chef/util/path_helper.rb +1 -4
- data/lib/chef/util/windows/net_use.rb +3 -3
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/api.rb +1 -0
- data/lib/chef/win32/api/security.rb +26 -0
- data/lib/chef/win32/file.rb +21 -0
- data/lib/chef/win32/security.rb +46 -0
- data/lib/chef/win32/security/token.rb +8 -0
- data/lib/chef/win32/version.rb +0 -4
- data/spec/data/recipes.tgz +0 -0
- data/spec/functional/application_spec.rb +1 -1
- data/spec/functional/audit/rspec_formatter_spec.rb +54 -0
- data/spec/functional/audit/runner_spec.rb +137 -0
- data/spec/functional/dsl/reboot_pending_spec.rb +10 -10
- data/spec/functional/dsl/registry_helper_spec.rb +6 -6
- data/spec/functional/event_loggers/windows_eventlog_spec.rb +5 -5
- data/spec/functional/file_content_management/deploy_strategies_spec.rb +12 -21
- data/spec/functional/http/simple_spec.rb +1 -1
- data/spec/functional/knife/cookbook_delete_spec.rb +24 -24
- data/spec/functional/knife/exec_spec.rb +2 -4
- data/spec/functional/knife/smoke_test.rb +1 -1
- data/spec/functional/knife/ssh_spec.rb +23 -23
- data/spec/functional/provider/remote_file/cache_control_data_spec.rb +8 -8
- data/spec/functional/provider/whyrun_safe_ruby_block_spec.rb +2 -2
- data/spec/functional/rebooter_spec.rb +1 -1
- data/spec/functional/resource/aix_service_spec.rb +3 -0
- data/spec/functional/resource/aixinit_service_spec.rb +3 -3
- data/spec/functional/resource/bash_spec.rb +88 -0
- data/spec/functional/resource/deploy_revision_spec.rb +99 -100
- data/spec/functional/resource/env_spec.rb +3 -3
- data/spec/functional/resource/execute_spec.rb +97 -63
- data/spec/functional/resource/file_spec.rb +7 -7
- data/spec/functional/resource/git_spec.rb +13 -13
- data/spec/functional/resource/group_spec.rb +28 -25
- data/spec/functional/resource/ifconfig_spec.rb +2 -2
- data/spec/functional/resource/link_spec.rb +77 -78
- data/spec/functional/resource/mount_spec.rb +5 -5
- data/spec/functional/resource/ohai_spec.rb +1 -1
- data/spec/functional/resource/package_spec.rb +22 -22
- data/spec/functional/resource/powershell_spec.rb +57 -42
- data/spec/functional/resource/reboot_spec.rb +2 -2
- data/spec/functional/resource/registry_spec.rb +91 -91
- data/spec/functional/resource/remote_directory_spec.rb +19 -19
- data/spec/functional/resource/remote_file_spec.rb +18 -18
- data/spec/functional/resource/template_spec.rb +4 -4
- data/spec/functional/resource/user/dscl_spec.rb +4 -4
- data/spec/functional/resource/user/useradd_spec.rb +64 -51
- data/spec/functional/resource/windows_service_spec.rb +98 -0
- data/spec/functional/run_lock_spec.rb +9 -9
- data/spec/functional/shell_spec.rb +3 -3
- data/spec/functional/tiny_server_spec.rb +12 -12
- data/spec/functional/util/path_helper_spec.rb +1 -1
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/registry_helper_spec.rb +125 -125
- data/spec/functional/win32/security_spec.rb +65 -2
- data/spec/functional/win32/service_manager_spec.rb +30 -84
- data/spec/functional/win32/versions_spec.rb +6 -6
- data/spec/integration/client/client_spec.rb +102 -9
- data/spec/integration/knife/chef_fs_data_store_spec.rb +12 -8
- data/spec/integration/knife/common_options_spec.rb +3 -3
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +2 -2
- data/spec/integration/knife/deps_spec.rb +4 -4
- data/spec/integration/knife/diff_spec.rb +6 -6
- data/spec/integration/knife/download_spec.rb +6 -6
- data/spec/integration/knife/list_spec.rb +2 -2
- data/spec/integration/knife/raw_spec.rb +5 -5
- data/spec/integration/knife/serve_spec.rb +3 -3
- data/spec/integration/knife/show_spec.rb +3 -3
- data/spec/integration/knife/upload_spec.rb +18 -18
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
- data/spec/integration/solo/solo_spec.rb +11 -12
- data/spec/spec_helper.rb +27 -15
- data/spec/stress/win32/file_spec.rb +4 -4
- data/spec/stress/win32/security_spec.rb +4 -4
- data/spec/support/chef_helpers.rb +3 -3
- data/spec/support/matchers/leak.rb +2 -2
- data/spec/support/mock/platform.rb +1 -1
- data/spec/support/pedant/Gemfile +3 -0
- data/spec/support/pedant/pedant_config.rb +9 -2
- data/spec/support/pedant/run_pedant.rb +15 -16
- data/spec/support/platform_helpers.rb +8 -12
- data/spec/support/shared/functional/directory_resource.rb +13 -13
- data/spec/support/shared/functional/file_resource.rb +83 -83
- data/spec/support/shared/functional/http.rb +1 -1
- data/spec/support/shared/functional/securable_resource.rb +64 -64
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +43 -41
- data/spec/support/shared/functional/win32_service.rb +60 -0
- data/spec/support/shared/functional/windows_script.rb +8 -8
- data/spec/support/shared/integration/knife_support.rb +8 -5
- data/spec/support/shared/matchers/exit_with_code.rb +6 -2
- data/spec/support/shared/unit/api_error_inspector.rb +8 -8
- data/spec/support/shared/unit/execute_resource.rb +24 -20
- data/spec/support/shared/unit/file_system_support.rb +2 -2
- data/spec/support/shared/unit/platform_introspector.rb +21 -21
- data/spec/support/shared/unit/provider/file.rb +239 -210
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +69 -69
- data/spec/support/shared/unit/script_resource.rb +40 -32
- data/spec/support/shared/unit/windows_script_resource.rb +8 -8
- data/spec/unit/api_client/registration_spec.rb +47 -47
- data/spec/unit/api_client_spec.rb +107 -69
- data/spec/unit/application/apply_spec.rb +31 -15
- data/spec/unit/application/client_spec.rb +146 -45
- data/spec/unit/application/knife_spec.rb +31 -31
- data/spec/unit/application/solo_spec.rb +59 -43
- data/spec/unit/application_spec.rb +109 -74
- data/spec/unit/audit/audit_event_proxy_spec.rb +311 -0
- data/spec/unit/audit/audit_reporter_spec.rb +393 -0
- data/spec/unit/audit/control_group_data_spec.rb +478 -0
- data/{lib/chef/monkey_patches/file.rb → spec/unit/audit/rspec_formatter_spec.rb} +11 -8
- data/spec/unit/audit/runner_spec.rb +135 -0
- data/spec/unit/chef_fs/config_spec.rb +52 -0
- data/spec/unit/chef_fs/diff_spec.rb +12 -12
- data/spec/unit/chef_fs/file_pattern_spec.rb +276 -277
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +6 -6
- data/spec/unit/chef_fs/file_system_spec.rb +26 -13
- data/spec/unit/chef_fs/parallelizer.rb +87 -87
- data/spec/unit/chef_spec.rb +1 -1
- data/spec/unit/client_spec.rb +263 -97
- data/spec/unit/config_fetcher_spec.rb +13 -13
- data/spec/unit/config_spec.rb +105 -66
- data/spec/unit/cookbook/chefignore_spec.rb +6 -6
- data/spec/unit/cookbook/cookbook_version_loader_spec.rb +3 -3
- data/spec/unit/cookbook/metadata_spec.rb +149 -149
- data/spec/unit/cookbook/syntax_check_spec.rb +36 -31
- data/spec/unit/cookbook_loader_spec.rb +62 -58
- data/spec/unit/cookbook_manifest_spec.rb +141 -468
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +27 -27
- data/spec/unit/cookbook_spec.rb +15 -15
- data/spec/unit/cookbook_uploader_spec.rb +37 -3
- data/spec/unit/cookbook_version_file_specificity_spec.rb +554 -0
- data/spec/unit/cookbook_version_spec.rb +98 -240
- data/spec/unit/daemon_spec.rb +31 -31
- data/spec/unit/data_bag_item_spec.rb +121 -89
- data/spec/unit/data_bag_spec.rb +35 -35
- data/spec/unit/deprecation_spec.rb +27 -14
- data/spec/unit/digester_spec.rb +3 -3
- data/spec/unit/dsl/audit_spec.rb +43 -0
- data/spec/unit/dsl/data_query_spec.rb +1 -1
- data/spec/unit/dsl/platform_introspection_spec.rb +14 -14
- data/spec/unit/dsl/reboot_pending_spec.rb +18 -18
- data/spec/unit/dsl/regsitry_helper_spec.rb +6 -6
- data/spec/unit/encrypted_data_bag_item_spec.rb +58 -82
- data/spec/unit/environment_spec.rb +105 -105
- data/spec/unit/exceptions_spec.rb +47 -1
- data/spec/unit/file_access_control_spec.rb +62 -56
- data/spec/unit/file_cache_spec.rb +11 -11
- data/spec/unit/file_content_management/deploy/cp_spec.rb +2 -2
- data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +10 -10
- data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +23 -23
- data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +14 -14
- data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +12 -12
- data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +1 -1
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +16 -16
- data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +4 -4
- data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +103 -13
- data/spec/unit/guard_interpreter_spec.rb +41 -0
- data/spec/unit/handler/json_file_spec.rb +10 -10
- data/spec/unit/handler_spec.rb +39 -39
- data/spec/unit/http/basic_client_spec.rb +3 -3
- data/spec/unit/http/http_request_spec.rb +10 -10
- data/spec/unit/http/simple_spec.rb +3 -3
- data/spec/unit/http/ssl_policies_spec.rb +15 -15
- data/spec/unit/http/validate_content_length_spec.rb +18 -13
- data/spec/unit/http_spec.rb +16 -9
- data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +153 -0
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +178 -0
- data/spec/unit/knife/bootstrap_spec.rb +144 -91
- data/spec/unit/knife/client_bulk_delete_spec.rb +24 -24
- data/spec/unit/knife/client_create_spec.rb +57 -43
- data/spec/unit/knife/client_delete_spec.rb +15 -15
- data/spec/unit/knife/client_edit_spec.rb +4 -4
- data/spec/unit/knife/client_list_spec.rb +2 -2
- data/spec/unit/knife/client_reregister_spec.rb +9 -9
- data/spec/unit/knife/configure_client_spec.rb +20 -20
- data/spec/unit/knife/configure_spec.rb +85 -85
- data/spec/unit/knife/cookbook_bulk_delete_spec.rb +15 -15
- data/spec/unit/knife/cookbook_create_spec.rb +59 -59
- data/spec/unit/knife/cookbook_delete_spec.rb +49 -49
- data/spec/unit/knife/cookbook_download_spec.rb +56 -56
- data/spec/unit/knife/cookbook_list_spec.rb +9 -9
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +8 -8
- data/spec/unit/knife/cookbook_metadata_spec.rb +44 -44
- data/spec/unit/knife/cookbook_show_spec.rb +29 -29
- data/spec/unit/knife/cookbook_site_download_spec.rb +26 -26
- data/spec/unit/knife/cookbook_site_install_spec.rb +5 -1
- data/spec/unit/knife/cookbook_site_share_spec.rb +68 -59
- data/spec/unit/knife/cookbook_site_unshare_spec.rb +15 -15
- data/spec/unit/knife/cookbook_test_spec.rb +16 -16
- data/spec/unit/knife/cookbook_upload_spec.rb +105 -71
- data/spec/unit/knife/core/bootstrap_context_spec.rb +37 -22
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +36 -36
- data/spec/unit/knife/core/object_loader_spec.rb +3 -3
- data/spec/unit/knife/core/subcommand_loader_spec.rb +107 -33
- data/spec/unit/knife/core/ui_spec.rb +84 -72
- data/spec/unit/knife/data_bag_from_file_spec.rb +1 -1
- data/spec/unit/knife/environment_compare_spec.rb +12 -12
- data/spec/unit/knife/environment_create_spec.rb +16 -16
- data/spec/unit/knife/environment_delete_spec.rb +14 -14
- data/spec/unit/knife/environment_edit_spec.rb +15 -15
- data/spec/unit/knife/environment_from_file_spec.rb +17 -17
- data/spec/unit/knife/environment_list_spec.rb +7 -7
- data/spec/unit/knife/environment_show_spec.rb +10 -10
- data/spec/unit/knife/index_rebuild_spec.rb +17 -17
- data/spec/unit/knife/knife_help.rb +24 -24
- data/spec/unit/knife/node_bulk_delete_spec.rb +14 -14
- data/spec/unit/knife/node_delete_spec.rb +11 -11
- data/spec/unit/knife/node_edit_spec.rb +17 -17
- data/spec/unit/knife/node_environment_set_spec.rb +12 -12
- data/spec/unit/knife/node_from_file_spec.rb +8 -8
- data/spec/unit/knife/node_list_spec.rb +9 -9
- data/spec/unit/knife/node_run_list_add_spec.rb +29 -29
- data/spec/unit/knife/node_run_list_remove_spec.rb +28 -13
- data/spec/unit/knife/node_run_list_set_spec.rb +27 -27
- data/spec/unit/knife/raw_spec.rb +43 -0
- data/spec/unit/knife/role_bulk_delete_spec.rb +12 -12
- data/spec/unit/knife/role_create_spec.rb +12 -12
- data/spec/unit/knife/role_delete_spec.rb +10 -10
- data/spec/unit/knife/role_edit_spec.rb +13 -13
- data/spec/unit/knife/role_env_run_list_add_spec.rb +217 -0
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +100 -0
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +108 -0
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +108 -0
- data/spec/unit/knife/role_env_run_list_set_spec.rb +102 -0
- data/spec/unit/knife/role_from_file_spec.rb +10 -10
- data/spec/unit/knife/role_list_spec.rb +7 -7
- data/spec/unit/knife/role_run_list_add_spec.rb +179 -0
- data/spec/unit/knife/role_run_list_clear_spec.rb +90 -0
- data/spec/unit/knife/role_run_list_remove_spec.rb +98 -0
- data/spec/unit/knife/role_run_list_replace_spec.rb +101 -0
- data/spec/unit/knife/role_run_list_set_spec.rb +92 -0
- data/spec/unit/knife/ssh_spec.rb +66 -66
- data/spec/unit/knife/ssl_check_spec.rb +27 -27
- data/spec/unit/knife/ssl_fetch_spec.rb +45 -12
- data/spec/unit/knife/status_spec.rb +5 -5
- data/spec/unit/knife/tag_create_spec.rb +5 -5
- data/spec/unit/knife/tag_delete_spec.rb +6 -6
- data/spec/unit/knife/tag_list_spec.rb +4 -4
- data/spec/unit/knife/user_create_spec.rb +18 -18
- data/spec/unit/knife/user_delete_spec.rb +4 -4
- data/spec/unit/knife/user_edit_spec.rb +7 -7
- data/spec/unit/knife/user_list_spec.rb +2 -2
- data/spec/unit/knife/user_reregister_spec.rb +10 -10
- data/spec/unit/knife/user_show_spec.rb +5 -5
- data/spec/unit/knife_spec.rb +36 -36
- data/spec/unit/lwrp_spec.rb +63 -39
- data/spec/unit/mash_spec.rb +6 -6
- data/spec/unit/mixin/checksum_spec.rb +2 -2
- data/spec/unit/mixin/command_spec.rb +13 -13
- data/spec/unit/mixin/convert_to_class_name_spec.rb +6 -6
- data/spec/unit/mixin/deep_merge_spec.rb +49 -49
- data/spec/unit/mixin/deprecation_spec.rb +5 -5
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +14 -14
- data/spec/unit/mixin/homebrew_user_spec.rb +3 -3
- data/spec/unit/mixin/params_validate_spec.rb +71 -71
- data/spec/unit/mixin/path_sanity_spec.rb +14 -14
- data/spec/unit/mixin/securable_spec.rb +177 -177
- data/spec/unit/mixin/shell_out_spec.rb +56 -27
- data/spec/unit/mixin/template_spec.rb +31 -31
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +5 -5
- data/spec/unit/mixin/xml_escape_spec.rb +7 -7
- data/spec/unit/monkey_patches/uri_spec.rb +1 -1
- data/spec/unit/monologger_spec.rb +3 -3
- data/spec/unit/node/attribute_spec.rb +185 -136
- data/spec/unit/node/immutable_collections_spec.rb +22 -22
- data/spec/unit/node_spec.rb +210 -179
- data/spec/unit/org_spec.rb +196 -0
- data/spec/unit/platform/query_helpers_spec.rb +5 -5
- data/spec/unit/platform_spec.rb +46 -46
- data/spec/unit/policy_builder/expand_node_object_spec.rb +17 -18
- data/spec/unit/policy_builder/policyfile_spec.rb +159 -71
- data/spec/unit/provider/directory_spec.rb +5 -5
- data/spec/unit/provider/dsc_script_spec.rb +6 -6
- data/spec/unit/provider/env_spec.rb +27 -14
- data/spec/unit/provider/execute_spec.rb +139 -68
- data/spec/unit/provider/file/content_spec.rb +8 -8
- data/spec/unit/provider/git_spec.rb +10 -5
- data/spec/unit/provider/group/dscl_spec.rb +8 -11
- data/spec/unit/provider/group_spec.rb +13 -13
- data/spec/unit/provider/ifconfig/aix_spec.rb +3 -2
- data/spec/unit/provider/ifconfig/debian_spec.rb +19 -19
- data/spec/unit/provider/ifconfig_spec.rb +2 -2
- data/spec/unit/provider/mdadm_spec.rb +2 -2
- data/spec/unit/provider/mount/aix_spec.rb +5 -5
- data/spec/unit/provider/mount/mount_spec.rb +22 -22
- data/spec/unit/provider/mount/solaris_spec.rb +20 -20
- data/spec/unit/provider/package/aix_spec.rb +23 -22
- data/spec/unit/provider/package/apt_spec.rb +23 -4
- data/spec/unit/provider/package/dpkg_spec.rb +14 -15
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +1 -1
- data/spec/unit/provider/package/freebsd/port_spec.rb +1 -1
- data/spec/unit/provider/package/ips_spec.rb +1 -2
- data/spec/unit/provider/package/macports_spec.rb +14 -14
- data/spec/unit/provider/package/openbsd_spec.rb +66 -0
- data/spec/unit/provider/package/pacman_spec.rb +15 -14
- data/spec/unit/provider/package/portage_spec.rb +11 -11
- data/spec/unit/provider/package/rpm_spec.rb +132 -84
- data/spec/unit/provider/package/rubygems_spec.rb +54 -25
- data/spec/unit/provider/package/solaris_spec.rb +22 -25
- data/spec/unit/provider/package/yum_spec.rb +237 -36
- data/spec/unit/provider/package/zypper_spec.rb +9 -12
- data/spec/unit/provider/package_spec.rb +276 -2
- data/spec/unit/provider/package_spec.rbe +0 -0
- data/spec/unit/provider/remote_directory_spec.rb +25 -25
- data/spec/unit/provider/remote_file/ftp_spec.rb +3 -3
- data/spec/unit/provider/route_spec.rb +3 -3
- data/spec/unit/provider/script_spec.rb +61 -43
- data/spec/unit/provider/service/aix_service_spec.rb +5 -5
- data/spec/unit/provider/service/arch_service_spec.rb +5 -5
- data/spec/unit/provider/service/debian_service_spec.rb +8 -8
- data/spec/unit/provider/service/freebsd_service_spec.rb +16 -2
- data/spec/unit/provider/service/gentoo_service_spec.rb +8 -8
- data/spec/unit/provider/service/init_service_spec.rb +5 -5
- data/spec/unit/provider/service/insserv_service_spec.rb +2 -2
- data/spec/unit/provider/service/invokercd_service_spec.rb +5 -5
- data/spec/unit/provider/service/macosx_spec.rb +7 -7
- data/spec/unit/provider/service/openbsd_service_spec.rb +543 -0
- data/spec/unit/provider/service/redhat_spec.rb +4 -4
- data/spec/unit/provider/service/simple_service_spec.rb +2 -2
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +14 -14
- data/spec/unit/provider/service/systemd_service_spec.rb +15 -7
- data/spec/unit/provider/service/upstart_service_spec.rb +4 -4
- data/spec/unit/provider/service/windows_spec.rb +119 -25
- data/spec/unit/provider/service_spec.rb +1 -1
- data/spec/unit/provider/user/dscl_spec.rb +38 -30
- data/spec/unit/provider/user_spec.rb +1 -1
- data/spec/unit/provider_resolver_spec.rb +7 -7
- data/spec/unit/provider_spec.rb +23 -23
- data/spec/unit/recipe_spec.rb +194 -83
- data/spec/unit/registry_helper_spec.rb +143 -143
- data/spec/unit/resource/chef_gem_spec.rb +117 -3
- data/spec/unit/resource/conditional_action_not_nothing_spec.rb +2 -2
- data/spec/unit/resource/conditional_spec.rb +56 -15
- data/spec/unit/resource/deploy_spec.rb +2 -2
- data/spec/unit/resource/dsc_script_spec.rb +32 -0
- data/spec/unit/resource/execute_spec.rb +4 -0
- data/spec/unit/resource/file/verification_spec.rb +111 -0
- data/spec/unit/resource/file_spec.rb +14 -0
- data/spec/unit/resource/openbsd_package_spec.rb +49 -0
- data/spec/unit/resource/remote_file_spec.rb +12 -12
- data/spec/unit/resource/resource_notification_spec.rb +18 -18
- data/spec/unit/resource/rpm_package_spec.rb +12 -0
- data/spec/unit/resource/scm_spec.rb +4 -4
- data/spec/unit/resource/script_spec.rb +3 -5
- data/spec/unit/resource/subversion_spec.rb +1 -1
- data/spec/unit/resource_builder_spec.rb +1 -0
- data/spec/unit/resource_collection/resource_list_spec.rb +2 -2
- data/spec/unit/resource_collection/resource_set_spec.rb +3 -3
- data/spec/unit/resource_collection/stepable_iterator_spec.rb +24 -24
- data/spec/unit/resource_collection_spec.rb +52 -52
- data/spec/unit/resource_definition_spec.rb +1 -1
- data/spec/unit/resource_reporter_spec.rb +118 -118
- data/spec/unit/resource_spec.rb +131 -125
- data/spec/unit/rest/auth_credentials_spec.rb +73 -73
- data/spec/unit/rest_spec.rb +12 -12
- data/spec/unit/role_spec.rb +85 -84
- data/spec/unit/run_context/cookbook_compiler_spec.rb +18 -18
- data/spec/unit/run_context_spec.rb +39 -68
- data/spec/unit/run_list/run_list_expansion_spec.rb +21 -21
- data/spec/unit/run_list/run_list_item_spec.rb +28 -28
- data/spec/unit/run_list/versioned_recipe_list_spec.rb +14 -14
- data/spec/unit/run_list_spec.rb +55 -55
- data/spec/unit/run_lock_spec.rb +14 -14
- data/spec/unit/run_status_spec.rb +24 -24
- data/spec/unit/scan_access_control_spec.rb +23 -23
- data/spec/unit/search/query_spec.rb +54 -66
- data/spec/unit/shell/model_wrapper_spec.rb +13 -13
- data/spec/unit/shell/shell_ext_spec.rb +32 -32
- data/spec/unit/shell/shell_session_spec.rb +24 -24
- data/spec/unit/shell_out_spec.rb +4 -4
- data/spec/unit/shell_spec.rb +27 -27
- data/spec/unit/user_spec.rb +50 -50
- data/spec/unit/util/backup_spec.rb +32 -32
- data/spec/unit/util/diff_spec.rb +31 -31
- data/spec/unit/util/dsc/configuration_generator_spec.rb +38 -16
- data/spec/unit/util/dsc/lcm_output_parser_spec.rb +21 -26
- data/spec/unit/util/dsc/local_configuration_manager_spec.rb +10 -10
- data/spec/unit/util/editor_spec.rb +10 -10
- data/spec/unit/util/file_edit_spec.rb +10 -10
- data/spec/unit/util/path_helper_spec.rb +38 -46
- data/spec/unit/util/powershell/cmdlet_spec.rb +9 -9
- data/spec/unit/util/selinux_spec.rb +30 -30
- data/spec/unit/util/threaded_job_queue_spec.rb +6 -6
- data/spec/unit/version/platform_spec.rb +5 -5
- data/spec/unit/version_class_spec.rb +15 -15
- data/spec/unit/version_constraint/platform_spec.rb +7 -7
- data/spec/unit/version_constraint_spec.rb +43 -43
- data/spec/unit/windows_service_spec.rb +15 -15
- data/spec/unit/workstation_config_loader_spec.rb +2 -2
- data/tasks/rspec.rb +16 -18
- metadata +126 -49
- data/bin/shef +0 -35
- data/lib/chef/application/agent.rb +0 -18
- data/lib/chef/monkey_patches/fileutils.rb +0 -65
- data/lib/chef/monkey_patches/numeric.rb +0 -15
- data/lib/chef/monkey_patches/object.rb +0 -9
- data/lib/chef/monkey_patches/pathname.rb +0 -32
- data/lib/chef/monkey_patches/regexp.rb +0 -34
- data/lib/chef/monkey_patches/securerandom.rb +0 -44
- data/lib/chef/monkey_patches/string.rb +0 -49
- data/lib/chef/monkey_patches/tempfile.rb +0 -64
- data/lib/chef/monkey_patches/uri.rb +0 -70
@@ -20,24 +20,19 @@ require 'chef/util/dsc/lcm_output_parser'
|
|
20
20
|
|
21
21
|
describe Chef::Util::DSC::LocalConfigurationManager::Parser do
|
22
22
|
context 'empty input parameter' do
|
23
|
-
it '
|
24
|
-
|
23
|
+
it 'raises an exception when there are no valid lines' do
|
24
|
+
str = <<-EOF
|
25
|
+
|
26
|
+
EOF
|
27
|
+
expect {Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str)}.to raise_error(Chef::Exceptions::LCMParser)
|
25
28
|
end
|
26
29
|
|
27
|
-
it '
|
28
|
-
Chef::Util::DSC::LocalConfigurationManager::Parser::parse(
|
30
|
+
it 'raises an exception for a nil input' do
|
31
|
+
expect {Chef::Util::DSC::LocalConfigurationManager::Parser::parse(nil)}.to raise_error(Chef::Exceptions::LCMParser)
|
29
32
|
end
|
30
33
|
end
|
31
34
|
|
32
35
|
context 'correctly formatted output from lcm' do
|
33
|
-
it 'returns an empty array for a log with no resources' do
|
34
|
-
str = <<EOF
|
35
|
-
logtype: [machinename]: LCM: [ Start Set ]
|
36
|
-
logtype: [machinename]: LCM: [ End Set ]
|
37
|
-
EOF
|
38
|
-
Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str).should be_empty
|
39
|
-
end
|
40
|
-
|
41
36
|
it 'returns a single resource when only 1 logged with the correct name' do
|
42
37
|
str = <<EOF
|
43
38
|
logtype: [machinename]: LCM: [ Start Set ]
|
@@ -46,8 +41,8 @@ logtype: [machinename]: LCM: [ End Resource ] [name]
|
|
46
41
|
logtype: [machinename]: LCM: [ End Set ]
|
47
42
|
EOF
|
48
43
|
resources = Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str)
|
49
|
-
resources.length.
|
50
|
-
resources[0].name.
|
44
|
+
expect(resources.length).to eq(1)
|
45
|
+
expect(resources[0].name).to eq('[name]')
|
51
46
|
end
|
52
47
|
|
53
48
|
it 'identifies when a resource changes the state of the system' do
|
@@ -60,7 +55,7 @@ logtype: [machinename]: LCM: [ End Resource ] [name]
|
|
60
55
|
logtype: [machinename]: LCM: [ End Set ]
|
61
56
|
EOF
|
62
57
|
resources = Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str)
|
63
|
-
resources[0].changes_state
|
58
|
+
expect(resources[0].changes_state?).to be_truthy
|
64
59
|
end
|
65
60
|
|
66
61
|
it 'preserves the log provided for how the system changed the state' do
|
@@ -74,7 +69,7 @@ logtype: [machinename]: LCM: [ End Resource ] [name]
|
|
74
69
|
logtype: [machinename]: LCM: [ End Set ]
|
75
70
|
EOF
|
76
71
|
resources = Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str)
|
77
|
-
resources[0].change_log.
|
72
|
+
expect(resources[0].change_log).to match_array(["[name]","[message]","[name]"])
|
78
73
|
end
|
79
74
|
|
80
75
|
it 'should return false for changes_state?' do
|
@@ -86,7 +81,7 @@ logtype: [machinename]: LCM: [ End Resource ] [name]
|
|
86
81
|
logtype: [machinename]: LCM: [ End Set ]
|
87
82
|
EOF
|
88
83
|
resources = Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str)
|
89
|
-
resources[0].changes_state
|
84
|
+
expect(resources[0].changes_state?).to be_falsey
|
90
85
|
end
|
91
86
|
|
92
87
|
it 'should return an empty array for change_log if changes_state? is false' do
|
@@ -98,7 +93,7 @@ logtype: [machinename]: LCM: [ End Resource ] [name]
|
|
98
93
|
logtype: [machinename]: LCM: [ End Set ]
|
99
94
|
EOF
|
100
95
|
resources = Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str)
|
101
|
-
resources[0].change_log.
|
96
|
+
expect(resources[0].change_log).to be_empty
|
102
97
|
end
|
103
98
|
end
|
104
99
|
|
@@ -120,8 +115,8 @@ logtype: [machinename]: LCM: [ End Set ]
|
|
120
115
|
EOF
|
121
116
|
|
122
117
|
resources = Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str)
|
123
|
-
resources[0].changes_state
|
124
|
-
resources[1].changes_state
|
118
|
+
expect(resources[0].changes_state?).to be_falsey
|
119
|
+
expect(resources[1].changes_state?).to be_truthy
|
125
120
|
end
|
126
121
|
|
127
122
|
it 'should allow missing a [End Resource] when its the first one and still find all the resource' do
|
@@ -141,8 +136,8 @@ logtype: [machinename]: LCM: [ End Set ]
|
|
141
136
|
EOF
|
142
137
|
|
143
138
|
resources = Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str)
|
144
|
-
resources[0].changes_state
|
145
|
-
resources[1].changes_state
|
139
|
+
expect(resources[0].changes_state?).to be_falsey
|
140
|
+
expect(resources[1].changes_state?).to be_truthy
|
146
141
|
end
|
147
142
|
|
148
143
|
it 'should allow missing set and end resource and assume an unconverged resource in this case' do
|
@@ -160,10 +155,10 @@ logtype: [machinename]: LCM: [ End Resource ]
|
|
160
155
|
logtype: [machinename]: LCM: [ End Set ]
|
161
156
|
EOF
|
162
157
|
resources = Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str)
|
163
|
-
resources[0].changes_state
|
164
|
-
resources[0].name.
|
165
|
-
resources[1].changes_state
|
166
|
-
resources[1].name.
|
158
|
+
expect(resources[0].changes_state?).to be_truthy
|
159
|
+
expect(resources[0].name).to eql('[name]')
|
160
|
+
expect(resources[1].changes_state?).to be_truthy
|
161
|
+
expect(resources[1].name).to eql('[name2]')
|
167
162
|
end
|
168
163
|
end
|
169
164
|
end
|
@@ -65,7 +65,7 @@ EOH
|
|
65
65
|
let(:lcm_cmdlet_success) { true }
|
66
66
|
|
67
67
|
it 'should successfully return resource information for normally formatted output when cmdlet the cmdlet succeeds' do
|
68
|
-
test_configuration_result = lcm.test_configuration('config')
|
68
|
+
test_configuration_result = lcm.test_configuration('config', {})
|
69
69
|
expect(test_configuration_result.class).to be(Array)
|
70
70
|
expect(test_configuration_result.length).to be > 0
|
71
71
|
expect(Chef::Log).not_to receive(:warn)
|
@@ -78,14 +78,14 @@ EOH
|
|
78
78
|
let(:lcm_cmdlet_success) { false }
|
79
79
|
|
80
80
|
it 'returns true when passed to #whatif_not_supported?' do
|
81
|
-
expect(lcm.send(:whatif_not_supported?, no_whatif_lcm_output)).to
|
81
|
+
expect(lcm.send(:whatif_not_supported?, no_whatif_lcm_output)).to be_truthy
|
82
82
|
end
|
83
83
|
|
84
84
|
it 'should should return a (possibly empty) array of ResourceInfo instances' do
|
85
|
-
expect(Chef::Log).to receive(:warn)
|
85
|
+
expect(Chef::Log).to receive(:warn).at_least(:once)
|
86
86
|
expect(lcm).to receive(:whatif_not_supported?).and_call_original
|
87
87
|
test_configuration_result = nil
|
88
|
-
expect {test_configuration_result = lcm.test_configuration('config')}.not_to raise_error
|
88
|
+
expect {test_configuration_result = lcm.test_configuration('config', {})}.not_to raise_error
|
89
89
|
expect(test_configuration_result.class).to be(Array)
|
90
90
|
end
|
91
91
|
end
|
@@ -96,16 +96,16 @@ EOH
|
|
96
96
|
let(:lcm_cmdlet_success) { false }
|
97
97
|
|
98
98
|
it 'should log a warning if the message is formatted as expected when a resource import failure occurs' do
|
99
|
-
expect(Chef::Log).to receive(:warn)
|
99
|
+
expect(Chef::Log).to receive(:warn).at_least(:once)
|
100
100
|
expect(lcm).to receive(:dsc_module_import_failure?).and_call_original
|
101
101
|
test_configuration_result = nil
|
102
|
-
expect {test_configuration_result = lcm.test_configuration('config')}.not_to raise_error
|
102
|
+
expect {test_configuration_result = lcm.test_configuration('config', {})}.not_to raise_error
|
103
103
|
end
|
104
104
|
|
105
105
|
it 'should return a (possibly empty) array of ResourceInfo instances' do
|
106
|
-
expect(Chef::Log).to receive(:warn)
|
106
|
+
expect(Chef::Log).to receive(:warn).at_least(:once)
|
107
107
|
test_configuration_result = nil
|
108
|
-
expect {test_configuration_result = lcm.test_configuration('config')}.not_to raise_error
|
108
|
+
expect {test_configuration_result = lcm.test_configuration('config', {})}.not_to raise_error
|
109
109
|
expect(test_configuration_result.class).to be(Array)
|
110
110
|
end
|
111
111
|
end
|
@@ -116,9 +116,9 @@ EOH
|
|
116
116
|
let(:lcm_cmdlet_success) { false }
|
117
117
|
|
118
118
|
it 'should log a warning' do
|
119
|
-
expect(Chef::Log).to receive(:warn)
|
119
|
+
expect(Chef::Log).to receive(:warn).at_least(:once)
|
120
120
|
expect(lcm).to receive(:dsc_module_import_failure?).and_call_original
|
121
|
-
expect {lcm.test_configuration('config')}.not_to raise_error
|
121
|
+
expect {lcm.test_configuration('config', {})}.not_to raise_error
|
122
122
|
end
|
123
123
|
end
|
124
124
|
end
|
@@ -22,7 +22,7 @@ describe Chef::Util::Editor do
|
|
22
22
|
context 'when there is no match' do
|
23
23
|
subject(:execute) { editor.append_line_after('missing', 'new') }
|
24
24
|
|
25
|
-
it('returns the number of added lines') {
|
25
|
+
it('returns the number of added lines') { is_expected.to eq(0) }
|
26
26
|
it 'does not add any lines' do
|
27
27
|
expect { execute }.to_not change { editor.lines }
|
28
28
|
end
|
@@ -31,7 +31,7 @@ describe Chef::Util::Editor do
|
|
31
31
|
context 'when there is a match' do
|
32
32
|
subject(:execute) { editor.append_line_after('two', 'new') }
|
33
33
|
|
34
|
-
it('returns the number of added lines') {
|
34
|
+
it('returns the number of added lines') { is_expected.to eq(2) }
|
35
35
|
it 'adds a line after each match' do
|
36
36
|
execute
|
37
37
|
expect(editor.lines).to be == ['one', 'two', 'new', 'two', 'new', 'three']
|
@@ -48,7 +48,7 @@ describe Chef::Util::Editor do
|
|
48
48
|
context 'when there is no match' do
|
49
49
|
subject(:execute) { editor.append_line_if_missing('missing', 'new') }
|
50
50
|
|
51
|
-
it('returns the number of added lines') {
|
51
|
+
it('returns the number of added lines') { is_expected.to eq(1) }
|
52
52
|
it 'adds a line to the end' do
|
53
53
|
execute
|
54
54
|
expect(editor.lines).to be == ['one', 'two', 'two', 'three', 'new']
|
@@ -58,7 +58,7 @@ describe Chef::Util::Editor do
|
|
58
58
|
context 'when there is a match' do
|
59
59
|
subject(:execute) { editor.append_line_if_missing('one', 'new') }
|
60
60
|
|
61
|
-
it('returns the number of added lines') {
|
61
|
+
it('returns the number of added lines') { is_expected.to eq(0) }
|
62
62
|
it 'does not add any lines' do
|
63
63
|
expect { execute }.to_not change { editor.lines }
|
64
64
|
end
|
@@ -74,7 +74,7 @@ describe Chef::Util::Editor do
|
|
74
74
|
context 'when there is no match' do
|
75
75
|
subject(:execute) { editor.remove_lines('missing') }
|
76
76
|
|
77
|
-
it('returns the number of removed lines') {
|
77
|
+
it('returns the number of removed lines') { is_expected.to eq(0) }
|
78
78
|
it 'does not remove any lines' do
|
79
79
|
expect { execute }.to_not change { editor.lines }
|
80
80
|
end
|
@@ -83,7 +83,7 @@ describe Chef::Util::Editor do
|
|
83
83
|
context 'when there is a match' do
|
84
84
|
subject(:execute) { editor.remove_lines('two') }
|
85
85
|
|
86
|
-
it('returns the number of removed lines') {
|
86
|
+
it('returns the number of removed lines') { is_expected.to eq(2) }
|
87
87
|
it 'removes the matching lines' do
|
88
88
|
execute
|
89
89
|
expect(editor.lines).to be == ['one', 'three']
|
@@ -100,7 +100,7 @@ describe Chef::Util::Editor do
|
|
100
100
|
context 'when there is no match' do
|
101
101
|
subject(:execute) { editor.replace('missing', 'new') }
|
102
102
|
|
103
|
-
it('returns the number of changed lines') {
|
103
|
+
it('returns the number of changed lines') { is_expected.to eq(0) }
|
104
104
|
it 'does not change any lines' do
|
105
105
|
expect { execute }.to_not change { editor.lines }
|
106
106
|
end
|
@@ -109,7 +109,7 @@ describe Chef::Util::Editor do
|
|
109
109
|
context 'when there is a match' do
|
110
110
|
subject(:execute) { editor.replace('two', 'new') }
|
111
111
|
|
112
|
-
it('returns the number of changed lines') {
|
112
|
+
it('returns the number of changed lines') { is_expected.to eq(2) }
|
113
113
|
it 'replaces the matching portions' do
|
114
114
|
execute
|
115
115
|
expect(editor.lines).to be == ['one', 'new', 'new', 'three']
|
@@ -127,7 +127,7 @@ describe Chef::Util::Editor do
|
|
127
127
|
context 'when there is no match' do
|
128
128
|
subject(:execute) { editor.replace_lines('missing', 'new') }
|
129
129
|
|
130
|
-
it('returns the number of changed lines') {
|
130
|
+
it('returns the number of changed lines') { is_expected.to eq(0) }
|
131
131
|
it 'does not change any lines' do
|
132
132
|
expect { execute }.to_not change { editor.lines }
|
133
133
|
end
|
@@ -136,7 +136,7 @@ describe Chef::Util::Editor do
|
|
136
136
|
context 'when there is a match' do
|
137
137
|
subject(:execute) { editor.replace_lines('two', 'new') }
|
138
138
|
|
139
|
-
it('returns the number of replaced lines') {
|
139
|
+
it('returns the number of replaced lines') { is_expected.to eq(2) }
|
140
140
|
it 'replaces the matching line' do
|
141
141
|
execute
|
142
142
|
expect(editor.lines).to be == ['one', 'new', 'new', 'three']
|
@@ -135,21 +135,21 @@ twice
|
|
135
135
|
describe "search_file_replace" do
|
136
136
|
it "should accept regex passed in as a string (not Regexp object) and replace the match if there is one" do
|
137
137
|
fedit.search_file_replace("localhost", "replacement")
|
138
|
-
fedit.unwritten_changes
|
138
|
+
expect(fedit.unwritten_changes?).to be_truthy
|
139
139
|
fedit.write_file
|
140
140
|
expect(edited_file_contents).to eq(localhost_replaced)
|
141
141
|
end
|
142
142
|
|
143
143
|
it "should accept regex passed in as a Regexp object and replace the match if there is one" do
|
144
144
|
fedit.search_file_replace(/localhost/, "replacement")
|
145
|
-
fedit.unwritten_changes
|
145
|
+
expect(fedit.unwritten_changes?).to be_truthy
|
146
146
|
fedit.write_file
|
147
147
|
expect(edited_file_contents).to eq(localhost_replaced)
|
148
148
|
end
|
149
149
|
|
150
150
|
it "should do nothing if there isn't a match" do
|
151
151
|
fedit.search_file_replace(/pattern/, "replacement")
|
152
|
-
fedit.unwritten_changes
|
152
|
+
expect(fedit.unwritten_changes?).to be_falsey
|
153
153
|
fedit.write_file
|
154
154
|
expect(edited_file_contents).to eq(starting_content)
|
155
155
|
end
|
@@ -158,7 +158,7 @@ twice
|
|
158
158
|
describe "search_file_replace_line" do
|
159
159
|
it "should search for match and replace the whole line" do
|
160
160
|
fedit.search_file_replace_line(/localhost/, "replacement line")
|
161
|
-
fedit.unwritten_changes
|
161
|
+
expect(fedit.unwritten_changes?).to be_truthy
|
162
162
|
fedit.write_file
|
163
163
|
expect(edited_file_contents).to eq(localhost_line_replaced)
|
164
164
|
end
|
@@ -167,7 +167,7 @@ twice
|
|
167
167
|
describe "search_file_delete" do
|
168
168
|
it "should search for match and delete the match" do
|
169
169
|
fedit.search_file_delete(/localhost/)
|
170
|
-
fedit.unwritten_changes
|
170
|
+
expect(fedit.unwritten_changes?).to be_truthy
|
171
171
|
fedit.write_file
|
172
172
|
expect(edited_file_contents).to eq(localhost_deleted)
|
173
173
|
end
|
@@ -176,7 +176,7 @@ twice
|
|
176
176
|
describe "search_file_delete_line" do
|
177
177
|
it "should search for match and delete the matching line" do
|
178
178
|
fedit.search_file_delete_line(/localhost/)
|
179
|
-
fedit.unwritten_changes
|
179
|
+
expect(fedit.unwritten_changes?).to be_truthy
|
180
180
|
fedit.write_file
|
181
181
|
expect(edited_file_contents).to eq(localhost_line_deleted)
|
182
182
|
end
|
@@ -185,7 +185,7 @@ twice
|
|
185
185
|
describe "insert_line_after_match" do
|
186
186
|
it "should search for match and insert the given line after the matching line" do
|
187
187
|
fedit.insert_line_after_match(/localhost/, "new line inserted")
|
188
|
-
fedit.unwritten_changes
|
188
|
+
expect(fedit.unwritten_changes?).to be_truthy
|
189
189
|
fedit.write_file
|
190
190
|
expect(edited_file_contents).to eq(append_after_all_localhost)
|
191
191
|
end
|
@@ -194,14 +194,14 @@ twice
|
|
194
194
|
describe "insert_line_if_no_match" do
|
195
195
|
it "should search for match and insert the given line if no line match" do
|
196
196
|
fedit.insert_line_if_no_match(/pattern/, "new line inserted")
|
197
|
-
fedit.unwritten_changes
|
197
|
+
expect(fedit.unwritten_changes?).to be_truthy
|
198
198
|
fedit.write_file
|
199
199
|
expect(edited_file_contents).to eq(append_after_content)
|
200
200
|
end
|
201
201
|
|
202
202
|
it "should do nothing if there is a match" do
|
203
203
|
fedit.insert_line_if_no_match(/localhost/, "replacement")
|
204
|
-
fedit.unwritten_changes
|
204
|
+
expect(fedit.unwritten_changes?).to be_falsey
|
205
205
|
fedit.write_file
|
206
206
|
expect(edited_file_contents).to eq(starting_content)
|
207
207
|
end
|
@@ -218,7 +218,7 @@ twice
|
|
218
218
|
it "should return true if a file got edited" do
|
219
219
|
fedit.insert_line_if_no_match(/pattern/, "new line inserted")
|
220
220
|
fedit.write_file
|
221
|
-
expect(fedit.file_edited?).to
|
221
|
+
expect(fedit.file_edited?).to be_truthy
|
222
222
|
end
|
223
223
|
end
|
224
224
|
end
|
@@ -25,81 +25,81 @@ describe Chef::Util::PathHelper do
|
|
25
25
|
[ false, true ].each do |is_windows|
|
26
26
|
context "on #{is_windows ? "windows" : "unix"}" do
|
27
27
|
before(:each) do
|
28
|
-
Chef::Platform.
|
28
|
+
allow(Chef::Platform).to receive(:windows?).and_return(is_windows)
|
29
29
|
end
|
30
30
|
|
31
31
|
describe "join" do
|
32
32
|
it "joins components when some end with separators" do
|
33
33
|
expected = PathHelper.cleanpath("/foo/bar/baz")
|
34
34
|
expected = "C:#{expected}" if is_windows
|
35
|
-
PathHelper.join(is_windows ? 'C:\\foo\\' : "/foo/", "bar", "baz").
|
35
|
+
expect(PathHelper.join(is_windows ? 'C:\\foo\\' : "/foo/", "bar", "baz")).to eq(expected)
|
36
36
|
end
|
37
37
|
|
38
38
|
it "joins components when some end and start with separators" do
|
39
39
|
expected = PathHelper.cleanpath("/foo/bar/baz")
|
40
40
|
expected = "C:#{expected}" if is_windows
|
41
|
-
PathHelper.join(is_windows ? 'C:\\foo\\' : "/foo/", "bar/", "/baz").
|
41
|
+
expect(PathHelper.join(is_windows ? 'C:\\foo\\' : "/foo/", "bar/", "/baz")).to eq(expected)
|
42
42
|
end
|
43
43
|
|
44
44
|
it "joins components that don't end in separators" do
|
45
45
|
expected = PathHelper.cleanpath("/foo/bar/baz")
|
46
46
|
expected = "C:#{expected}" if is_windows
|
47
|
-
PathHelper.join(is_windows ? 'C:\\foo' : "/foo", "bar", "baz").
|
47
|
+
expect(PathHelper.join(is_windows ? 'C:\\foo' : "/foo", "bar", "baz")).to eq(expected)
|
48
48
|
end
|
49
49
|
|
50
50
|
it "joins starting with '' resolve to absolute paths" do
|
51
|
-
PathHelper.join('', 'a', 'b').
|
51
|
+
expect(PathHelper.join('', 'a', 'b')).to eq("#{PathHelper.path_separator}a#{PathHelper.path_separator}b")
|
52
52
|
end
|
53
53
|
|
54
54
|
it "joins ending with '' add a / to the end" do
|
55
|
-
PathHelper.join('a', 'b', '').
|
55
|
+
expect(PathHelper.join('a', 'b', '')).to eq("a#{PathHelper.path_separator}b#{PathHelper.path_separator}")
|
56
56
|
end
|
57
57
|
|
58
58
|
if is_windows
|
59
59
|
it "joins components on Windows when some end with unix separators" do
|
60
|
-
PathHelper.join('C:\\foo/', "bar", "baz").
|
60
|
+
expect(PathHelper.join('C:\\foo/', "bar", "baz")).to eq('C:\\foo\\bar\\baz')
|
61
61
|
end
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
65
|
if is_windows
|
66
66
|
it "path_separator is \\" do
|
67
|
-
PathHelper.path_separator.
|
67
|
+
expect(PathHelper.path_separator).to eq('\\')
|
68
68
|
end
|
69
69
|
else
|
70
70
|
it "path_separator is /" do
|
71
|
-
PathHelper.path_separator.
|
71
|
+
expect(PathHelper.path_separator).to eq('/')
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
75
75
|
if is_windows
|
76
76
|
it "cleanpath changes slashes into backslashes and leaves backslashes alone" do
|
77
|
-
PathHelper.cleanpath('/a/b\\c/d/').
|
77
|
+
expect(PathHelper.cleanpath('/a/b\\c/d/')).to eq('\\a\\b\\c\\d')
|
78
78
|
end
|
79
79
|
it "cleanpath does not remove leading double backslash" do
|
80
|
-
PathHelper.cleanpath('\\\\a/b\\c/d/').
|
80
|
+
expect(PathHelper.cleanpath('\\\\a/b\\c/d/')).to eq('\\\\a\\b\\c\\d')
|
81
81
|
end
|
82
82
|
else
|
83
83
|
it "cleanpath removes extra slashes alone" do
|
84
|
-
PathHelper.cleanpath('/a///b/c/d/').
|
84
|
+
expect(PathHelper.cleanpath('/a///b/c/d/')).to eq('/a/b/c/d')
|
85
85
|
end
|
86
86
|
end
|
87
87
|
|
88
88
|
describe "dirname" do
|
89
89
|
it "dirname('abc') is '.'" do
|
90
|
-
PathHelper.dirname('abc').
|
90
|
+
expect(PathHelper.dirname('abc')).to eq('.')
|
91
91
|
end
|
92
92
|
it "dirname('/') is '/'" do
|
93
|
-
PathHelper.dirname(PathHelper.path_separator).
|
93
|
+
expect(PathHelper.dirname(PathHelper.path_separator)).to eq(PathHelper.path_separator)
|
94
94
|
end
|
95
95
|
it "dirname('a/b/c') is 'a/b'" do
|
96
|
-
PathHelper.dirname(PathHelper.join('a', 'b', 'c')).
|
96
|
+
expect(PathHelper.dirname(PathHelper.join('a', 'b', 'c'))).to eq(PathHelper.join('a', 'b'))
|
97
97
|
end
|
98
98
|
it "dirname('a/b/c/') is 'a/b'" do
|
99
|
-
PathHelper.dirname(PathHelper.join('a', 'b', 'c', '')).
|
99
|
+
expect(PathHelper.dirname(PathHelper.join('a', 'b', 'c', ''))).to eq(PathHelper.join('a', 'b'))
|
100
100
|
end
|
101
101
|
it "dirname('/a/b/c') is '/a/b'" do
|
102
|
-
PathHelper.dirname(PathHelper.join('', 'a', 'b', 'c')).
|
102
|
+
expect(PathHelper.dirname(PathHelper.join('', 'a', 'b', 'c'))).to eq(PathHelper.join('', 'a', 'b'))
|
103
103
|
end
|
104
104
|
end
|
105
105
|
end
|
@@ -109,9 +109,9 @@ describe Chef::Util::PathHelper do
|
|
109
109
|
context "on windows" do
|
110
110
|
before(:each) do
|
111
111
|
# pass by default
|
112
|
-
Chef::Platform.
|
113
|
-
PathHelper.
|
114
|
-
PathHelper.
|
112
|
+
allow(Chef::Platform).to receive(:windows?).and_return(true)
|
113
|
+
allow(PathHelper).to receive(:printable?).and_return(true)
|
114
|
+
allow(PathHelper).to receive(:windows_max_length_exceeded?).and_return(false)
|
115
115
|
end
|
116
116
|
|
117
117
|
it "returns the path if the path passes the tests" do
|
@@ -123,14 +123,14 @@ describe Chef::Util::PathHelper do
|
|
123
123
|
end
|
124
124
|
|
125
125
|
it "raises an error if the path has invalid characters" do
|
126
|
-
PathHelper.
|
126
|
+
allow(PathHelper).to receive(:printable?).and_return(false)
|
127
127
|
expect { PathHelper.validate_path("Newline!\n") }.to raise_error(Chef::Exceptions::ValidationFailed)
|
128
128
|
end
|
129
129
|
|
130
130
|
it "Adds the \\\\?\\ prefix if the path exceeds MAX_LENGTH and does not have it" do
|
131
131
|
long_path = "C:\\" + "a" * 250 + "\\" + "b" * 250
|
132
132
|
prefixed_long_path = "\\\\?\\" + long_path
|
133
|
-
PathHelper.
|
133
|
+
allow(PathHelper).to receive(:windows_max_length_exceeded?).and_return(true)
|
134
134
|
expect(PathHelper.validate_path(long_path)).to eql(prefixed_long_path)
|
135
135
|
end
|
136
136
|
end
|
@@ -138,38 +138,38 @@ describe Chef::Util::PathHelper do
|
|
138
138
|
|
139
139
|
describe "windows_max_length_exceeded?" do
|
140
140
|
it "returns true if the path is too long (259 + NUL) for the API" do
|
141
|
-
expect(PathHelper.windows_max_length_exceeded?("C:\\" + "a" * 250 + "\\" + "b" * 6)).to
|
141
|
+
expect(PathHelper.windows_max_length_exceeded?("C:\\" + "a" * 250 + "\\" + "b" * 6)).to be_truthy
|
142
142
|
end
|
143
143
|
|
144
144
|
it "returns false if the path is not too long (259 + NUL) for the standard API" do
|
145
|
-
expect(PathHelper.windows_max_length_exceeded?("C:\\" + "a" * 250 + "\\" + "b" * 5)).to
|
145
|
+
expect(PathHelper.windows_max_length_exceeded?("C:\\" + "a" * 250 + "\\" + "b" * 5)).to be_falsey
|
146
146
|
end
|
147
147
|
|
148
148
|
it "returns false if the path is over 259 characters but uses the \\\\?\\ prefix" do
|
149
|
-
expect(PathHelper.windows_max_length_exceeded?("\\\\?\\C:\\" + "a" * 250 + "\\" + "b" * 250)).to
|
149
|
+
expect(PathHelper.windows_max_length_exceeded?("\\\\?\\C:\\" + "a" * 250 + "\\" + "b" * 250)).to be_falsey
|
150
150
|
end
|
151
151
|
end
|
152
152
|
|
153
153
|
describe "printable?" do
|
154
154
|
it "returns true if the string contains no non-printable characters" do
|
155
|
-
expect(PathHelper.printable?("C:\\Program Files (x86)\\Microsoft Office\\Files.lst")).to
|
155
|
+
expect(PathHelper.printable?("C:\\Program Files (x86)\\Microsoft Office\\Files.lst")).to be_truthy
|
156
156
|
end
|
157
157
|
|
158
158
|
it "returns true when given 'abc' in unicode" do
|
159
|
-
expect(PathHelper.printable?("\u0061\u0062\u0063")).to
|
159
|
+
expect(PathHelper.printable?("\u0061\u0062\u0063")).to be_truthy
|
160
160
|
end
|
161
161
|
|
162
162
|
it "returns true when given japanese unicode" do
|
163
|
-
expect(PathHelper.printable?("\uff86\uff87\uff88")).to
|
163
|
+
expect(PathHelper.printable?("\uff86\uff87\uff88")).to be_truthy
|
164
164
|
end
|
165
165
|
|
166
166
|
it "returns false if the string contains a non-printable character" do
|
167
|
-
expect(PathHelper.printable?("\my files\work\notes.txt")).to
|
167
|
+
expect(PathHelper.printable?("\my files\work\notes.txt")).to be_falsey
|
168
168
|
end
|
169
169
|
|
170
170
|
# This isn't necessarily a requirement, but here to be explicit about functionality.
|
171
171
|
it "returns false if the string contains a newline or tab" do
|
172
|
-
expect(PathHelper.printable?("\tThere's no way,\n\t *no* way,\n\t that you came from my loins.\n")).to
|
172
|
+
expect(PathHelper.printable?("\tThere's no way,\n\t *no* way,\n\t that you came from my loins.\n")).to be_falsey
|
173
173
|
end
|
174
174
|
end
|
175
175
|
|
@@ -189,31 +189,23 @@ describe Chef::Util::PathHelper do
|
|
189
189
|
end
|
190
190
|
|
191
191
|
context "not on windows", :unix_only do
|
192
|
-
|
193
|
-
|
194
|
-
expect(PathHelper.canonical_path("/etc//apache.d/sites-enabled/../sites-available/default")).to eq("/etc/apache.d/sites-available/default")
|
195
|
-
end
|
196
|
-
end
|
197
|
-
|
198
|
-
context "ruby is less than 1.9", :ruby_18_only do
|
199
|
-
it "returns a canonical path" do
|
200
|
-
expect { PathHelper.canonical_path("/etc//apache.d/sites-enabled/../sites-available/default") }.to raise_error(NotImplementedError)
|
201
|
-
end
|
192
|
+
it "returns a canonical path" do
|
193
|
+
expect(PathHelper.canonical_path("/etc//apache.d/sites-enabled/../sites-available/default")).to eq("/etc/apache.d/sites-available/default")
|
202
194
|
end
|
203
195
|
end
|
204
196
|
end
|
205
197
|
|
206
198
|
describe "paths_eql?" do
|
207
199
|
it "returns true if the paths are the same" do
|
208
|
-
PathHelper.
|
209
|
-
PathHelper.
|
210
|
-
expect(PathHelper.paths_eql?("bandit", "../bandit/bandit")).to
|
200
|
+
allow(PathHelper).to receive(:canonical_path).with("bandit").and_return("c:/bandit/bandit")
|
201
|
+
allow(PathHelper).to receive(:canonical_path).with("../bandit/bandit").and_return("c:/bandit/bandit")
|
202
|
+
expect(PathHelper.paths_eql?("bandit", "../bandit/bandit")).to be_truthy
|
211
203
|
end
|
212
204
|
|
213
205
|
it "returns false if the paths are different" do
|
214
|
-
PathHelper.
|
215
|
-
PathHelper.
|
216
|
-
expect(PathHelper.paths_eql?("bandit", "../bandit/bandit")).to
|
206
|
+
allow(PathHelper).to receive(:canonical_path).with("bandit").and_return("c:/Bo/Bandit")
|
207
|
+
allow(PathHelper).to receive(:canonical_path).with("../bandit/bandit").and_return("c:/bandit/bandit")
|
208
|
+
expect(PathHelper.paths_eql?("bandit", "../bandit/bandit")).to be_falsey
|
217
209
|
end
|
218
210
|
end
|
219
211
|
|