chef 14.14.29-universal-mingw32 → 14.15.6-universal-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/README.md +18 -7
- data/Rakefile +7 -4
- data/chef.gemspec +1 -1
- data/lib/chef/knife/ssh.rb +6 -0
- data/lib/chef/provider/ifconfig.rb +14 -5
- data/lib/chef/provider/windows_task.rb +9 -5
- data/lib/chef/resource/kernel_module.rb +61 -0
- data/lib/chef/resource/windows_task.rb +4 -0
- data/lib/chef/version.rb +1 -1
- data/spec/data/cookbooks/openldap/metadata.rb +2 -2
- data/spec/data/metadata/quick_start/metadata.rb +2 -7
- data/spec/functional/audit/runner_spec.rb +1 -1
- data/spec/functional/dsl/reboot_pending_spec.rb +7 -25
- data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -4
- data/spec/functional/file_content_management/deploy_strategies_spec.rb +21 -21
- data/spec/functional/knife/exec_spec.rb +1 -1
- data/spec/functional/knife/ssh_spec.rb +3 -3
- data/spec/functional/mixin/user_context_spec.rb +3 -1
- data/spec/functional/rebooter_spec.rb +1 -1
- data/spec/functional/resource/aix_service_spec.rb +1 -1
- data/spec/functional/resource/aixinit_service_spec.rb +1 -1
- data/spec/functional/resource/apt_package_spec.rb +1 -1
- data/spec/functional/resource/chocolatey_package_spec.rb +2 -2
- data/spec/functional/resource/cookbook_file_spec.rb +1 -3
- data/spec/functional/resource/cron_spec.rb +4 -3
- data/spec/functional/resource/dpkg_package_spec.rb +4 -4
- data/spec/functional/resource/dsc_resource_spec.rb +2 -1
- data/spec/functional/resource/dsc_script_spec.rb +16 -20
- data/spec/functional/resource/execute_spec.rb +2 -2
- data/spec/functional/resource/git_spec.rb +6 -6
- data/spec/functional/resource/group_spec.rb +8 -6
- data/spec/functional/resource/ifconfig_spec.rb +3 -5
- data/spec/functional/resource/link_spec.rb +2 -2
- data/spec/functional/resource/mount_spec.rb +3 -7
- data/spec/functional/resource/powershell_script_spec.rb +9 -8
- data/spec/functional/resource/reboot_spec.rb +1 -1
- data/spec/functional/resource/remote_file_spec.rb +2 -2
- data/spec/functional/resource/template_spec.rb +1 -1
- data/spec/functional/resource/user/windows_spec.rb +2 -2
- data/spec/functional/resource/windows_certificate_spec.rb +3 -3
- data/spec/functional/resource/windows_service_spec.rb +3 -3
- data/spec/functional/resource/windows_task_spec.rb +51 -0
- data/spec/functional/run_lock_spec.rb +10 -3
- data/spec/functional/shell_spec.rb +1 -1
- data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/security_spec.rb +12 -7
- data/spec/functional/win32/service_manager_spec.rb +1 -1
- data/spec/functional/win32/version_info_spec.rb +4 -4
- data/spec/integration/client/client_spec.rb +114 -132
- data/spec/integration/client/exit_code_spec.rb +8 -8
- data/spec/integration/client/ipv6_spec.rb +5 -5
- data/spec/integration/knife/chef_fs_data_store_spec.rb +38 -38
- data/spec/integration/knife/chef_repo_path_spec.rb +42 -42
- data/spec/integration/knife/chef_repository_file_system_spec.rb +9 -9
- data/spec/integration/knife/chefignore_spec.rb +13 -13
- data/spec/integration/knife/client_bulk_delete_spec.rb +8 -8
- data/spec/integration/knife/client_create_spec.rb +1 -1
- data/spec/integration/knife/client_delete_spec.rb +4 -4
- data/spec/integration/knife/client_key_delete_spec.rb +1 -1
- data/spec/integration/knife/client_key_list_spec.rb +1 -1
- data/spec/integration/knife/client_list_spec.rb +1 -1
- data/spec/integration/knife/common_options_spec.rb +1 -1
- data/spec/integration/knife/config_get_spec.rb +1 -1
- data/spec/integration/knife/config_list_profiles_spec.rb +2 -1
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +3 -3
- data/spec/integration/knife/cookbook_bulk_delete_spec.rb +3 -3
- data/spec/integration/knife/cookbook_download_spec.rb +4 -4
- data/spec/integration/knife/cookbook_list_spec.rb +2 -2
- data/spec/integration/knife/cookbook_show_spec.rb +3 -3
- data/spec/integration/knife/cookbook_upload_spec.rb +6 -6
- data/spec/integration/knife/data_bag_delete_spec.rb +4 -4
- data/spec/integration/knife/data_bag_from_file_spec.rb +7 -7
- data/spec/integration/knife/data_bag_list_spec.rb +1 -1
- data/spec/integration/knife/delete_spec.rb +37 -37
- data/spec/integration/knife/deps_spec.rb +23 -23
- data/spec/integration/knife/diff_spec.rb +23 -23
- data/spec/integration/knife/download_spec.rb +79 -79
- data/spec/integration/knife/environment_compare_spec.rb +3 -3
- data/spec/integration/knife/environment_from_file_spec.rb +6 -6
- data/spec/integration/knife/environment_list_spec.rb +1 -1
- data/spec/integration/knife/environment_show_spec.rb +4 -4
- data/spec/integration/knife/list_spec.rb +25 -25
- data/spec/integration/knife/node_bulk_delete_spec.rb +2 -2
- data/spec/integration/knife/node_delete_spec.rb +2 -2
- data/spec/integration/knife/node_environment_set_spec.rb +1 -1
- data/spec/integration/knife/node_from_file_spec.rb +2 -2
- data/spec/integration/knife/node_list_spec.rb +1 -1
- data/spec/integration/knife/raw_spec.rb +12 -12
- data/spec/integration/knife/redirection_spec.rb +1 -1
- data/spec/integration/knife/role_bulk_delete_spec.rb +2 -2
- data/spec/integration/knife/role_delete_spec.rb +2 -2
- data/spec/integration/knife/role_from_file_spec.rb +5 -5
- data/spec/integration/knife/role_list_spec.rb +1 -1
- data/spec/integration/knife/role_show_spec.rb +1 -1
- data/spec/integration/knife/show_spec.rb +10 -10
- data/spec/integration/knife/upload_spec.rb +85 -85
- data/spec/integration/recipes/accumulator_spec.rb +4 -4
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +6 -6
- data/spec/integration/recipes/lwrp_spec.rb +6 -6
- data/spec/integration/recipes/notifies_spec.rb +45 -45
- data/spec/integration/recipes/notifying_block_spec.rb +4 -4
- data/spec/integration/recipes/provider_choice.rb +1 -2
- data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
- data/spec/integration/recipes/remote_directory.rb +2 -2
- data/spec/integration/recipes/resource_action_spec.rb +1 -1
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +19 -19
- data/spec/integration/solo/solo_spec.rb +29 -29
- data/spec/scripts/ssl-serve.rb +1 -1
- data/spec/spec_helper.rb +11 -14
- data/spec/stress/win32/security_spec.rb +1 -1
- data/spec/support/lib/chef/resource/zen_follower.rb +1 -1
- data/spec/support/lib/chef/resource/zen_master.rb +1 -1
- data/spec/support/mock/platform.rb +2 -2
- data/spec/support/platform_helpers.rb +12 -3
- data/spec/support/platforms/win32/spec_service.rb +6 -10
- data/spec/support/shared/context/client.rb +2 -1
- data/spec/support/shared/functional/execute_resource.rb +4 -4
- data/spec/support/shared/functional/file_resource.rb +1 -3
- data/spec/support/shared/functional/http.rb +20 -44
- data/spec/support/shared/functional/securable_resource.rb +4 -8
- data/spec/support/shared/functional/win32_service.rb +1 -1
- data/spec/support/shared/functional/windows_script.rb +2 -1
- data/spec/support/shared/integration/app_server_support.rb +3 -4
- data/spec/support/shared/integration/integration_helper.rb +1 -0
- data/spec/support/shared/integration/knife_support.rb +5 -5
- data/spec/support/shared/unit/application_dot_d.rb +10 -4
- data/spec/support/shared/unit/file_system_support.rb +3 -2
- data/spec/support/shared/unit/platform_introspector.rb +12 -12
- data/spec/support/shared/unit/provider/file.rb +1 -1
- data/spec/support/shared/unit/script_resource.rb +1 -1
- data/spec/support/shared/unit/windows_script_resource.rb +1 -1
- data/spec/tiny_server.rb +1 -1
- data/spec/unit/api_client/registration_spec.rb +1 -1
- data/spec/unit/api_client_spec.rb +5 -5
- data/spec/unit/api_client_v1_spec.rb +6 -6
- data/spec/unit/application/client_spec.rb +8 -8
- data/spec/unit/application/exit_code_spec.rb +3 -2
- data/spec/unit/application/knife_spec.rb +1 -2
- data/spec/unit/audit/audit_event_proxy_spec.rb +14 -7
- data/spec/unit/audit/audit_reporter_spec.rb +20 -11
- data/spec/unit/audit/control_group_data_spec.rb +17 -12
- data/spec/unit/chef_fs/config_spec.rb +3 -3
- data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +1 -1
- data/spec/unit/chef_fs/parallelizer.rb +1 -1
- data/spec/unit/client_spec.rb +3 -3
- data/spec/unit/config_fetcher_spec.rb +1 -1
- data/spec/unit/cookbook/metadata_spec.rb +13 -13
- data/spec/unit/cookbook/synchronizer_spec.rb +6 -6
- data/spec/unit/cookbook_loader_spec.rb +17 -17
- data/spec/unit/cookbook_manifest_spec.rb +9 -9
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +1 -2
- data/spec/unit/cookbook_uploader_spec.rb +2 -2
- data/spec/unit/cookbook_version_file_specificity_spec.rb +9 -9
- data/spec/unit/cookbook_version_spec.rb +2 -2
- data/spec/unit/data_bag_item_spec.rb +7 -7
- data/spec/unit/data_bag_spec.rb +1 -1
- data/spec/unit/data_collector_spec.rb +23 -23
- data/spec/unit/decorator_spec.rb +2 -2
- data/spec/unit/deprecated_spec.rb +2 -2
- data/spec/unit/dsl/data_query_spec.rb +3 -2
- data/spec/unit/dsl/declare_resource_spec.rb +1 -1
- data/spec/unit/dsl/platform_introspection_spec.rb +2 -2
- data/spec/unit/encrypted_data_bag_item/check_encrypted_spec.rb +2 -1
- data/spec/unit/encrypted_data_bag_item_spec.rb +2 -1
- data/spec/unit/environment_spec.rb +13 -13
- data/spec/unit/event_dispatch/dsl_spec.rb +1 -1
- data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +3 -3
- data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +2 -2
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +3 -3
- data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +1 -1
- data/spec/unit/http/authenticator_spec.rb +4 -3
- data/spec/unit/http/json_input_spec.rb +1 -1
- data/spec/unit/http/socketless_chef_zero_client_spec.rb +15 -15
- data/spec/unit/key_spec.rb +8 -8
- data/spec/unit/knife/bootstrap_spec.rb +14 -10
- data/spec/unit/knife/client_bulk_delete_spec.rb +4 -4
- data/spec/unit/knife/configure_client_spec.rb +1 -1
- data/spec/unit/knife/configure_spec.rb +1 -1
- data/spec/unit/knife/cookbook_bulk_delete_spec.rb +1 -1
- data/spec/unit/knife/cookbook_delete_spec.rb +2 -2
- data/spec/unit/knife/cookbook_download_spec.rb +2 -2
- data/spec/unit/knife/cookbook_metadata_spec.rb +4 -4
- data/spec/unit/knife/cookbook_upload_spec.rb +7 -5
- data/spec/unit/knife/core/bootstrap_context_spec.rb +1 -1
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +2 -2
- data/spec/unit/knife/core/gem_glob_loader_spec.rb +4 -4
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +4 -2
- data/spec/unit/knife/core/node_editor_spec.rb +12 -12
- data/spec/unit/knife/core/ui_spec.rb +11 -11
- data/spec/unit/knife/data_bag_from_file_spec.rb +2 -1
- data/spec/unit/knife/data_bag_show_spec.rb +2 -1
- data/spec/unit/knife/key_create_spec.rb +1 -1
- data/spec/unit/knife/key_delete_spec.rb +3 -3
- data/spec/unit/knife/key_edit_spec.rb +4 -4
- data/spec/unit/knife/key_list_spec.rb +1 -1
- data/spec/unit/knife/key_show_spec.rb +3 -3
- data/spec/unit/knife/node_bulk_delete_spec.rb +3 -3
- data/spec/unit/knife/node_delete_spec.rb +2 -2
- data/spec/unit/knife/node_edit_spec.rb +1 -1
- data/spec/unit/knife/node_environment_set_spec.rb +1 -1
- data/spec/unit/knife/node_from_file_spec.rb +1 -1
- data/spec/unit/knife/node_policy_set_spec.rb +1 -1
- data/spec/unit/knife/node_run_list_add_spec.rb +1 -1
- data/spec/unit/knife/node_run_list_remove_spec.rb +1 -1
- data/spec/unit/knife/node_run_list_set_spec.rb +1 -1
- data/spec/unit/knife/node_show_spec.rb +1 -1
- data/spec/unit/knife/raw_spec.rb +2 -2
- data/spec/unit/knife/role_bulk_delete_spec.rb +2 -2
- data/spec/unit/knife/role_create_spec.rb +1 -1
- data/spec/unit/knife/role_delete_spec.rb +1 -1
- data/spec/unit/knife/role_edit_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_add_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_set_spec.rb +1 -1
- data/spec/unit/knife/role_from_file_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_add_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_clear_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_remove_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_replace_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_set_spec.rb +1 -1
- data/spec/unit/knife/ssh_spec.rb +27 -17
- data/spec/unit/knife/ssl_check_spec.rb +4 -4
- data/spec/unit/knife/ssl_fetch_spec.rb +5 -5
- data/spec/unit/knife/status_spec.rb +3 -2
- data/spec/unit/knife/supermarket_download_spec.rb +4 -4
- data/spec/unit/knife/supermarket_install_spec.rb +5 -4
- data/spec/unit/knife/supermarket_share_spec.rb +1 -1
- data/spec/unit/knife_spec.rb +34 -33
- data/spec/unit/lwrp_spec.rb +19 -19
- data/spec/unit/mixin/homebrew_user_spec.rb +1 -1
- data/spec/unit/mixin/params_validate_spec.rb +10 -10
- data/spec/unit/mixin/properties_spec.rb +4 -4
- data/spec/unit/mixin/shell_out_spec.rb +27 -27
- data/spec/unit/mixin/template_spec.rb +4 -8
- data/spec/unit/mixin/unformatter_spec.rb +1 -2
- data/spec/unit/mixin/user_context_spec.rb +1 -2
- data/spec/unit/mixin/which.rb +2 -0
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +3 -3
- data/spec/unit/node/attribute_spec.rb +79 -79
- data/spec/unit/node/immutable_collections_spec.rb +50 -50
- data/spec/unit/node_spec.rb +16 -16
- data/spec/unit/org_spec.rb +3 -3
- data/spec/unit/policy_builder/policyfile_spec.rb +2 -2
- data/spec/unit/property/state_spec.rb +26 -25
- data/spec/unit/property/validation_spec.rb +14 -13
- data/spec/unit/property_spec.rb +10 -9
- data/spec/unit/provider/apt_update_spec.rb +6 -6
- data/spec/unit/provider/cron_spec.rb +15 -15
- data/spec/unit/provider/dsc_resource_spec.rb +6 -3
- data/spec/unit/provider/dsc_script_spec.rb +1 -1
- data/spec/unit/provider/execute_spec.rb +5 -5
- data/spec/unit/provider/git_spec.rb +39 -39
- data/spec/unit/provider/group/dscl_spec.rb +3 -3
- data/spec/unit/provider/group/groupadd_spec.rb +1 -1
- data/spec/unit/provider/group_spec.rb +2 -3
- data/spec/unit/provider/ifconfig/aix_spec.rb +1 -1
- data/spec/unit/provider/ifconfig/debian_spec.rb +2 -2
- data/spec/unit/provider/ifconfig_spec.rb +45 -16
- data/spec/unit/provider/launchd_spec.rb +23 -15
- data/spec/unit/provider/link_spec.rb +22 -11
- data/spec/unit/provider/mount/aix_spec.rb +6 -6
- data/spec/unit/provider/mount/mount_spec.rb +31 -31
- data/spec/unit/provider/mount/solaris_spec.rb +11 -11
- data/spec/unit/provider/ohai_spec.rb +1 -1
- data/spec/unit/provider/osx_profile_spec.rb +5 -7
- data/spec/unit/provider/package/apt_spec.rb +5 -5
- data/spec/unit/provider/package/bff_spec.rb +1 -1
- data/spec/unit/provider/package/cab_spec.rb +1 -1
- data/spec/unit/provider/package/chocolatey_spec.rb +8 -8
- data/spec/unit/provider/package/freebsd/pkg_spec.rb +1 -1
- data/spec/unit/provider/package/ips_spec.rb +6 -6
- data/spec/unit/provider/package/macports_spec.rb +1 -1
- data/spec/unit/provider/package/msu_spec.rb +1 -1
- data/spec/unit/provider/package/openbsd_spec.rb +15 -11
- data/spec/unit/provider/package/pacman_spec.rb +3 -3
- data/spec/unit/provider/package/paludis_spec.rb +4 -4
- data/spec/unit/provider/package/portage_spec.rb +1 -1
- data/spec/unit/provider/package/powershell_spec.rb +1 -1
- data/spec/unit/provider/package/smartos_spec.rb +3 -3
- data/spec/unit/provider/package/solaris_spec.rb +1 -1
- data/spec/unit/provider/package/windows/exe_spec.rb +9 -9
- data/spec/unit/provider/package/windows/msi_spec.rb +7 -7
- data/spec/unit/provider/package/windows_spec.rb +2 -1
- data/spec/unit/provider/package/yum/yum_cache_spec.rb +1 -1
- data/spec/unit/provider/package/zypper_spec.rb +4 -4
- data/spec/unit/provider/package_spec.rb +1 -1
- data/spec/unit/provider/powershell_script_spec.rb +7 -7
- data/spec/unit/provider/registry_key_spec.rb +1 -1
- data/spec/unit/provider/remote_directory_spec.rb +6 -6
- data/spec/unit/provider/route_spec.rb +11 -11
- data/spec/unit/provider/service/arch_service_spec.rb +13 -13
- data/spec/unit/provider/service/debian_service_spec.rb +2 -1
- data/spec/unit/provider/service/freebsd_service_spec.rb +28 -24
- data/spec/unit/provider/service/gentoo_service_spec.rb +2 -2
- data/spec/unit/provider/service/init_service_spec.rb +11 -11
- data/spec/unit/provider/service/invokercd_service_spec.rb +11 -11
- data/spec/unit/provider/service/macosx_spec.rb +5 -5
- data/spec/unit/provider/service/openbsd_service_spec.rb +15 -11
- data/spec/unit/provider/service/simple_service_spec.rb +7 -7
- data/spec/unit/provider/service/upstart_service_spec.rb +14 -14
- data/spec/unit/provider/service/windows_spec.rb +53 -35
- data/spec/unit/provider/subversion_spec.rb +8 -4
- data/spec/unit/provider/systemd_unit_spec.rb +142 -142
- data/spec/unit/provider/template/content_spec.rb +29 -29
- data/spec/unit/provider/windows_task_spec.rb +1 -1
- data/spec/unit/provider_resolver_spec.rb +75 -75
- data/spec/unit/provider_spec.rb +2 -4
- data/spec/unit/recipe_spec.rb +4 -4
- data/spec/unit/resource/batch_spec.rb +1 -1
- data/spec/unit/resource/chef_gem_spec.rb +1 -1
- data/spec/unit/resource/chocolatey_config_spec.rb +1 -1
- data/spec/unit/resource/chocolatey_source_spec.rb +1 -1
- data/spec/unit/resource/directory_spec.rb +1 -1
- data/spec/unit/resource/dnf_package_spec.rb +1 -1
- data/spec/unit/resource/dsc_resource_spec.rb +1 -1
- data/spec/unit/resource/file/verification_spec.rb +1 -2
- data/spec/unit/resource/file_spec.rb +1 -1
- data/spec/unit/resource/group_spec.rb +1 -1
- data/spec/unit/resource/link_spec.rb +1 -1
- data/spec/unit/resource/osx_profile_spec.rb +2 -1
- data/spec/unit/resource/powershell_script_spec.rb +12 -7
- data/spec/unit/resource/registry_key_spec.rb +3 -3
- data/spec/unit/resource/rhsm_subscription_spec.rb +1 -1
- data/spec/unit/resource/service_spec.rb +1 -1
- data/spec/unit/resource/template_spec.rb +2 -2
- data/spec/unit/resource/windows_env_spec.rb +1 -1
- data/spec/unit/resource/windows_service_spec.rb +5 -5
- data/spec/unit/resource/windows_task_spec.rb +6 -2
- data/spec/unit/resource/yum_package_spec.rb +1 -1
- data/spec/unit/resource_collection/resource_list_spec.rb +1 -1
- data/spec/unit/resource_collection/resource_set_spec.rb +7 -7
- data/spec/unit/resource_collection/stepable_iterator_spec.rb +2 -2
- data/spec/unit/resource_collection_spec.rb +4 -4
- data/spec/unit/resource_definition_spec.rb +2 -2
- data/spec/unit/resource_inspector_spec.rb +1 -1
- data/spec/unit/resource_reporter_spec.rb +4 -4
- data/spec/unit/resource_spec.rb +22 -22
- data/spec/unit/role_spec.rb +3 -3
- data/spec/unit/run_context/cookbook_compiler_spec.rb +23 -23
- data/spec/unit/run_list/run_list_expansion_spec.rb +9 -6
- data/spec/unit/run_list_spec.rb +1 -1
- data/spec/unit/runner_spec.rb +3 -3
- data/spec/unit/search/query_spec.rb +3 -2
- data/spec/unit/shell/model_wrapper_spec.rb +1 -1
- data/spec/unit/shell/shell_session_spec.rb +8 -11
- data/spec/unit/shell_spec.rb +1 -2
- data/spec/unit/user_spec.rb +4 -4
- data/spec/unit/user_v1_spec.rb +3 -3
- data/spec/unit/util/backup_spec.rb +1 -1
- data/spec/unit/util/dsc/lcm_output_parser_spec.rb +13 -13
- data/spec/unit/util/dsc/local_configuration_manager_spec.rb +3 -3
- data/spec/unit/util/editor_spec.rb +1 -1
- data/spec/unit/util/powershell/ps_credential_spec.rb +3 -2
- data/spec/unit/util/threaded_job_queue_spec.rb +2 -2
- data/spec/unit/version_class_spec.rb +4 -4
- data/spec/unit/win32/registry_spec.rb +5 -5
- data/spec/unit/win32/security_spec.rb +2 -1
- data/tasks/announce.rb +4 -11
- metadata +10 -6
- data/tasks/maintainers.rb +0 -211
- data/tasks/templates/prerelease.md.erb +0 -35
@@ -96,8 +96,8 @@ describe Chef::CookbookUploader do
|
|
96
96
|
|
97
97
|
upload_headers = {
|
98
98
|
"content-type" => "application/x-binary",
|
99
|
-
"content-md5"
|
100
|
-
"accept"
|
99
|
+
"content-md5" => an_instance_of(String),
|
100
|
+
"accept" => "application/json",
|
101
101
|
}
|
102
102
|
|
103
103
|
expect(http_client).to receive(:put)
|
@@ -371,7 +371,7 @@ describe Chef::CookbookVersion, "file specificity" do
|
|
371
371
|
expect(manifest_records.size).to eq(2)
|
372
372
|
|
373
373
|
checksums = manifest_records.map { |manifest_record| manifest_record[:checksum] }
|
374
|
-
expect(checksums.sort).to eq(
|
374
|
+
expect(checksums.sort).to eq(%w{csum-host-1 csum-host-2})
|
375
375
|
end
|
376
376
|
|
377
377
|
it "should return a directory of manifest records based on priority preference: platform & full version" do
|
@@ -385,7 +385,7 @@ describe Chef::CookbookVersion, "file specificity" do
|
|
385
385
|
expect(manifest_records.size).to eq(2)
|
386
386
|
|
387
387
|
checksums = manifest_records.map { |manifest_record| manifest_record[:checksum] }
|
388
|
-
expect(checksums.sort).to eq(
|
388
|
+
expect(checksums.sort).to eq(%w{csum-platver-full-1 csum-platver-full-2})
|
389
389
|
end
|
390
390
|
|
391
391
|
it "should return a directory of manifest records based on priority preference: platform & partial version" do
|
@@ -399,7 +399,7 @@ describe Chef::CookbookVersion, "file specificity" do
|
|
399
399
|
expect(manifest_records.size).to eq(2)
|
400
400
|
|
401
401
|
checksums = manifest_records.map { |manifest_record| manifest_record[:checksum] }
|
402
|
-
expect(checksums.sort).to eq(
|
402
|
+
expect(checksums.sort).to eq(%w{csum-platver-partial-1 csum-platver-partial-2})
|
403
403
|
end
|
404
404
|
|
405
405
|
it "should return a directory of manifest records based on priority preference: platform only" do
|
@@ -413,7 +413,7 @@ describe Chef::CookbookVersion, "file specificity" do
|
|
413
413
|
expect(manifest_records.size).to eq(2)
|
414
414
|
|
415
415
|
checksums = manifest_records.map { |manifest_record| manifest_record[:checksum] }
|
416
|
-
expect(checksums.sort).to eq(
|
416
|
+
expect(checksums.sort).to eq(%w{csum-plat-1 csum-plat-2})
|
417
417
|
end
|
418
418
|
|
419
419
|
it "should return a directory of manifest records based on priority preference: default" do
|
@@ -427,7 +427,7 @@ describe Chef::CookbookVersion, "file specificity" do
|
|
427
427
|
expect(manifest_records.size).to eq(2)
|
428
428
|
|
429
429
|
checksums = manifest_records.map { |manifest_record| manifest_record[:checksum] }
|
430
|
-
expect(checksums.sort).to eq(
|
430
|
+
expect(checksums.sort).to eq(%w{csum-default-1 csum-default-2})
|
431
431
|
end
|
432
432
|
|
433
433
|
it "should return a manifest record based on priority preference: platform & full version - platform_version variant 1" do
|
@@ -441,7 +441,7 @@ describe Chef::CookbookVersion, "file specificity" do
|
|
441
441
|
expect(manifest_records.size).to eq(2)
|
442
442
|
|
443
443
|
checksums = manifest_records.map { |manifest_record| manifest_record[:checksum] }
|
444
|
-
expect(checksums.sort).to eq(
|
444
|
+
expect(checksums.sort).to eq(%w{csum2-platver-full-1 csum2-platver-full-2})
|
445
445
|
end
|
446
446
|
|
447
447
|
it "should return a manifest record based on priority preference: platform & partial version - platform_version variant 1" do
|
@@ -455,7 +455,7 @@ describe Chef::CookbookVersion, "file specificity" do
|
|
455
455
|
expect(manifest_records.size).to eq(2)
|
456
456
|
|
457
457
|
checksums = manifest_records.map { |manifest_record| manifest_record[:checksum] }
|
458
|
-
expect(checksums.sort).to eq(
|
458
|
+
expect(checksums.sort).to eq(%w{csum2-platver-partial-1 csum2-platver-partial-2})
|
459
459
|
end
|
460
460
|
|
461
461
|
it "should return a manifest record based on priority preference: platform & full version - platform_version variant 2" do
|
@@ -469,7 +469,7 @@ describe Chef::CookbookVersion, "file specificity" do
|
|
469
469
|
expect(manifest_records.size).to eq(2)
|
470
470
|
|
471
471
|
checksums = manifest_records.map { |manifest_record| manifest_record[:checksum] }
|
472
|
-
expect(checksums.sort).to eq(
|
472
|
+
expect(checksums.sort).to eq(%w{csum3-platver-full-1 csum3-platver-full-2})
|
473
473
|
end
|
474
474
|
|
475
475
|
it "should return a manifest record based on priority preference: platform & full version - platform_version variant 3" do
|
@@ -483,7 +483,7 @@ describe Chef::CookbookVersion, "file specificity" do
|
|
483
483
|
expect(manifest_records.size).to eq(2)
|
484
484
|
|
485
485
|
checksums = manifest_records.map { |manifest_record| manifest_record[:checksum] }
|
486
|
-
expect(checksums.sort).to eq(
|
486
|
+
expect(checksums.sort).to eq(%w{csum4-platver-full-1 csum4-platver-full-2})
|
487
487
|
end
|
488
488
|
end
|
489
489
|
|
@@ -50,7 +50,7 @@ describe Chef::CookbookVersion do
|
|
50
50
|
let(:cookbook_paths_by_type) do
|
51
51
|
{
|
52
52
|
# Dunno if the paths here are representitive of what is set by CookbookLoader...
|
53
|
-
all_files:
|
53
|
+
all_files: Dir[File.join(cookbook_root, "**", "**")],
|
54
54
|
}
|
55
55
|
end
|
56
56
|
|
@@ -117,7 +117,7 @@ describe Chef::CookbookVersion do
|
|
117
117
|
|
118
118
|
let(:cookbook_paths_by_type) do
|
119
119
|
{
|
120
|
-
all_files:
|
120
|
+
all_files: Dir[File.join(cookbook_root, "**", "**")],
|
121
121
|
}
|
122
122
|
end
|
123
123
|
|
@@ -43,7 +43,7 @@ describe Chef::DataBagItem do
|
|
43
43
|
end
|
44
44
|
|
45
45
|
it "should throw an ArgumentError if you feed it anything but a string" do
|
46
|
-
expect { data_bag_item.data_bag
|
46
|
+
expect { data_bag_item.data_bag({}) }.to raise_error(ArgumentError)
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
@@ -148,12 +148,12 @@ describe Chef::DataBagItem do
|
|
148
148
|
end
|
149
149
|
|
150
150
|
it "implements all the methods of Hash" do
|
151
|
-
methods =
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
151
|
+
methods = %i{rehash to_hash [] fetch []= store default
|
152
|
+
default= default_proc index size length
|
153
|
+
empty? each_value each_key each_pair each keys values
|
154
|
+
values_at delete delete_if reject! clear
|
155
|
+
invert update replace merge! merge has_key? has_value?
|
156
|
+
key? value?}
|
157
157
|
methods.each do |m|
|
158
158
|
expect(data_bag_item).to respond_to(m)
|
159
159
|
end
|
data/spec/unit/data_bag_spec.rb
CHANGED
@@ -46,7 +46,7 @@ describe Chef::DataBag do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
it "should throw an ArgumentError if you feed it anything but a string" do
|
49
|
-
expect { @data_bag.name
|
49
|
+
expect { @data_bag.name({}) }.to raise_error(ArgumentError)
|
50
50
|
end
|
51
51
|
|
52
52
|
[ ".", "-", "_", "1"].each do |char|
|
@@ -401,11 +401,11 @@ describe Chef::DataCollector::Reporter do
|
|
401
401
|
|
402
402
|
let(:run_status) do
|
403
403
|
instance_double("Chef::RunStatus",
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
404
|
+
run_id: "run_id",
|
405
|
+
node: node,
|
406
|
+
start_time: Time.new,
|
407
|
+
end_time: Time.new,
|
408
|
+
exception: exception)
|
409
409
|
end
|
410
410
|
|
411
411
|
before do
|
@@ -727,29 +727,29 @@ describe Chef::DataCollector::Reporter do
|
|
727
727
|
Errno::ECONNREFUSED, EOFError, Net::HTTPBadResponse,
|
728
728
|
Net::HTTPHeaderSyntaxError, Net::ProtocolError, OpenSSL::SSL::SSLError,
|
729
729
|
Errno::EHOSTDOWN ].each do |exception_class|
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
730
|
+
context "when the block raises a #{exception_class} exception" do
|
731
|
+
it "disables the reporter" do
|
732
|
+
expect(reporter).to receive(:disable_data_collector_reporter)
|
733
|
+
reporter.send(:disable_reporter_on_error) { raise exception_class.new("bummer") }
|
734
|
+
end
|
735
735
|
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
|
736
|
+
context "when raise-on-failure is enabled" do
|
737
|
+
it "logs an error and raises" do
|
738
|
+
Chef::Config[:data_collector][:raise_on_failure] = true
|
739
|
+
expect(Chef::Log).to receive(:error)
|
740
|
+
expect { reporter.send(:disable_reporter_on_error) { raise exception_class.new("bummer") } }.to raise_error(exception_class)
|
741
|
+
end
|
741
742
|
end
|
742
|
-
end
|
743
743
|
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
744
|
+
context "when raise-on-failure is disabled" do
|
745
|
+
it "logs an info message and does not raise an exception" do
|
746
|
+
Chef::Config[:data_collector][:raise_on_failure] = false
|
747
|
+
expect(Chef::Log).to receive(:info)
|
748
|
+
expect { reporter.send(:disable_reporter_on_error) { raise exception_class.new("bummer") } }.not_to raise_error
|
749
|
+
end
|
749
750
|
end
|
750
751
|
end
|
751
752
|
end
|
752
|
-
end
|
753
753
|
end
|
754
754
|
|
755
755
|
describe "#validate_data_collector_server_url!" do
|
@@ -824,7 +824,7 @@ describe Chef::DataCollector::Reporter do
|
|
824
824
|
resource_a = Chef::Resource::Service.new("processed service")
|
825
825
|
resource_b = Chef::Resource::Service.new("unprocessed service")
|
826
826
|
|
827
|
-
resource_a.action =
|
827
|
+
resource_a.action = %i{enable start}
|
828
828
|
resource_b.action = :start
|
829
829
|
|
830
830
|
run_context = Chef::RunContext.new(Chef::Node.new, Chef::CookbookCollection.new, nil)
|
data/spec/unit/decorator_spec.rb
CHANGED
@@ -28,11 +28,11 @@ def impersonates_a(klass)
|
|
28
28
|
end
|
29
29
|
|
30
30
|
it "#kind_of?(#{klass}) is true" do
|
31
|
-
expect(decorator.
|
31
|
+
expect(decorator.is_a?(klass)).to be true
|
32
32
|
end
|
33
33
|
|
34
34
|
it "#kind_of?(Chef::Decorator) is true" do
|
35
|
-
expect(decorator.
|
35
|
+
expect(decorator.is_a?(Chef::Decorator)).to be true
|
36
36
|
end
|
37
37
|
|
38
38
|
it "#instance_of?(#{klass}) is false" do
|
@@ -44,7 +44,7 @@ describe Chef::Deprecated do
|
|
44
44
|
let(:location) { "the location" }
|
45
45
|
|
46
46
|
it "displays the full URL" do
|
47
|
-
expect(TestDeprecation.new
|
47
|
+
expect(TestDeprecation.new.url).to eql("https://docs.chef.io/deprecations_test.html")
|
48
48
|
end
|
49
49
|
|
50
50
|
it "formats a complete deprecation message" do
|
@@ -59,7 +59,7 @@ describe Chef::Deprecated do
|
|
59
59
|
end
|
60
60
|
collisions = id_map.select { |k, v| v.size != 1 }
|
61
61
|
unless collisions.empty?
|
62
|
-
raise "Found deprecation ID collisions:\n#{collisions.map { |k, v| "* #{k} #{v.map(&:name).join(
|
62
|
+
raise "Found deprecation ID collisions:\n#{collisions.map { |k, v| "* #{k} #{v.map(&:name).join(", ")}" }.join("\n")}"
|
63
63
|
end
|
64
64
|
end
|
65
65
|
end
|
@@ -24,7 +24,7 @@ class DataQueryDSLTester
|
|
24
24
|
end
|
25
25
|
|
26
26
|
describe Chef::DSL::DataQuery do
|
27
|
-
let(:node) {
|
27
|
+
let(:node) { {} }
|
28
28
|
|
29
29
|
let(:language) do
|
30
30
|
language = DataQueryDSLTester.new
|
@@ -68,7 +68,8 @@ describe Chef::DSL::DataQuery do
|
|
68
68
|
"a1" => [1, 2, 3],
|
69
69
|
"a2" => { "b1" => true },
|
70
70
|
},
|
71
|
-
}
|
71
|
+
}
|
72
|
+
end
|
72
73
|
|
73
74
|
let(:item) do
|
74
75
|
item = Chef::DataBagItem.new
|
@@ -34,7 +34,7 @@ describe Chef::ResourceCollection do
|
|
34
34
|
|
35
35
|
describe "mixed in correctly" do
|
36
36
|
it "the resources() method winds up in the right classes" do
|
37
|
-
methods =
|
37
|
+
methods = %i{resources find_resource find_resource! edit_resource edit_resource! delete_resource delete_resource! declare_resource build_resource}
|
38
38
|
expect(Chef::Resource.instance_methods).to include(*methods)
|
39
39
|
expect(Chef::Recipe.instance_methods).to include(*methods)
|
40
40
|
expect(Chef::Provider.instance_methods).to include(*methods)
|
@@ -40,7 +40,7 @@ describe Chef::DSL::PlatformIntrospection::PlatformDependentValue do
|
|
40
40
|
before do
|
41
41
|
platform_hash = {
|
42
42
|
:openbsd => { default: "free, functional, secure" },
|
43
|
-
|
43
|
+
%i{redhat centos fedora scientific} => { default: '"stable"' },
|
44
44
|
:ubuntu => { "10.04" => "using upstart more", :default => "using init more" },
|
45
45
|
:default => "bork da bork",
|
46
46
|
}
|
@@ -84,7 +84,7 @@ describe Chef::DSL::PlatformIntrospection::PlatformDependentValue do
|
|
84
84
|
end
|
85
85
|
describe Chef::DSL::PlatformIntrospection::PlatformFamilyDependentValue do
|
86
86
|
before do
|
87
|
-
@array_values =
|
87
|
+
@array_values = %i{stop start reload}
|
88
88
|
|
89
89
|
@platform_family_hash = {
|
90
90
|
"debian" => "debian value",
|
@@ -325,7 +325,8 @@ describe Chef::EncryptedDataBagItem do
|
|
325
325
|
"id" => "item_name",
|
326
326
|
"greeting" => "hello",
|
327
327
|
"nested" => { "a1" => [1, 2, 3], "a2" => { "b1" => true } },
|
328
|
-
}
|
328
|
+
}
|
329
|
+
end
|
329
330
|
let(:secret) { "abc123SECRET" }
|
330
331
|
let(:encoded_data) { subject.encrypt_data_bag_item(plaintext_data, secret) }
|
331
332
|
|
@@ -48,8 +48,8 @@ describe Chef::Environment do
|
|
48
48
|
end
|
49
49
|
|
50
50
|
it "should not accept anything but strings" do
|
51
|
-
expect { @environment.name(
|
52
|
-
expect { @environment.name(
|
51
|
+
expect { @environment.name([]) }.to raise_error(ArgumentError)
|
52
|
+
expect { @environment.name({}) }.to raise_error(ArgumentError)
|
53
53
|
expect { @environment.name(2) }.to raise_error(ArgumentError)
|
54
54
|
end
|
55
55
|
end
|
@@ -65,8 +65,8 @@ describe Chef::Environment do
|
|
65
65
|
end
|
66
66
|
|
67
67
|
it "should not accept anything but strings" do
|
68
|
-
expect { @environment.description(
|
69
|
-
expect { @environment.description(
|
68
|
+
expect { @environment.description([]) }.to raise_error(ArgumentError)
|
69
|
+
expect { @environment.description({}) }.to raise_error(ArgumentError)
|
70
70
|
expect { @environment.description(42) }.to raise_error(ArgumentError)
|
71
71
|
end
|
72
72
|
end
|
@@ -82,7 +82,7 @@ describe Chef::Environment do
|
|
82
82
|
end
|
83
83
|
|
84
84
|
it "should throw an ArgumentError if we aren't a kind of hash" do
|
85
|
-
expect { @environment.default_attributes(
|
85
|
+
expect { @environment.default_attributes([]) }.to raise_error(ArgumentError)
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
@@ -97,15 +97,15 @@ describe Chef::Environment do
|
|
97
97
|
end
|
98
98
|
|
99
99
|
it "should throw an ArgumentError if we aren't a kind of hash" do
|
100
|
-
expect { @environment.override_attributes(
|
100
|
+
expect { @environment.override_attributes([]) }.to raise_error(ArgumentError)
|
101
101
|
end
|
102
102
|
end
|
103
103
|
|
104
104
|
describe "cookbook_versions" do
|
105
105
|
before(:each) do
|
106
106
|
@cookbook_versions = {
|
107
|
-
"apt"
|
108
|
-
"god"
|
107
|
+
"apt" => "= 1.0.0",
|
108
|
+
"god" => "= 2.0.0",
|
109
109
|
"apache2" => "= 4.2.0",
|
110
110
|
}
|
111
111
|
end
|
@@ -121,7 +121,7 @@ describe Chef::Environment do
|
|
121
121
|
|
122
122
|
it "should not accept anything but a hash" do
|
123
123
|
expect { @environment.cookbook_versions("I am a string!") }.to raise_error(ArgumentError)
|
124
|
-
expect { @environment.cookbook_versions(
|
124
|
+
expect { @environment.cookbook_versions([]) }.to raise_error(ArgumentError)
|
125
125
|
expect { @environment.cookbook_versions(42) }.to raise_error(ArgumentError)
|
126
126
|
end
|
127
127
|
|
@@ -243,8 +243,8 @@ describe Chef::Environment do
|
|
243
243
|
describe "self.validate_cookbook_versions" do
|
244
244
|
before(:each) do
|
245
245
|
@cookbook_versions = {
|
246
|
-
"apt"
|
247
|
-
"god"
|
246
|
+
"apt" => "= 1.0.0",
|
247
|
+
"god" => "= 2.0.0",
|
248
248
|
"apache2" => "= 4.2.0",
|
249
249
|
}
|
250
250
|
end
|
@@ -257,7 +257,7 @@ describe Chef::Environment do
|
|
257
257
|
end
|
258
258
|
|
259
259
|
it "should return false if anything other than a hash is passed as the argument" do
|
260
|
-
expect(Chef::Environment.validate_cookbook_versions(
|
260
|
+
expect(Chef::Environment.validate_cookbook_versions([])).to eq(false)
|
261
261
|
expect(Chef::Environment.validate_cookbook_versions(42)).to eq(false)
|
262
262
|
expect(Chef::Environment.validate_cookbook_versions(Chef::CookbookVersion.new("meta"))).to eq(false)
|
263
263
|
expect(Chef::Environment.validate_cookbook_versions("cookbook => 1.2.3")).to eq(false)
|
@@ -299,7 +299,7 @@ describe Chef::Environment do
|
|
299
299
|
expect do
|
300
300
|
Chef::Environment.validate_cookbook_version("= 1.2.3.4")
|
301
301
|
end.to raise_error Chef::Exceptions::IllegalVersionConstraint,
|
302
|
-
|
302
|
+
"Environment cookbook version constraints not allowed in chef-solo"
|
303
303
|
end
|
304
304
|
end
|
305
305
|
|
@@ -63,7 +63,7 @@ describe Chef::EventDispatch::DSL do
|
|
63
63
|
resource = Chef::Resource::RubyBlock.new("foo", run_context)
|
64
64
|
resource.block {}
|
65
65
|
resource.run_action(:run)
|
66
|
-
expect(calls).to eq(
|
66
|
+
expect(calls).to eq(%i{started updated})
|
67
67
|
end
|
68
68
|
|
69
69
|
it "preserve instance variables across handler callbacks" do
|
@@ -38,9 +38,9 @@ describe Chef::FileContentManagement::Deploy::MvUnix do
|
|
38
38
|
let(:target_file_mode) { 0644 }
|
39
39
|
let(:target_file_stat) do
|
40
40
|
double "File::Stat struct for target file",
|
41
|
-
|
42
|
-
|
43
|
-
|
41
|
+
mode: target_file_mode,
|
42
|
+
uid: target_file_uid,
|
43
|
+
gid: target_file_gid
|
44
44
|
end
|
45
45
|
|
46
46
|
before do
|
@@ -84,8 +84,8 @@ describe Chef::FileContentManagement::Deploy::MvWindows do
|
|
84
84
|
|
85
85
|
let(:target_file_security_descriptor) do
|
86
86
|
double "security descriptor for target file",
|
87
|
-
|
88
|
-
|
87
|
+
group: original_target_file_group,
|
88
|
+
owner: original_target_file_owner
|
89
89
|
end
|
90
90
|
|
91
91
|
let(:updated_target_security_descriptor) do
|
@@ -60,7 +60,7 @@ describe Chef::Formatters::ErrorInspectors::ResourceFailureInspector do
|
|
60
60
|
@trace = [
|
61
61
|
"/var/chef/cache/cookbooks/syntax-err/recipes/default.rb:14:in `from_file'",
|
62
62
|
"/var/chef/cache/cookbooks/syntax-err/recipes/default.rb:11:in `from_file'",
|
63
|
-
"/usr/local/lib/ruby/gems/chef/lib/chef/client.rb:123:in `run'" # should not display
|
63
|
+
"/usr/local/lib/ruby/gems/chef/lib/chef/client.rb:123:in `run'", # should not display
|
64
64
|
]
|
65
65
|
@exception = Chef::Exceptions::Package.new("No such package 'non-existing-package'")
|
66
66
|
@exception.set_backtrace(@trace)
|
@@ -122,7 +122,7 @@ describe Chef::Formatters::ErrorInspectors::ResourceFailureInspector do
|
|
122
122
|
source_line = "C:/Users/btm/chef/chef/spec/unit/fake_file.rb:2: undefined local variable or method `non_existent' for main:Object (NameError)"
|
123
123
|
@resource.source_line = source_line
|
124
124
|
@inspector = Chef::Formatters::ErrorInspectors::ResourceFailureInspector.new(@resource, :create, @exception)
|
125
|
-
expect(@inspector.recipe_snippet).to match(
|
125
|
+
expect(@inspector.recipe_snippet).to match(%r{^# In C:/Users/btm})
|
126
126
|
end
|
127
127
|
|
128
128
|
it "parses a Windows path" do
|
@@ -136,7 +136,7 @@ describe Chef::Formatters::ErrorInspectors::ResourceFailureInspector do
|
|
136
136
|
source_line = "/home/btm/src/chef/chef/spec/unit/fake_file.rb:2: undefined local variable or method `non_existent' for main:Object (NameError)"
|
137
137
|
@resource.source_line = source_line
|
138
138
|
@inspector = Chef::Formatters::ErrorInspectors::ResourceFailureInspector.new(@resource, :create, @exception)
|
139
|
-
expect(@inspector.recipe_snippet).to match(
|
139
|
+
expect(@inspector.recipe_snippet).to match(%r{^# In /home/btm})
|
140
140
|
end
|
141
141
|
|
142
142
|
context "when the recipe file does not exist" do
|