chefspec 7.3.0 → 9.1.0
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/Rakefile +33 -30
- data/chefspec.gemspec +6 -7
- data/lib/chefspec/api/core.rb +37 -15
- data/lib/chefspec/api/include_any_recipe.rb +24 -0
- data/lib/chefspec/api/stubs_for.rb +5 -3
- data/lib/chefspec/api.rb +2 -0
- data/lib/chefspec/extensions/.DS_Store +0 -0
- data/lib/chefspec/extensions/chef/.DS_Store +0 -0
- data/lib/chefspec/extensions/chef/cookbook/gem_installer.rb +1 -1
- data/lib/chefspec/extensions/chef/provider.rb +1 -1
- data/lib/chefspec/extensions/chef/resource.rb +1 -1
- data/lib/chefspec/matchers/include_any_recipe_matcher.rb +51 -0
- data/lib/chefspec/matchers.rb +1 -0
- data/lib/chefspec/policyfile.rb +10 -7
- data/lib/chefspec/rspec.rb +1 -0
- data/lib/chefspec/runner.rb +1 -1
- data/lib/chefspec/version.rb +1 -1
- data/spec/unit/matchers/include_any_recipe_matcher_spec.rb +52 -0
- metadata +30 -641
- data/.gitignore +0 -16
- data/.travis.yml +0 -48
- data/CHANGELOG.md +0 -810
- data/CONTRIBUTING.md +0 -52
- data/ISSUES.md +0 -41
- data/README.md +0 -571
- data/README_old.md +0 -1291
- data/examples/apt_package/recipes/install.rb +0 -13
- data/examples/apt_package/recipes/lock.rb +0 -13
- data/examples/apt_package/recipes/purge.rb +0 -13
- data/examples/apt_package/recipes/reconfig.rb +0 -13
- data/examples/apt_package/recipes/remove.rb +0 -13
- data/examples/apt_package/recipes/unlock.rb +0 -13
- data/examples/apt_package/recipes/upgrade.rb +0 -13
- data/examples/apt_package/spec/install_spec.rb +0 -26
- data/examples/apt_package/spec/lock_spec.rb +0 -22
- data/examples/apt_package/spec/purge_spec.rb +0 -22
- data/examples/apt_package/spec/reconfig_spec.rb +0 -22
- data/examples/apt_package/spec/remove_spec.rb +0 -22
- data/examples/apt_package/spec/unlock_spec.rb +0 -22
- data/examples/apt_package/spec/upgrade_spec.rb +0 -22
- data/examples/apt_repository/recipes/add.rb +0 -8
- data/examples/apt_repository/recipes/remove.rb +0 -4
- data/examples/apt_repository/spec/add_spec.rb +0 -17
- data/examples/apt_repository/spec/remove_spec.rb +0 -12
- data/examples/apt_update/recipes/periodic.rb +0 -5
- data/examples/apt_update/recipes/update.rb +0 -3
- data/examples/apt_update/spec/periodic_spec.rb +0 -17
- data/examples/apt_update/spec/update_spec.rb +0 -12
- data/examples/attributes/attributes/default.rb +0 -1
- data/examples/attributes/recipes/default.rb +0 -4
- data/examples/attributes/spec/default_spec.rb +0 -20
- data/examples/batch/recipes/run.rb +0 -9
- data/examples/batch/spec/run_spec.rb +0 -22
- data/examples/bff_package/recipes/install.rb +0 -13
- data/examples/bff_package/recipes/purge.rb +0 -13
- data/examples/bff_package/recipes/remove.rb +0 -13
- data/examples/bff_package/recipes/upgrade.rb +0 -13
- data/examples/bff_package/spec/install_spec.rb +0 -23
- data/examples/bff_package/spec/purge_spec.rb +0 -19
- data/examples/bff_package/spec/remove_spec.rb +0 -19
- data/examples/bff_package/spec/upgrade_spec.rb +0 -19
- data/examples/cab_package/recipes/install.rb +0 -13
- data/examples/cab_package/recipes/remove.rb +0 -13
- data/examples/cab_package/spec/install_spec.rb +0 -28
- data/examples/cab_package/spec/remove_spec.rb +0 -24
- data/examples/cached/recipes/default.rb +0 -1
- data/examples/cached/spec/default_spec.rb +0 -14
- data/examples/chef_gem/recipes/install.rb +0 -18
- data/examples/chef_gem/recipes/purge.rb +0 -16
- data/examples/chef_gem/recipes/reconfig.rb +0 -16
- data/examples/chef_gem/recipes/remove.rb +0 -16
- data/examples/chef_gem/recipes/upgrade.rb +0 -16
- data/examples/chef_gem/spec/install_spec.rb +0 -23
- data/examples/chef_gem/spec/purge_spec.rb +0 -19
- data/examples/chef_gem/spec/reconfig_spec.rb +0 -19
- data/examples/chef_gem/spec/remove_spec.rb +0 -19
- data/examples/chef_gem/spec/upgrade_spec.rb +0 -19
- data/examples/chocolatey_package/recipes/install.rb +0 -6
- data/examples/chocolatey_package/recipes/remove.rb +0 -8
- data/examples/chocolatey_package/recipes/upgrade.rb +0 -8
- data/examples/chocolatey_package/spec/install_spec.rb +0 -19
- data/examples/chocolatey_package/spec/remove_spec.rb +0 -18
- data/examples/chocolatey_package/spec/upgrade_spec.rb +0 -18
- data/examples/compile_time/recipes/default.rb +0 -3
- data/examples/compile_time/spec/default_spec.rb +0 -29
- data/examples/cookbook_file/recipes/create.rb +0 -15
- data/examples/cookbook_file/recipes/create_if_missing.rb +0 -15
- data/examples/cookbook_file/recipes/delete.rb +0 -15
- data/examples/cookbook_file/recipes/touch.rb +0 -15
- data/examples/cookbook_file/spec/create_if_missing_spec.rb +0 -28
- data/examples/cookbook_file/spec/create_spec.rb +0 -32
- data/examples/cookbook_file/spec/delete_spec.rb +0 -19
- data/examples/cookbook_file/spec/touch_spec.rb +0 -19
- data/examples/core/recipes/default.rb +0 -1
- data/examples/core/spec/default_spec.rb +0 -7
- data/examples/core/spec/non_recipe_spec.rb +0 -5
- data/examples/cron/recipes/create.rb +0 -10
- data/examples/cron/recipes/delete.rb +0 -9
- data/examples/cron/spec/create_spec.rb +0 -19
- data/examples/cron/spec/delete_spec.rb +0 -15
- data/examples/custom_matcher/libraries/matcher.rb +0 -1
- data/examples/custom_matcher/providers/thing.rb +0 -2
- data/examples/custom_matcher/recipes/install.rb +0 -13
- data/examples/custom_matcher/recipes/remove.rb +0 -13
- data/examples/custom_matcher/resources/thing.rb +0 -5
- data/examples/custom_matcher/spec/install_spec.rb +0 -27
- data/examples/custom_matcher/spec/remove_spec.rb +0 -23
- data/examples/custom_resource/recipes/default.rb +0 -1
- data/examples/custom_resource/resources/custom_resource.rb +0 -9
- data/examples/custom_resource/spec/default_spec.rb +0 -18
- data/examples/custom_resource_block/resources/default.rb +0 -3
- data/examples/custom_resource_block/spec/default_spec.rb +0 -10
- data/examples/directory/recipes/create.rb +0 -18
- data/examples/directory/recipes/delete.rb +0 -14
- data/examples/directory/spec/create_spec.rb +0 -34
- data/examples/directory/spec/delete_spec.rb +0 -26
- data/examples/dnf_package/recipes/install.rb +0 -13
- data/examples/dnf_package/recipes/purge.rb +0 -13
- data/examples/dnf_package/recipes/remove.rb +0 -13
- data/examples/dnf_package/recipes/upgrade.rb +0 -13
- data/examples/dnf_package/spec/install_spec.rb +0 -28
- data/examples/dnf_package/spec/purge_spec.rb +0 -24
- data/examples/dnf_package/spec/remove_spec.rb +0 -24
- data/examples/dnf_package/spec/upgrade_spec.rb +0 -24
- data/examples/do_nothing/recipes/default.rb +0 -3
- data/examples/do_nothing/spec/default_spec.rb +0 -15
- data/examples/dpkg_package/recipes/install.rb +0 -13
- data/examples/dpkg_package/recipes/purge.rb +0 -13
- data/examples/dpkg_package/recipes/remove.rb +0 -13
- data/examples/dpkg_package/spec/install_spec.rb +0 -26
- data/examples/dpkg_package/spec/purge_spec.rb +0 -22
- data/examples/dpkg_package/spec/remove_spec.rb +0 -22
- data/examples/dsc_resource/recipes/run.rb +0 -20
- data/examples/dsc_resource/spec/run_spec.rb +0 -38
- data/examples/dsc_script/recipes/run.rb +0 -12
- data/examples/dsc_script/spec/run_spec.rb +0 -16
- data/examples/env/recipes/create.rb +0 -13
- data/examples/env/recipes/delete.rb +0 -13
- data/examples/env/recipes/modify.rb +0 -13
- data/examples/env/spec/create_spec.rb +0 -26
- data/examples/env/spec/delete_spec.rb +0 -22
- data/examples/env/spec/modify_spec.rb +0 -22
- data/examples/execute/recipes/run.rb +0 -13
- data/examples/execute/spec/run_spec.rb +0 -23
- data/examples/expect_exception/recipes/compile_error.rb +0 -1
- data/examples/expect_exception/recipes/converge_error.rb +0 -5
- data/examples/expect_exception/recipes/no_error.rb +0 -1
- data/examples/expect_exception/spec/compile_error_spec.rb +0 -10
- data/examples/expect_exception/spec/converge_error_spec.rb +0 -10
- data/examples/expect_exception/spec/no_error_spec.rb +0 -10
- data/examples/file/recipes/create.rb +0 -15
- data/examples/file/recipes/create_if_missing.rb +0 -15
- data/examples/file/recipes/delete.rb +0 -15
- data/examples/file/recipes/touch.rb +0 -15
- data/examples/file/spec/create_if_missing_spec.rb +0 -28
- data/examples/file/spec/create_spec.rb +0 -32
- data/examples/file/spec/delete_spec.rb +0 -19
- data/examples/file/spec/touch_spec.rb +0 -19
- data/examples/freebsd_package/recipes/install.rb +0 -13
- data/examples/freebsd_package/recipes/remove.rb +0 -13
- data/examples/freebsd_package/spec/install_spec.rb +0 -26
- data/examples/freebsd_package/spec/remove_spec.rb +0 -22
- data/examples/gem_package/recipes/install.rb +0 -13
- data/examples/gem_package/recipes/purge.rb +0 -13
- data/examples/gem_package/recipes/reconfig.rb +0 -13
- data/examples/gem_package/recipes/remove.rb +0 -13
- data/examples/gem_package/recipes/upgrade.rb +0 -13
- data/examples/gem_package/spec/install_spec.rb +0 -23
- data/examples/gem_package/spec/purge_spec.rb +0 -19
- data/examples/gem_package/spec/reconfig_spec.rb +0 -19
- data/examples/gem_package/spec/remove_spec.rb +0 -19
- data/examples/gem_package/spec/upgrade_spec.rb +0 -19
- data/examples/git/recipes/checkout.rb +0 -13
- data/examples/git/recipes/export.rb +0 -13
- data/examples/git/recipes/sync.rb +0 -13
- data/examples/git/spec/checkout_spec.rb +0 -19
- data/examples/git/spec/export_spec.rb +0 -19
- data/examples/git/spec/sync_spec.rb +0 -23
- data/examples/group/recipes/create.rb +0 -13
- data/examples/group/recipes/manage.rb +0 -13
- data/examples/group/recipes/modify.rb +0 -13
- data/examples/group/recipes/remove.rb +0 -13
- data/examples/group/spec/create_spec.rb +0 -23
- data/examples/group/spec/manage_spec.rb +0 -19
- data/examples/group/spec/modify_spec.rb +0 -19
- data/examples/group/spec/remove_spec.rb +0 -18
- data/examples/guards/recipes/default.rb +0 -13
- data/examples/guards/spec/default_spec.rb +0 -17
- data/examples/heavy_provider_light_resource/libraries/resource_service.rb +0 -15
- data/examples/heavy_provider_light_resource/providers/service.rb +0 -9
- data/examples/heavy_provider_light_resource/recipes/default.rb +0 -3
- data/examples/heavy_provider_light_resource/spec/provider_service_spec.rb +0 -8
- data/examples/homebrew_package/recipes/install.rb +0 -13
- data/examples/homebrew_package/recipes/purge.rb +0 -13
- data/examples/homebrew_package/recipes/remove.rb +0 -13
- data/examples/homebrew_package/recipes/upgrade.rb +0 -13
- data/examples/homebrew_package/spec/install_spec.rb +0 -23
- data/examples/homebrew_package/spec/purge_spec.rb +0 -19
- data/examples/homebrew_package/spec/remove_spec.rb +0 -19
- data/examples/homebrew_package/spec/upgrade_spec.rb +0 -19
- data/examples/http_request/recipes/delete.rb +0 -13
- data/examples/http_request/recipes/get.rb +0 -13
- data/examples/http_request/recipes/head.rb +0 -13
- data/examples/http_request/recipes/options.rb +0 -13
- data/examples/http_request/recipes/post.rb +0 -13
- data/examples/http_request/recipes/put.rb +0 -13
- data/examples/http_request/spec/delete_spec.rb +0 -19
- data/examples/http_request/spec/get_spec.rb +0 -23
- data/examples/http_request/spec/head_spec.rb +0 -19
- data/examples/http_request/spec/options_spec.rb +0 -19
- data/examples/http_request/spec/post_spec.rb +0 -19
- data/examples/http_request/spec/put_spec.rb +0 -19
- data/examples/ifconfig/recipes/add.rb +0 -9
- data/examples/ifconfig/recipes/delete.rb +0 -8
- data/examples/ifconfig/recipes/disable.rb +0 -8
- data/examples/ifconfig/recipes/enable.rb +0 -8
- data/examples/ifconfig/spec/add_spec.rb +0 -19
- data/examples/ifconfig/spec/delete_spec.rb +0 -15
- data/examples/ifconfig/spec/disable_spec.rb +0 -15
- data/examples/ifconfig/spec/enable_spec.rb +0 -15
- data/examples/include_recipe/recipes/default.rb +0 -1
- data/examples/include_recipe/recipes/not.rb +0 -0
- data/examples/include_recipe/recipes/other.rb +0 -0
- data/examples/include_recipe/spec/default_spec.rb +0 -13
- data/examples/ips_package/recipes/install.rb +0 -13
- data/examples/ips_package/recipes/remove.rb +0 -13
- data/examples/ips_package/recipes/upgrade.rb +0 -13
- data/examples/ips_package/spec/install_spec.rb +0 -26
- data/examples/ips_package/spec/remove_spec.rb +0 -22
- data/examples/ips_package/spec/upgrade_spec.rb +0 -22
- data/examples/launchd/recipes/create.rb +0 -5
- data/examples/launchd/recipes/create_if_missing.rb +0 -3
- data/examples/launchd/recipes/delete.rb +0 -3
- data/examples/launchd/recipes/disable.rb +0 -3
- data/examples/launchd/recipes/enable.rb +0 -3
- data/examples/launchd/spec/create_if_missing_spec.rb +0 -10
- data/examples/launchd/spec/create_spec.rb +0 -14
- data/examples/launchd/spec/delete_spec.rb +0 -10
- data/examples/launchd/spec/disable_spec.rb +0 -10
- data/examples/launchd/spec/enable_spec.rb +0 -10
- data/examples/library_patch/libraries/default.rb +0 -5
- data/examples/library_patch/recipes/default.rb +0 -1
- data/examples/library_patch/spec/default_spec.rb +0 -14
- data/examples/link/recipes/create.rb +0 -13
- data/examples/link/recipes/delete.rb +0 -13
- data/examples/link/recipes/link_to.rb +0 -3
- data/examples/link/spec/create_spec.rb +0 -23
- data/examples/link/spec/delete_spec.rb +0 -19
- data/examples/link/spec/link_to_spec.rb +0 -11
- data/examples/log/recipes/write.rb +0 -13
- data/examples/log/spec/write_spec.rb +0 -24
- data/examples/macports_package/recipes/install.rb +0 -13
- data/examples/macports_package/recipes/purge.rb +0 -13
- data/examples/macports_package/recipes/remove.rb +0 -13
- data/examples/macports_package/recipes/upgrade.rb +0 -13
- data/examples/macports_package/spec/install_spec.rb +0 -23
- data/examples/macports_package/spec/purge_spec.rb +0 -19
- data/examples/macports_package/spec/remove_spec.rb +0 -19
- data/examples/macports_package/spec/upgrade_spec.rb +0 -19
- data/examples/mdadm/recipes/assemble.rb +0 -13
- data/examples/mdadm/recipes/create.rb +0 -13
- data/examples/mdadm/recipes/stop.rb +0 -13
- data/examples/mdadm/spec/assemble_spec.rb +0 -19
- data/examples/mdadm/spec/create_spec.rb +0 -23
- data/examples/mdadm/spec/stop_spec.rb +0 -19
- data/examples/mount/recipes/disable.rb +0 -8
- data/examples/mount/recipes/enable.rb +0 -8
- data/examples/mount/recipes/mount.rb +0 -9
- data/examples/mount/recipes/remount.rb +0 -8
- data/examples/mount/recipes/umount.rb +0 -8
- data/examples/mount/spec/disable_spec.rb +0 -15
- data/examples/mount/spec/enable_spec.rb +0 -15
- data/examples/mount/spec/mount_spec.rb +0 -19
- data/examples/mount/spec/remount_spec.rb +0 -15
- data/examples/mount/spec/umount_spec.rb +0 -15
- data/examples/msu_package/recipes/install.rb +0 -13
- data/examples/msu_package/recipes/remove.rb +0 -13
- data/examples/msu_package/spec/install_spec.rb +0 -28
- data/examples/msu_package/spec/remove_spec.rb +0 -24
- data/examples/multiple_actions/recipes/default.rb +0 -3
- data/examples/multiple_actions/recipes/reversed.rb +0 -9
- data/examples/multiple_actions/recipes/sequential.rb +0 -9
- data/examples/multiple_actions/spec/default_spec.rb +0 -14
- data/examples/multiple_actions/spec/reversed_spec.rb +0 -17
- data/examples/multiple_actions/spec/sequential_spec.rb +0 -17
- data/examples/multiple_run_action/recipes/default.rb +0 -5
- data/examples/multiple_run_action/spec/default_spec.rb +0 -18
- data/examples/nothing_matcher/recipes/default.rb +0 -13
- data/examples/nothing_matcher/spec/default_spec.rb +0 -20
- data/examples/notifications/recipes/before.rb +0 -7
- data/examples/notifications/recipes/chained.rb +0 -12
- data/examples/notifications/recipes/default.rb +0 -7
- data/examples/notifications/recipes/delayed.rb +0 -7
- data/examples/notifications/recipes/immediately.rb +0 -7
- data/examples/notifications/spec/before_spec.rb +0 -16
- data/examples/notifications/spec/chained_spec.rb +0 -21
- data/examples/notifications/spec/default_spec.rb +0 -16
- data/examples/notifications/spec/delayed_spec.rb +0 -16
- data/examples/notifications/spec/immediately_spec.rb +0 -16
- data/examples/ohai/recipes/reload.rb +0 -13
- data/examples/ohai/spec/reload_spec.rb +0 -23
- data/examples/openbsd_package/recipes/install.rb +0 -13
- data/examples/openbsd_package/recipes/purge.rb +0 -13
- data/examples/openbsd_package/recipes/remove.rb +0 -13
- data/examples/openbsd_package/recipes/upgrade.rb +0 -13
- data/examples/openbsd_package/spec/install_spec.rb +0 -23
- data/examples/openbsd_package/spec/purge_spec.rb +0 -19
- data/examples/openbsd_package/spec/remove_spec.rb +0 -19
- data/examples/openbsd_package/spec/upgrade_spec.rb +0 -19
- data/examples/osx_profile/recipes/install.rb +0 -8
- data/examples/osx_profile/recipes/remove.rb +0 -8
- data/examples/osx_profile/spec/install_spec.rb +0 -15
- data/examples/osx_profile/spec/remove_spec.rb +0 -13
- data/examples/package/recipes/install.rb +0 -17
- data/examples/package/recipes/lock.rb +0 -17
- data/examples/package/recipes/purge.rb +0 -17
- data/examples/package/recipes/reconfig.rb +0 -17
- data/examples/package/recipes/remove.rb +0 -17
- data/examples/package/recipes/unlock.rb +0 -17
- data/examples/package/recipes/upgrade.rb +0 -17
- data/examples/package/spec/install_spec.rb +0 -27
- data/examples/package/spec/lock_spec.rb +0 -23
- data/examples/package/spec/purge_spec.rb +0 -23
- data/examples/package/spec/reconfig_spec.rb +0 -23
- data/examples/package/spec/remove_spec.rb +0 -23
- data/examples/package/spec/unlock_spec.rb +0 -23
- data/examples/package/spec/upgrade_spec.rb +0 -23
- data/examples/pacman_package/recipes/install.rb +0 -13
- data/examples/pacman_package/recipes/purge.rb +0 -13
- data/examples/pacman_package/recipes/remove.rb +0 -13
- data/examples/pacman_package/recipes/upgrade.rb +0 -13
- data/examples/pacman_package/spec/install_spec.rb +0 -26
- data/examples/pacman_package/spec/purge_spec.rb +0 -22
- data/examples/pacman_package/spec/remove_spec.rb +0 -22
- data/examples/pacman_package/spec/upgrade_spec.rb +0 -22
- data/examples/paludis_package/recipes/install.rb +0 -13
- data/examples/paludis_package/recipes/purge.rb +0 -13
- data/examples/paludis_package/recipes/remove.rb +0 -13
- data/examples/paludis_package/recipes/upgrade.rb +0 -13
- data/examples/paludis_package/spec/install_spec.rb +0 -23
- data/examples/paludis_package/spec/purge_spec.rb +0 -19
- data/examples/paludis_package/spec/remove_spec.rb +0 -19
- data/examples/paludis_package/spec/upgrade_spec.rb +0 -19
- data/examples/portage_package/recipes/install.rb +0 -13
- data/examples/portage_package/recipes/purge.rb +0 -13
- data/examples/portage_package/recipes/remove.rb +0 -13
- data/examples/portage_package/recipes/upgrade.rb +0 -13
- data/examples/portage_package/spec/install_spec.rb +0 -26
- data/examples/portage_package/spec/purge_spec.rb +0 -22
- data/examples/portage_package/spec/remove_spec.rb +0 -22
- data/examples/portage_package/spec/upgrade_spec.rb +0 -22
- data/examples/powershell_script/recipes/run.rb +0 -9
- data/examples/powershell_script/spec/run_spec.rb +0 -22
- data/examples/reboot/recipes/cancel.rb +0 -3
- data/examples/reboot/recipes/now.rb +0 -3
- data/examples/reboot/recipes/request.rb +0 -3
- data/examples/reboot/spec/cancel_spec.rb +0 -9
- data/examples/reboot/spec/now_spec.rb +0 -9
- data/examples/reboot/spec/request_spec.rb +0 -9
- data/examples/recipe_block/metadata.rb +0 -1
- data/examples/recipe_block/spec/recipe_block_spec.rb +0 -34
- data/examples/recipe_block/templates/apache2.conf.erb +0 -1
- data/examples/registry_key/recipes/create.rb +0 -13
- data/examples/registry_key/recipes/create_if_missing.rb +0 -13
- data/examples/registry_key/recipes/delete.rb +0 -13
- data/examples/registry_key/recipes/delete_key.rb +0 -13
- data/examples/registry_key/spec/create_if_missing_spec.rb +0 -22
- data/examples/registry_key/spec/create_spec.rb +0 -26
- data/examples/registry_key/spec/delete_key_spec.rb +0 -22
- data/examples/registry_key/spec/delete_spec.rb +0 -22
- data/examples/remote_directory/recipes/create.rb +0 -13
- data/examples/remote_directory/recipes/create_if_missing.rb +0 -13
- data/examples/remote_directory/recipes/delete.rb +0 -13
- data/examples/remote_directory/spec/create_if_missing_spec.rb +0 -19
- data/examples/remote_directory/spec/create_spec.rb +0 -23
- data/examples/remote_directory/spec/delete_spec.rb +0 -19
- data/examples/remote_file/recipes/create.rb +0 -18
- data/examples/remote_file/recipes/create_if_missing.rb +0 -16
- data/examples/remote_file/recipes/delete.rb +0 -16
- data/examples/remote_file/recipes/touch.rb +0 -16
- data/examples/remote_file/spec/create_if_missing_spec.rb +0 -19
- data/examples/remote_file/spec/create_spec.rb +0 -23
- data/examples/remote_file/spec/delete_spec.rb +0 -19
- data/examples/remote_file/spec/touch_spec.rb +0 -19
- data/examples/render_file/files/default/cookbook_file +0 -1
- data/examples/render_file/recipes/default.rb +0 -15
- data/examples/render_file/recipes/template_helpers.rb +0 -9
- data/examples/render_file/spec/default_spec.rb +0 -166
- data/examples/render_file/spec/template_helpers_spec.rb +0 -10
- data/examples/render_file/templates/default/_partial.erb +0 -1
- data/examples/render_file/templates/default/partial.erb +0 -1
- data/examples/render_file/templates/default/template.erb +0 -1
- data/examples/render_file/templates/default/template_with_helper.erb +0 -1
- data/examples/roles/recipes/another.rb +0 -3
- data/examples/roles/recipes/default.rb +0 -1
- data/examples/roles/roles/role.rb +0 -9
- data/examples/roles/spec/default_spec.rb +0 -21
- data/examples/route/recipes/add.rb +0 -13
- data/examples/route/recipes/delete.rb +0 -13
- data/examples/route/spec/add_spec.rb +0 -23
- data/examples/route/spec/delete_spec.rb +0 -19
- data/examples/rpm_package/recipes/install.rb +0 -13
- data/examples/rpm_package/recipes/remove.rb +0 -13
- data/examples/rpm_package/recipes/upgrade.rb +0 -13
- data/examples/rpm_package/spec/install_spec.rb +0 -26
- data/examples/rpm_package/spec/remove_spec.rb +0 -22
- data/examples/rpm_package/spec/upgrade_spec.rb +0 -22
- data/examples/ruby_block/recipes/create.rb +0 -8
- data/examples/ruby_block/recipes/run.rb +0 -9
- data/examples/ruby_block/spec/create_spec.rb +0 -13
- data/examples/ruby_block/spec/run_spec.rb +0 -18
- data/examples/runner/recipes/default.rb +0 -1
- data/examples/runner/spec/default_spec.rb +0 -11
- data/examples/script/recipes/run_bash.rb +0 -9
- data/examples/script/recipes/run_csh.rb +0 -9
- data/examples/script/recipes/run_ksh.rb +0 -9
- data/examples/script/recipes/run_perl.rb +0 -9
- data/examples/script/recipes/run_python.rb +0 -9
- data/examples/script/recipes/run_ruby.rb +0 -9
- data/examples/script/recipes/run_script.rb +0 -9
- data/examples/script/spec/run_bash_spec.rb +0 -19
- data/examples/script/spec/run_csh_spec.rb +0 -19
- data/examples/script/spec/run_ksh_spec.rb +0 -19
- data/examples/script/spec/run_perl_spec.rb +0 -19
- data/examples/script/spec/run_python_spec.rb +0 -19
- data/examples/script/spec/run_ruby_spec.rb +0 -19
- data/examples/script/spec/run_script_spec.rb +0 -19
- data/examples/server/recipes/client.rb +0 -6
- data/examples/server/recipes/data_bag.rb +0 -7
- data/examples/server/recipes/environment.rb +0 -6
- data/examples/server/recipes/node.rb +0 -6
- data/examples/server/recipes/render_with_cached.rb +0 -3
- data/examples/server/recipes/role.rb +0 -6
- data/examples/server/recipes/search.rb +0 -5
- data/examples/server/spec/client_spec.rb +0 -18
- data/examples/server/spec/data_bag_spec.rb +0 -25
- data/examples/server/spec/environment_spec.rb +0 -18
- data/examples/server/spec/exotic_port_spec.rb +0 -30
- data/examples/server/spec/node_spec.rb +0 -49
- data/examples/server/spec/render_with_cached_spec.rb +0 -15
- data/examples/server/spec/role_spec.rb +0 -18
- data/examples/server/spec/search_spec.rb +0 -61
- data/examples/service/recipes/disable.rb +0 -13
- data/examples/service/recipes/enable.rb +0 -13
- data/examples/service/recipes/reload.rb +0 -13
- data/examples/service/recipes/restart.rb +0 -13
- data/examples/service/recipes/start.rb +0 -13
- data/examples/service/recipes/stop.rb +0 -13
- data/examples/service/spec/disable_spec.rb +0 -19
- data/examples/service/spec/enable_spec.rb +0 -19
- data/examples/service/spec/reload_spec.rb +0 -19
- data/examples/service/spec/restart_spec.rb +0 -19
- data/examples/service/spec/start_spec.rb +0 -19
- data/examples/service/spec/stop_spec.rb +0 -19
- data/examples/smartos_package/recipes/install.rb +0 -13
- data/examples/smartos_package/recipes/remove.rb +0 -13
- data/examples/smartos_package/recipes/upgrade.rb +0 -13
- data/examples/smartos_package/spec/install_spec.rb +0 -26
- data/examples/smartos_package/spec/remove_spec.rb +0 -22
- data/examples/smartos_package/spec/upgrade_spec.rb +0 -22
- data/examples/solaris_package/recipes/install.rb +0 -13
- data/examples/solaris_package/recipes/remove.rb +0 -13
- data/examples/solaris_package/recipes/upgrade.rb +0 -13
- data/examples/solaris_package/spec/install_spec.rb +0 -26
- data/examples/solaris_package/spec/remove_spec.rb +0 -22
- data/examples/solaris_package/spec/upgrade_spec.rb +0 -22
- data/examples/spec_attributes/attributes/default.rb +0 -1
- data/examples/spec_attributes/recipes/default.rb +0 -5
- data/examples/spec_attributes/spec/default_spec.rb +0 -54
- data/examples/spec_platform/recipes/default.rb +0 -3
- data/examples/spec_platform/spec/default_spec.rb +0 -36
- data/examples/spec_step_into/recipes/default.rb +0 -3
- data/examples/spec_step_into/resources/one.rb +0 -3
- data/examples/spec_step_into/resources/two.rb +0 -3
- data/examples/spec_step_into/spec/default_spec.rb +0 -50
- data/examples/state_attrs/providers/lwrp.rb +0 -2
- data/examples/state_attrs/recipes/default.rb +0 -3
- data/examples/state_attrs/resources/lwrp.rb +0 -6
- data/examples/state_attrs/spec/default_spec.rb +0 -12
- data/examples/step_into/providers/lwrp.rb +0 -3
- data/examples/step_into/providers/provides.rb +0 -3
- data/examples/step_into/recipes/default.rb +0 -3
- data/examples/step_into/resources/lwrp.rb +0 -4
- data/examples/step_into/resources/provides.rb +0 -6
- data/examples/step_into/spec/default_spec.rb +0 -30
- data/examples/stub_command/recipes/default.rb +0 -5
- data/examples/stub_command/recipes/other_recipe.rb +0 -3
- data/examples/stub_command/spec/default_spec.rb +0 -28
- data/examples/stub_data_bag/recipes/default.rb +0 -5
- data/examples/stub_data_bag/spec/default_spec.rb +0 -27
- data/examples/stub_data_bag_item/recipes/default.rb +0 -5
- data/examples/stub_data_bag_item/spec/default_spec.rb +0 -27
- data/examples/stub_node/recipes/default.rb +0 -0
- data/examples/stub_node/spec/default_spec.rb +0 -17
- data/examples/stub_search/recipes/block.rb +0 -3
- data/examples/stub_search/recipes/default.rb +0 -2
- data/examples/stub_search/spec/block_spec.rb +0 -27
- data/examples/stub_search/spec/default_spec.rb +0 -27
- data/examples/stubs_for/resources/default.rb +0 -20
- data/examples/stubs_for/resources/old.rb +0 -26
- data/examples/stubs_for/spec/default_spec.rb +0 -240
- data/examples/subscribes/recipes/before.rb +0 -5
- data/examples/subscribes/recipes/chained.rb +0 -10
- data/examples/subscribes/recipes/default.rb +0 -5
- data/examples/subscribes/recipes/delayed.rb +0 -5
- data/examples/subscribes/recipes/immediately.rb +0 -5
- data/examples/subscribes/spec/before_spec.rb +0 -16
- data/examples/subscribes/spec/chained_spec.rb +0 -21
- data/examples/subscribes/spec/default_spec.rb +0 -16
- data/examples/subscribes/spec/delayed_spec.rb +0 -16
- data/examples/subscribes/spec/immediately_spec.rb +0 -16
- data/examples/subversion/recipes/checkout.rb +0 -13
- data/examples/subversion/recipes/export.rb +0 -13
- data/examples/subversion/recipes/force_export.rb +0 -13
- data/examples/subversion/recipes/sync.rb +0 -13
- data/examples/subversion/spec/checkout_spec.rb +0 -19
- data/examples/subversion/spec/export_spec.rb +0 -19
- data/examples/subversion/spec/force_export_spec.rb +0 -19
- data/examples/subversion/spec/sync_spec.rb +0 -23
- data/examples/systemd_unit/recipes/create.rb +0 -3
- data/examples/systemd_unit/recipes/delete.rb +0 -3
- data/examples/systemd_unit/recipes/disable.rb +0 -3
- data/examples/systemd_unit/recipes/enable.rb +0 -3
- data/examples/systemd_unit/recipes/mask.rb +0 -3
- data/examples/systemd_unit/recipes/reload_or_restart.rb +0 -3
- data/examples/systemd_unit/recipes/reload_or_try_restart.rb +0 -3
- data/examples/systemd_unit/recipes/restart.rb +0 -3
- data/examples/systemd_unit/recipes/start.rb +0 -3
- data/examples/systemd_unit/recipes/stop.rb +0 -3
- data/examples/systemd_unit/recipes/try_restart.rb +0 -3
- data/examples/systemd_unit/recipes/unmask.rb +0 -3
- data/examples/systemd_unit/spec/create_spec.rb +0 -10
- data/examples/systemd_unit/spec/delete_spec.rb +0 -10
- data/examples/systemd_unit/spec/disable_spec.rb +0 -10
- data/examples/systemd_unit/spec/enable_spec.rb +0 -10
- data/examples/systemd_unit/spec/mask_spec.rb +0 -10
- data/examples/systemd_unit/spec/reload_or_restart_spec.rb +0 -10
- data/examples/systemd_unit/spec/reload_or_try_restart_spec.rb +0 -10
- data/examples/systemd_unit/spec/restart_spec.rb +0 -10
- data/examples/systemd_unit/spec/start_spec.rb +0 -10
- data/examples/systemd_unit/spec/stop_spec.rb +0 -10
- data/examples/systemd_unit/spec/try_restart_spec.rb +0 -10
- data/examples/systemd_unit/spec/unmask_spec.rb +0 -10
- data/examples/template/recipes/create.rb +0 -15
- data/examples/template/recipes/create_if_missing.rb +0 -15
- data/examples/template/recipes/delete.rb +0 -15
- data/examples/template/recipes/touch.rb +0 -15
- data/examples/template/spec/create_if_missing_spec.rb +0 -28
- data/examples/template/spec/create_spec.rb +0 -32
- data/examples/template/spec/delete_spec.rb +0 -19
- data/examples/template/spec/touch_spec.rb +0 -19
- data/examples/use_inline_resources/providers/lwrp.rb +0 -7
- data/examples/use_inline_resources/recipes/default.rb +0 -1
- data/examples/use_inline_resources/resources/lwrp.rb +0 -4
- data/examples/use_inline_resources/spec/default_spec.rb +0 -18
- data/examples/user/recipes/create.rb +0 -13
- data/examples/user/recipes/lock.rb +0 -13
- data/examples/user/recipes/manage.rb +0 -13
- data/examples/user/recipes/modify.rb +0 -13
- data/examples/user/recipes/remove.rb +0 -13
- data/examples/user/recipes/unlock.rb +0 -13
- data/examples/user/spec/create_spec.rb +0 -26
- data/examples/user/spec/lock_spec.rb +0 -22
- data/examples/user/spec/manage_spec.rb +0 -22
- data/examples/user/spec/modify_spec.rb +0 -22
- data/examples/user/spec/remove_spec.rb +0 -22
- data/examples/user/spec/unlock_spec.rb +0 -22
- data/examples/windows_package/recipes/install.rb +0 -13
- data/examples/windows_package/recipes/remove.rb +0 -13
- data/examples/windows_package/spec/install_spec.rb +0 -22
- data/examples/windows_package/spec/remove_spec.rb +0 -22
- data/examples/windows_service/recipes/configure_startup.rb +0 -13
- data/examples/windows_service/recipes/disable.rb +0 -13
- data/examples/windows_service/recipes/enable.rb +0 -13
- data/examples/windows_service/recipes/reload.rb +0 -13
- data/examples/windows_service/recipes/restart.rb +0 -13
- data/examples/windows_service/recipes/start.rb +0 -13
- data/examples/windows_service/recipes/stop.rb +0 -13
- data/examples/windows_service/spec/configure_startup_spec.rb +0 -22
- data/examples/windows_service/spec/disable_spec.rb +0 -22
- data/examples/windows_service/spec/enable_spec.rb +0 -22
- data/examples/windows_service/spec/reload_spec.rb +0 -22
- data/examples/windows_service/spec/restart_spec.rb +0 -22
- data/examples/windows_service/spec/start_spec.rb +0 -22
- data/examples/windows_service/spec/stop_spec.rb +0 -22
- data/examples/yum_package/recipes/install.rb +0 -13
- data/examples/yum_package/recipes/lock.rb +0 -13
- data/examples/yum_package/recipes/purge.rb +0 -13
- data/examples/yum_package/recipes/remove.rb +0 -13
- data/examples/yum_package/recipes/unlock.rb +0 -13
- data/examples/yum_package/recipes/upgrade.rb +0 -13
- data/examples/yum_package/spec/install_spec.rb +0 -26
- data/examples/yum_package/spec/lock_spec.rb +0 -22
- data/examples/yum_package/spec/purge_spec.rb +0 -22
- data/examples/yum_package/spec/remove_spec.rb +0 -22
- data/examples/yum_package/spec/unlock_spec.rb +0 -22
- data/examples/yum_package/spec/upgrade_spec.rb +0 -22
- data/examples/yum_repository/recipes/add.rb +0 -8
- data/examples/yum_repository/recipes/create.rb +0 -8
- data/examples/yum_repository/recipes/delete.rb +0 -3
- data/examples/yum_repository/recipes/makecache.rb +0 -3
- data/examples/yum_repository/recipes/remove.rb +0 -7
- data/examples/yum_repository/spec/add_spec.rb +0 -12
- data/examples/yum_repository/spec/create_spec.rb +0 -17
- data/examples/yum_repository/spec/delete_spec.rb +0 -12
- data/examples/yum_repository/spec/makecache_spec.rb +0 -12
- data/examples/yum_repository/spec/remove_spec.rb +0 -12
- data/examples/zypper_package/recipes/install.rb +0 -13
- data/examples/zypper_package/recipes/lock.rb +0 -13
- data/examples/zypper_package/recipes/purge.rb +0 -13
- data/examples/zypper_package/recipes/remove.rb +0 -13
- data/examples/zypper_package/recipes/unlock.rb +0 -13
- data/examples/zypper_package/recipes/upgrade.rb +0 -13
- data/examples/zypper_package/spec/install_spec.rb +0 -23
- data/examples/zypper_package/spec/lock_spec.rb +0 -19
- data/examples/zypper_package/spec/purge_spec.rb +0 -19
- data/examples/zypper_package/spec/remove_spec.rb +0 -19
- data/examples/zypper_package/spec/unlock_spec.rb +0 -19
- data/examples/zypper_package/spec/upgrade_spec.rb +0 -19
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 96c39db8c598b7a40e7fd080c65db3a073a1e8e95f59a2628682587e5de4db56
|
|
4
|
+
data.tar.gz: a0bc37df1322446f83af4488fa1def9124d821478c0364a40fcce138c10f63cf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 354c875c5eb0890aea76c9bb7593dfec11d122157c42ca79842ff8a4264766e6a230fb57a14dfdd6c87887e7c4ba147ee388465e5c2b1fa782ed77a912145844
|
|
7
|
+
data.tar.gz: 64ff73a7906b1e4ba085a9d5d9182903de2965c9ea4c979ad95363b45677d083868e0f64c30c2637ee7beed85333d309cbe42c26024c6fc7fddc0f6b3b08861d
|
data/Rakefile
CHANGED
|
@@ -21,48 +21,51 @@ failed = []
|
|
|
21
21
|
start_time = nil
|
|
22
22
|
|
|
23
23
|
namespace :acceptance do |ns|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
begin
|
|
25
|
+
Dir.foreach("examples") do |dir|
|
|
26
|
+
next if %w(. .. .DS_Store).include?(dir)
|
|
27
|
+
desc "#{dir} acceptance tests"
|
|
28
|
+
task dir.to_sym do
|
|
29
|
+
start_time ||= Time.now
|
|
30
|
+
Dir.mktmpdir do |tmp|
|
|
31
|
+
FileUtils.cp_r("examples/#{dir}", tmp)
|
|
31
32
|
|
|
32
|
-
|
|
33
|
+
pwd = Dir.pwd
|
|
33
34
|
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
Dir.chdir "#{tmp}/#{dir}" do
|
|
36
|
+
puts "rspec examples/#{dir}"
|
|
36
37
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
#
|
|
39
|
+
# This bit of mildly awful magic below is to load each file into an in-memory
|
|
40
|
+
# RSpec runner while keeping a persistent ChefZero server alive.
|
|
41
|
+
#
|
|
42
|
+
load "#{pwd}/lib/chefspec/rspec.rb"
|
|
42
43
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
RSpec.configure do |config|
|
|
45
|
+
config.color = true
|
|
46
|
+
config.run_all_when_everything_filtered = true
|
|
47
|
+
config.filter_run(:focus)
|
|
48
|
+
config.before(:suite) do
|
|
49
|
+
ChefSpec::ZeroServer.setup!
|
|
50
|
+
end
|
|
51
|
+
config.after(:each) do
|
|
52
|
+
ChefSpec::ZeroServer.reset!
|
|
53
|
+
end
|
|
49
54
|
end
|
|
50
|
-
config.after(:each) do
|
|
51
|
-
ChefSpec::ZeroServer.reset!
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
55
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
RSpec.clear_examples
|
|
57
|
+
exitstatus = RSpec::Core::Runner.run(["spec"])
|
|
58
|
+
RSpec.reset
|
|
59
|
+
failed << dir unless exitstatus == 0
|
|
60
|
+
end
|
|
59
61
|
end
|
|
60
62
|
end
|
|
61
63
|
end
|
|
64
|
+
rescue Errno::ENOENT # examples dir is probably missing
|
|
65
|
+
puts "The rake acceptance tests require a full git checkout of chefspec including all examples files!"
|
|
62
66
|
end
|
|
63
67
|
end
|
|
64
68
|
|
|
65
|
-
|
|
66
69
|
task acceptance: Rake.application.tasks.select { |t| t.name.start_with?("acceptance:") } do
|
|
67
70
|
puts "Acceptance tests took #{Time.now - start_time} seconds"
|
|
68
71
|
raise "some tests failed: #{failed.join(', ')}" unless failed.empty?
|
data/chefspec.gemspec
CHANGED
|
@@ -14,18 +14,17 @@ Gem::Specification.new do |s|
|
|
|
14
14
|
'ChefSpec makes it easy to write examples and get fast ' \
|
|
15
15
|
'feedback on cookbook changes without the need for ' \
|
|
16
16
|
'virtual machines or cloud servers.'
|
|
17
|
-
s.homepage = 'https://
|
|
17
|
+
s.homepage = 'https://github.com/chefspec/chefspec'
|
|
18
18
|
s.license = 'MIT'
|
|
19
19
|
|
|
20
20
|
# Packaging
|
|
21
|
-
s.files =
|
|
22
|
-
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
23
|
-
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
|
21
|
+
s.files = %w{LICENSE Rakefile Gemfile chefspec.gemspec} + Dir.glob("{lib,templates,spec}/**/*", File::FNM_DOTMATCH).reject { |f| File.directory?(f) }
|
|
24
22
|
s.require_paths = ['lib']
|
|
25
23
|
|
|
26
|
-
s.required_ruby_version = '>= 2.
|
|
24
|
+
s.required_ruby_version = '>= 2.4'
|
|
27
25
|
|
|
28
|
-
s.add_dependency 'chef', '>=
|
|
29
|
-
s.add_dependency '
|
|
26
|
+
s.add_dependency 'chef', '>= 14'
|
|
27
|
+
s.add_dependency 'chef-cli'
|
|
28
|
+
s.add_dependency 'fauxhai-ng', '>= 7.5'
|
|
30
29
|
s.add_dependency 'rspec', '~> 3.0'
|
|
31
30
|
end
|
data/lib/chefspec/api/core.rb
CHANGED
|
@@ -14,27 +14,33 @@ module ChefSpec
|
|
|
14
14
|
# Only run the preload if a platform is configured via the new system
|
|
15
15
|
# since otherwise it will spam warnings about the platform not being
|
|
16
16
|
# set.
|
|
17
|
-
|
|
17
|
+
chef_runner_instance.preload! if chefspec_platform
|
|
18
18
|
ex.run
|
|
19
19
|
ensure
|
|
20
20
|
$CHEFSPEC_MODE = old_chefspec_mode
|
|
21
21
|
end
|
|
22
22
|
end
|
|
23
23
|
|
|
24
|
-
# Let variables to set
|
|
24
|
+
# Let variables to set data in a scoped way. Used below by
|
|
25
25
|
# {ClassMethods#platform}.
|
|
26
|
+
let(:chefspec_default_attributes) { chefspec_attributes(:default_attributes) }
|
|
27
|
+
let(:chefspec_normal_attributes) { chefspec_attributes(:normal_attributes) }
|
|
28
|
+
let(:chefspec_override_attributes) { chefspec_attributes(:override_attributes) }
|
|
29
|
+
let(:chefspec_automatic_attributes) { chefspec_attributes(:automatic_attributes) }
|
|
26
30
|
let(:chefspec_platform) { nil }
|
|
27
31
|
let(:chefspec_platform_version) { nil }
|
|
28
32
|
|
|
29
|
-
#
|
|
30
|
-
#
|
|
31
|
-
|
|
33
|
+
# Compute the options for the runner.
|
|
34
|
+
#
|
|
35
|
+
# @abstract
|
|
36
|
+
# @return [Hash<Symbol, Object>]
|
|
37
|
+
def chef_runner_options
|
|
32
38
|
options = {
|
|
33
39
|
step_into: chefspec_ancestor_gather([], :step_into) {|memo, val| memo | val },
|
|
34
|
-
default_attributes:
|
|
35
|
-
normal_attributes:
|
|
36
|
-
override_attributes:
|
|
37
|
-
automatic_attributes:
|
|
40
|
+
default_attributes: chefspec_default_attributes,
|
|
41
|
+
normal_attributes: chefspec_normal_attributes,
|
|
42
|
+
override_attributes: chefspec_override_attributes,
|
|
43
|
+
automatic_attributes: chefspec_automatic_attributes,
|
|
38
44
|
spec_declaration_locations: self.class.declaration_locations.last[0],
|
|
39
45
|
}
|
|
40
46
|
# Only specify these if set in the example so we don't override the
|
|
@@ -43,16 +49,32 @@ module ChefSpec
|
|
|
43
49
|
options[:version] = chefspec_platform_version if chefspec_platform_version
|
|
44
50
|
# Merge in any final overrides.
|
|
45
51
|
options.update(chefspec_attributes(:chefspec_options).symbolize_keys)
|
|
46
|
-
|
|
47
|
-
# because someone will complain.
|
|
48
|
-
ChefSpec::SoloRunner.new(options)
|
|
52
|
+
options
|
|
49
53
|
end
|
|
50
54
|
|
|
51
|
-
#
|
|
52
|
-
|
|
53
|
-
|
|
55
|
+
# Class of runner to use.
|
|
56
|
+
#
|
|
57
|
+
# @abstract
|
|
58
|
+
# @return [Class]
|
|
59
|
+
def chef_runner_class
|
|
60
|
+
ChefSpec::SoloRunner
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Create an instance of the runner.
|
|
64
|
+
#
|
|
65
|
+
# This should only be used in cases where the `let()` cache would be a problem.
|
|
66
|
+
#
|
|
67
|
+
# @return [ChefSpec::SoloRunner]
|
|
68
|
+
def chef_runner_instance
|
|
69
|
+
chef_runner_class.new(chef_runner_options)
|
|
54
70
|
end
|
|
55
71
|
|
|
72
|
+
# Set up the runner object but don't actually run anything yet.
|
|
73
|
+
let(:chef_runner) { chef_runner_instance }
|
|
74
|
+
|
|
75
|
+
# By default, run the recipe in the base `describe` block.
|
|
76
|
+
let(:chef_run) { chef_runner.converge(described_recipe) }
|
|
77
|
+
|
|
56
78
|
# Helper method for some of the nestable test value methods like
|
|
57
79
|
# {ClassMethods#default_attributes} and {ClassMethods#step_into}.
|
|
58
80
|
#
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module ChefSpec
|
|
2
|
+
module API
|
|
3
|
+
module IncludeAnyRecipe
|
|
4
|
+
#
|
|
5
|
+
# Assert that a Chef run includes any recipe.
|
|
6
|
+
#
|
|
7
|
+
# include_recipe 'apache2::default'
|
|
8
|
+
#
|
|
9
|
+
# The Examples section demonstrates the different ways to test an
|
|
10
|
+
# +include_any_recipe+ directive with ChefSpec.
|
|
11
|
+
#
|
|
12
|
+
# @example Assert the Chef run did not include any recipes
|
|
13
|
+
# expect(chef_run).not_to include_any_recipe
|
|
14
|
+
#
|
|
15
|
+
#
|
|
16
|
+
# @return [ChefSpec::Matchers::IncludeAnyRecipeMatcher]
|
|
17
|
+
#
|
|
18
|
+
def include_any_recipe
|
|
19
|
+
ChefSpec::Matchers::IncludeAnyRecipeMatcher.new
|
|
20
|
+
end
|
|
21
|
+
alias_method :include_any_recipes, :include_any_recipe
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require "chef/version"
|
|
2
|
+
require "mixlib/shellout"
|
|
2
3
|
|
|
3
4
|
module ChefSpec
|
|
4
5
|
module API
|
|
@@ -34,7 +35,7 @@ module ChefSpec
|
|
|
34
35
|
before do
|
|
35
36
|
allow(StubsFor).to receive(:setup_stubs_for) do |object, type|
|
|
36
37
|
type_stubs = _chefspec_stubs_for_registry[type]
|
|
37
|
-
resource_object = object.
|
|
38
|
+
resource_object = object.respond_to?(:new_resource) ? object.new_resource : object
|
|
38
39
|
stubs = type_stubs[nil] + type_stubs[resource_object.resource_name.to_s] + type_stubs[resource_object.to_s]
|
|
39
40
|
stubs.each do |stub|
|
|
40
41
|
instance_exec(object, &stub)
|
|
@@ -86,7 +87,7 @@ module ChefSpec
|
|
|
86
87
|
def receive_shell_out(*cmd, stdout: '', stderr: '', exitstatus: 0, **opts)
|
|
87
88
|
# Ruby does not allow constructing an actual exitstatus object from Ruby code. Really.
|
|
88
89
|
fake_exitstatus = double(exitstatus: exitstatus)
|
|
89
|
-
fake_cmd = Mixlib::ShellOut.new(*cmd
|
|
90
|
+
fake_cmd = Mixlib::ShellOut.new(*cmd)
|
|
90
91
|
fake_cmd.define_singleton_method(:run_command) { } # Do nothing, just in case.
|
|
91
92
|
# Inject our canned data.
|
|
92
93
|
fake_cmd.instance_exec do
|
|
@@ -100,7 +101,8 @@ module ChefSpec
|
|
|
100
101
|
else
|
|
101
102
|
:shell_out
|
|
102
103
|
end
|
|
103
|
-
|
|
104
|
+
with_args = cmd + (opts.empty? ? [any_args] : [hash_including(opts)])
|
|
105
|
+
receive(shell_out_method).with(*with_args).and_return(fake_cmd)
|
|
104
106
|
end
|
|
105
107
|
|
|
106
108
|
module ClassMethods
|
data/lib/chefspec/api.rb
CHANGED
|
@@ -3,6 +3,7 @@ module ChefSpec
|
|
|
3
3
|
autoload :Core, 'chefspec/api/core'
|
|
4
4
|
autoload :Described, 'chefspec/api/described'
|
|
5
5
|
autoload :DoNothing, 'chefspec/api/do_nothing'
|
|
6
|
+
autoload :IncludeAnyRecipe, 'chefspec/api/include_any_recipe'
|
|
6
7
|
autoload :IncludeRecipe, 'chefspec/api/include_recipe'
|
|
7
8
|
autoload :Link, 'chefspec/api/link'
|
|
8
9
|
autoload :Notifications, 'chefspec/api/notifications'
|
|
@@ -19,6 +20,7 @@ module ChefSpec
|
|
|
19
20
|
klass.include(ChefSpec::API::Core)
|
|
20
21
|
klass.include(ChefSpec::API::Described)
|
|
21
22
|
klass.include(ChefSpec::API::DoNothing)
|
|
23
|
+
klass.include(ChefSpec::API::IncludeAnyRecipe)
|
|
22
24
|
klass.include(ChefSpec::API::IncludeRecipe)
|
|
23
25
|
klass.include(ChefSpec::API::DoNothing)
|
|
24
26
|
klass.include(ChefSpec::API::RenderFile)
|
|
Binary file
|
|
Binary file
|
|
@@ -25,7 +25,7 @@ Chef::Cookbook::GemInstaller.prepend(Module.new do
|
|
|
25
25
|
gem_cmd = "gem install #{gem_name} --version '#{gem_requirements.join(', ')}'"
|
|
26
26
|
gemfile_line = "gem '#{[gem_name, *gem_requirements].join('\', \'')}'"
|
|
27
27
|
warn "No matching version found for '#{gem_name}' in your gem environment.\n" \
|
|
28
|
-
" - if you are using
|
|
28
|
+
" - if you are using Chef Workstation, run the following command: \"chef #{gem_cmd}\"\n" \
|
|
29
29
|
" - if you are using bundler, append \"#{gemfile_line}\" to your Gemfile and run \"bundle install\"\n" \
|
|
30
30
|
" - otherwise run: \"#{gem_cmd}\""
|
|
31
31
|
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
module ChefSpec::Matchers
|
|
2
|
+
class IncludeAnyRecipeMatcher
|
|
3
|
+
def matches?(runner)
|
|
4
|
+
@runner = runner
|
|
5
|
+
!(loaded_recipes - run_list_recipes).empty?
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def description
|
|
9
|
+
'include any recipe'
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def failure_message
|
|
13
|
+
'expected to include any recipe'
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def failure_message_when_negated
|
|
17
|
+
'expected not to include any recipes'
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
#
|
|
23
|
+
# The list of run_list recipes on the Chef run (normalized)
|
|
24
|
+
#
|
|
25
|
+
# @return [Array<String>]
|
|
26
|
+
#
|
|
27
|
+
def run_list_recipes
|
|
28
|
+
@runner.run_context.node.run_list.run_list_items.map { |x| with_default(x.name) }
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
#
|
|
32
|
+
# Automatically appends "+::default+" to recipes that need them.
|
|
33
|
+
#
|
|
34
|
+
# @param [String] name
|
|
35
|
+
#
|
|
36
|
+
# @return [String]
|
|
37
|
+
#
|
|
38
|
+
def with_default(name)
|
|
39
|
+
name.include?('::') ? name : "#{name}::default"
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
#
|
|
43
|
+
# The list of loaded recipes on the Chef run (normalized)
|
|
44
|
+
#
|
|
45
|
+
# @return [Array<String>]
|
|
46
|
+
#
|
|
47
|
+
def loaded_recipes
|
|
48
|
+
@runner.run_context.loaded_recipes.map { |name| with_default(name) }
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
data/lib/chefspec/matchers.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
module ChefSpec
|
|
2
2
|
module Matchers
|
|
3
3
|
require_relative 'matchers/do_nothing_matcher'
|
|
4
|
+
require_relative 'matchers/include_any_recipe_matcher'
|
|
4
5
|
require_relative 'matchers/include_recipe_matcher'
|
|
5
6
|
require_relative 'matchers/link_to_matcher'
|
|
6
7
|
require_relative 'matchers/notifications_matcher'
|
data/lib/chefspec/policyfile.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
begin
|
|
2
|
-
require 'chef-
|
|
3
|
-
require 'chef-
|
|
2
|
+
require 'chef-cli/policyfile_services/export_repo'
|
|
3
|
+
require 'chef-cli/policyfile_services/install'
|
|
4
4
|
rescue LoadError
|
|
5
|
-
raise ChefSpec::Error::GemLoadError.new(gem: 'chef-
|
|
5
|
+
raise ChefSpec::Error::GemLoadError.new(gem: 'chef-cli', name: 'ChefCLI')
|
|
6
6
|
end
|
|
7
7
|
|
|
8
8
|
module ChefSpec
|
|
@@ -22,16 +22,19 @@ module ChefSpec
|
|
|
22
22
|
# Setup and install the necessary dependencies in the temporary directory
|
|
23
23
|
#
|
|
24
24
|
def setup!
|
|
25
|
-
policyfile_path =
|
|
25
|
+
policyfile_path = RSpec.configuration.policyfile_path
|
|
26
|
+
if policyfile_path.nil?
|
|
27
|
+
policyfile_path = File.join(Dir.pwd, 'Policyfile.rb')
|
|
28
|
+
end
|
|
26
29
|
|
|
27
|
-
installer =
|
|
30
|
+
installer = ChefCLI::PolicyfileServices::Install.new(
|
|
28
31
|
policyfile: policyfile_path,
|
|
29
|
-
ui:
|
|
32
|
+
ui: ChefCLI::UI.null
|
|
30
33
|
)
|
|
31
34
|
|
|
32
35
|
installer.run
|
|
33
36
|
|
|
34
|
-
exporter =
|
|
37
|
+
exporter = ChefCLI::PolicyfileServices::ExportRepo.new(
|
|
35
38
|
policyfile: policyfile_path,
|
|
36
39
|
export_dir: @tmpdir
|
|
37
40
|
)
|
data/lib/chefspec/rspec.rb
CHANGED
data/lib/chefspec/runner.rb
CHANGED
data/lib/chefspec/version.rb
CHANGED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe ChefSpec::Matchers::IncludeAnyRecipeMatcher do
|
|
4
|
+
let(:node) { double('Chef::Node', run_list: run_list) }
|
|
5
|
+
let(:run_list) { double('Chef::RunList', run_list_items: run_list_items) }
|
|
6
|
+
let(:run_list_items) { [run_list_item_one] }
|
|
7
|
+
let(:run_list_item_one) { double('Chef::RunList::RunListItem', name: 'one') }
|
|
8
|
+
let(:run_list_item_two) { double('Chef::RunList::RunListItem', name: 'two') }
|
|
9
|
+
let(:loaded_recipes) { %w(one) }
|
|
10
|
+
let(:chef_run) { double('chef run', run_context: { loaded_recipes: loaded_recipes, node: node }) }
|
|
11
|
+
|
|
12
|
+
subject { described_class.new }
|
|
13
|
+
|
|
14
|
+
describe '#failure_message' do
|
|
15
|
+
it 'has the right value' do
|
|
16
|
+
subject.matches?(chef_run)
|
|
17
|
+
expect(subject.failure_message).to eq('expected to include any recipe')
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe '#failure_message_when_negated' do
|
|
22
|
+
it 'has the right value' do
|
|
23
|
+
subject.matches?(chef_run)
|
|
24
|
+
expect(subject.failure_message_when_negated).to eq('expected not to include any recipes')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe '#description' do
|
|
29
|
+
it 'has the right value' do
|
|
30
|
+
subject.matches?(chef_run)
|
|
31
|
+
expect(subject.description).to eq('include any recipe')
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe '#matches?' do
|
|
36
|
+
context 'when 0 recipes are included' do
|
|
37
|
+
let(:loaded_recipes) { %w(one) }
|
|
38
|
+
|
|
39
|
+
it 'returns false' do
|
|
40
|
+
expect(subject.matches?(chef_run)).to be false
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
context 'when at least one recipe is included' do
|
|
45
|
+
let(:loaded_recipes) { %w(one two) }
|
|
46
|
+
|
|
47
|
+
it 'returns true' do
|
|
48
|
+
expect(subject.matches?(chef_run)).to be true
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|