chefspec 7.0.0 → 9.3.8
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 +5 -5
- data/Gemfile +28 -10
- data/Rakefile +74 -18
- data/chefspec.gemspec +26 -28
- data/lib/chefspec/api/core.rb +217 -0
- data/lib/chefspec/api/described.rb +53 -0
- data/lib/chefspec/api/do_nothing.rb +23 -21
- data/lib/chefspec/api/include_any_recipe.rb +24 -0
- data/lib/chefspec/api/include_recipe.rb +25 -23
- data/lib/chefspec/api/link.rb +24 -98
- data/lib/chefspec/api/notifications.rb +37 -35
- data/lib/chefspec/api/reboot.rb +9 -13
- data/lib/chefspec/api/render_file.rb +34 -32
- data/lib/chefspec/api/state_attrs.rb +27 -25
- data/lib/chefspec/api/stubs.rb +183 -0
- data/lib/chefspec/api/stubs_for.rb +139 -0
- data/lib/chefspec/api/subscriptions.rb +34 -32
- data/lib/chefspec/api/user.rb +221 -219
- data/lib/chefspec/api.rb +32 -89
- data/lib/chefspec/berkshelf.rb +5 -5
- data/lib/chefspec/cacher.rb +2 -2
- data/lib/chefspec/coverage/filters.rb +18 -15
- data/lib/chefspec/coverage.rb +36 -40
- data/lib/chefspec/deprecations.rb +5 -14
- data/lib/chefspec/errors.rb +8 -7
- data/lib/chefspec/expect_exception.rb +2 -1
- data/lib/chefspec/extensions/chef/client.rb +6 -7
- data/lib/chefspec/extensions/chef/conditional.rb +5 -3
- data/lib/chefspec/extensions/chef/cookbook/gem_installer.rb +33 -0
- data/lib/chefspec/extensions/chef/cookbook_loader.rb +14 -0
- data/lib/chefspec/extensions/chef/cookbook_uploader.rb +4 -3
- data/lib/chefspec/extensions/chef/data_query.rb +8 -11
- data/lib/chefspec/extensions/chef/lwrp_base.rb +18 -21
- data/lib/chefspec/extensions/chef/provider.rb +39 -0
- data/lib/chefspec/extensions/chef/resource/freebsd_package.rb +15 -17
- data/lib/chefspec/extensions/chef/resource.rb +148 -9
- data/lib/chefspec/extensions/chef/run_context/cookbook_compiler.rb +84 -0
- data/lib/chefspec/extensions/chef/securable.rb +1 -1
- data/lib/chefspec/extensions/ohai/system.rb +11 -0
- data/lib/chefspec/extensions.rb +21 -0
- data/lib/chefspec/file_cache_path_proxy.rb +3 -3
- data/lib/chefspec/formatter.rb +15 -3
- data/lib/chefspec/librarian.rb +7 -6
- data/lib/chefspec/matchers/do_nothing_matcher.rb +15 -15
- data/lib/chefspec/matchers/include_any_recipe_matcher.rb +51 -0
- data/lib/chefspec/matchers/include_recipe_matcher.rb +1 -1
- data/lib/chefspec/matchers/link_to_matcher.rb +2 -2
- data/lib/chefspec/matchers/notifications_matcher.rb +5 -4
- data/lib/chefspec/matchers/render_file_matcher.rb +39 -29
- data/lib/chefspec/matchers/resource_matcher.rb +19 -17
- data/lib/chefspec/matchers.rb +9 -8
- data/lib/chefspec/mixins/normalize.rb +1 -1
- data/lib/chefspec/policyfile.rb +16 -9
- data/lib/chefspec/renderer.rb +4 -4
- data/lib/chefspec/rspec.rb +4 -8
- data/lib/chefspec/runner.rb +8 -0
- data/lib/chefspec/server.rb +1 -1
- data/lib/chefspec/server_methods.rb +9 -9
- data/lib/chefspec/server_runner.rb +21 -17
- data/lib/chefspec/solo_runner.rb +148 -42
- data/lib/chefspec/stubs/command_registry.rb +1 -1
- data/lib/chefspec/stubs/command_stub.rb +1 -1
- data/lib/chefspec/stubs/data_bag_item_registry.rb +1 -1
- data/lib/chefspec/stubs/data_bag_item_stub.rb +1 -1
- data/lib/chefspec/stubs/data_bag_registry.rb +1 -1
- data/lib/chefspec/stubs/data_bag_stub.rb +1 -1
- data/lib/chefspec/stubs/registry.rb +1 -1
- data/lib/chefspec/stubs/search_registry.rb +2 -2
- data/lib/chefspec/stubs/search_stub.rb +2 -2
- data/lib/chefspec/util.rb +7 -7
- data/lib/chefspec/version.rb +1 -1
- data/lib/chefspec/zero_server.rb +23 -21
- data/lib/chefspec.rb +29 -36
- data/spec/spec_helper.rb +3 -4
- data/spec/support/hash.rb +4 -4
- data/spec/unit/cacher_spec.rb +17 -17
- data/spec/unit/coverage/filters_spec.rb +16 -16
- data/spec/unit/deprecations_spec.rb +9 -35
- data/spec/unit/errors_spec.rb +15 -15
- data/spec/unit/expect_exception_spec.rb +9 -9
- data/spec/unit/macros_spec.rb +57 -57
- data/spec/unit/matchers/do_nothing_matcher.rb +1 -1
- data/spec/unit/matchers/include_any_recipe_matcher_spec.rb +52 -0
- data/spec/unit/matchers/include_recipe_matcher_spec.rb +15 -15
- data/spec/unit/matchers/link_to_matcher_spec.rb +18 -18
- data/spec/unit/matchers/notifications_matcher_spec.rb +15 -16
- data/spec/unit/matchers/render_file_matcher_spec.rb +31 -24
- data/spec/unit/matchers/resource_matcher_spec.rb +1 -1
- data/spec/unit/matchers/state_attrs_matcher_spec.rb +24 -24
- data/spec/unit/matchers/subscribes_matcher_spec.rb +27 -29
- data/spec/unit/renderer_spec.rb +36 -36
- data/spec/unit/server_runner_spec.rb +6 -6
- data/spec/unit/solo_runner_spec.rb +70 -70
- data/spec/unit/stubs/command_registry_spec.rb +11 -11
- data/spec/unit/stubs/command_stub_spec.rb +26 -26
- data/spec/unit/stubs/data_bag_item_registry_spec.rb +17 -17
- data/spec/unit/stubs/data_bag_item_stub_spec.rb +14 -14
- data/spec/unit/stubs/data_bag_registry_spec.rb +16 -16
- data/spec/unit/stubs/data_bag_stub_spec.rb +13 -13
- data/spec/unit/stubs/registry_spec.rb +9 -9
- data/spec/unit/stubs/search_registry_spec.rb +17 -17
- data/spec/unit/stubs/search_stub_spec.rb +14 -14
- data/spec/unit/stubs/stub_spec.rb +22 -22
- data/templates/errors/may_need_to_specify_platform.erb +3 -3
- data/templates/errors/shell_out_not_stubbed.erb +10 -0
- metadata +47 -902
- data/.gitignore +0 -16
- data/.travis.yml +0 -32
- data/CHANGELOG.md +0 -777
- data/CONTRIBUTING.md +0 -52
- data/ISSUES.md +0 -41
- data/README.md +0 -1230
- data/examples/apt_package/recipes/install.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/upgrade.rb +0 -13
- data/examples/apt_package/spec/install_spec.rb +0 -26
- 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/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 -26
- data/examples/cab_package/spec/remove_spec.rb +0 -22
- data/examples/cached/recipes/default.rb +0 -1
- data/examples/cached/spec/default_spec.rb +0 -13
- 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 -27
- 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/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 -23
- 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/libraries/matchers.rb +0 -5
- 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/deploy/recipes/deploy.rb +0 -10
- data/examples/deploy/recipes/force_deploy.rb +0 -9
- data/examples/deploy/recipes/rollback.rb +0 -9
- data/examples/deploy/spec/deploy_spec.rb +0 -15
- data/examples/deploy/spec/force_deploy_spec.rb +0 -15
- data/examples/deploy/spec/rollback_spec.rb +0 -15
- 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 -26
- data/examples/dnf_package/spec/purge_spec.rb +0 -22
- data/examples/dnf_package/spec/remove_spec.rb +0 -22
- data/examples/dnf_package/spec/upgrade_spec.rb +0 -22
- 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/erl_call/recipes/run.rb +0 -13
- data/examples/erl_call/spec/run_spec.rb +0 -23
- 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 -7
- 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/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 -14
- 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 -26
- data/examples/msu_package/spec/remove_spec.rb +0 -22
- 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/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/purge.rb +0 -17
- data/examples/package/recipes/reconfig.rb +0 -17
- data/examples/package/recipes/remove.rb +0 -17
- data/examples/package/recipes/upgrade.rb +0 -17
- data/examples/package/spec/install_spec.rb +0 -27
- 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/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/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 -155
- 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/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 -17
- 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/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/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/libraries/matchers.rb +0 -5
- 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/purge.rb +0 -13
- data/examples/yum_package/recipes/remove.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/purge_spec.rb +0 -22
- data/examples/yum_package/spec/remove_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/purge.rb +0 -13
- data/examples/zypper_package/recipes/remove.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/purge_spec.rb +0 -19
- data/examples/zypper_package/spec/remove_spec.rb +0 -19
- data/examples/zypper_package/spec/upgrade_spec.rb +0 -19
- data/features/apt_package.feature +0 -14
- data/features/apt_repository.feature +0 -15
- data/features/apt_update.feature +0 -13
- data/features/attributes.feature +0 -7
- data/features/batch.feature +0 -10
- data/features/bff_package.feature +0 -12
- data/features/cab_package.feature +0 -21
- data/features/cached.feature +0 -7
- data/features/chef_gem.feature +0 -14
- data/features/chocolatey_package.feature +0 -14
- data/features/compile_time.feature +0 -7
- data/features/cookbook_file.feature +0 -13
- data/features/cron.feature +0 -11
- data/features/custom_matcher.feature +0 -11
- data/features/custom_resource.feature +0 -7
- data/features/deploy.feature +0 -12
- data/features/directory.feature +0 -11
- data/features/dnf_package.feature +0 -26
- data/features/do_nothing.feature +0 -10
- data/features/dpkg_package.feature +0 -12
- data/features/dsc_resource.feature +0 -10
- data/features/dsc_script.feature +0 -10
- data/features/env.feature +0 -12
- data/features/erl_call.feature +0 -10
- data/features/execute.feature +0 -10
- data/features/exotic_zero_port.feature +0 -7
- data/features/expect_exception.feature +0 -12
- data/features/file.feature +0 -13
- data/features/freebsd_package.feature +0 -11
- data/features/gem_package.feature +0 -14
- data/features/git.feature +0 -12
- data/features/group.feature +0 -13
- data/features/guards.feature +0 -10
- data/features/heavy_provider_light_resource.feature +0 -10
- data/features/homebrew_package.feature +0 -12
- data/features/http_request.feature +0 -15
- data/features/ifconfig.feature +0 -13
- data/features/include_recipe.feature +0 -10
- data/features/ips_package.feature +0 -12
- data/features/launchd.feature +0 -17
- data/features/link.feature +0 -12
- data/features/log.feature +0 -10
- data/features/macports_package.feature +0 -13
- data/features/mdadm.feature +0 -12
- data/features/mount.feature +0 -14
- data/features/msu_package.feature +0 -23
- data/features/multiple_actions.feature +0 -12
- data/features/multiple_run_action.feature +0 -7
- data/features/notifications.feature +0 -14
- data/features/ohai.feature +0 -10
- data/features/openbsd_package.feature +0 -12
- data/features/osx_profile.feature +0 -13
- data/features/package.feature +0 -14
- data/features/pacman_package.feature +0 -13
- data/features/paludis_package.feature +0 -12
- data/features/portage_package.feature +0 -13
- data/features/powershell_script.feature +0 -10
- data/features/reboot.feature +0 -12
- data/features/registry_key.feature +0 -13
- data/features/remote_directory.feature +0 -12
- data/features/remote_file.feature +0 -13
- data/features/render_file.feature +0 -11
- data/features/roles.feature +0 -7
- data/features/route.feature +0 -11
- data/features/rpm_package.feature +0 -12
- data/features/ruby_block.feature +0 -11
- data/features/script.feature +0 -16
- data/features/server.feature +0 -16
- data/features/server_on_disk.feature +0 -16
- data/features/service.feature +0 -15
- data/features/smartos_package.feature +0 -12
- data/features/solaris_package.feature +0 -12
- data/features/state_attrs.feature +0 -7
- data/features/step_definitions/background_steps.rb +0 -7
- data/features/step_into.feature +0 -7
- data/features/stub_command.feature +0 -7
- data/features/stub_data_bag.feature +0 -7
- data/features/stub_data_bag_item.feature +0 -7
- data/features/stub_node.feature +0 -7
- data/features/stub_search.feature +0 -7
- data/features/subscribes.feature +0 -14
- data/features/subversion.feature +0 -13
- data/features/support/env.rb +0 -38
- data/features/support/executor.rb +0 -20
- data/features/support/exotic_zero_port.rb +0 -3
- data/features/support/on_disk.rb +0 -7
- data/features/systemd_unit.feature +0 -27
- data/features/template.feature +0 -13
- data/features/use_inline_resources.feature +0 -7
- data/features/user.feature +0 -15
- data/features/windows_package.feature +0 -11
- data/features/windows_service.feature +0 -16
- data/features/yum_package.feature +0 -13
- data/features/yum_repository.feature +0 -23
- data/features/zypper_package.feature +0 -13
- data/lib/chefspec/api/apt_package.rb +0 -192
- data/lib/chefspec/api/apt_repository.rb +0 -56
- data/lib/chefspec/api/apt_update.rb +0 -53
- data/lib/chefspec/api/batch.rb +0 -43
- data/lib/chefspec/api/bff_package.rb +0 -154
- data/lib/chefspec/api/cab_package.rb +0 -80
- data/lib/chefspec/api/chef_gem.rb +0 -191
- data/lib/chefspec/api/chocolatey_package.rb +0 -107
- data/lib/chefspec/api/cookbook_file.rb +0 -166
- data/lib/chefspec/api/cron.rb +0 -80
- data/lib/chefspec/api/deploy.rb +0 -117
- data/lib/chefspec/api/directory.rb +0 -80
- data/lib/chefspec/api/dnf_package.rb +0 -154
- data/lib/chefspec/api/dpkg_package.rb +0 -117
- data/lib/chefspec/api/dsc_resource.rb +0 -49
- data/lib/chefspec/api/dsc_script.rb +0 -37
- data/lib/chefspec/api/easy_install_package.rb +0 -154
- data/lib/chefspec/api/env.rb +0 -117
- data/lib/chefspec/api/erl_call.rb +0 -43
- data/lib/chefspec/api/execute.rb +0 -43
- data/lib/chefspec/api/file.rb +0 -166
- data/lib/chefspec/api/freebsd_package.rb +0 -80
- data/lib/chefspec/api/gem_package.rb +0 -191
- data/lib/chefspec/api/git.rb +0 -117
- data/lib/chefspec/api/group.rb +0 -154
- data/lib/chefspec/api/homebrew_package.rb +0 -154
- data/lib/chefspec/api/http_request.rb +0 -228
- data/lib/chefspec/api/ifconfig.rb +0 -154
- data/lib/chefspec/api/ips_package.rb +0 -117
- data/lib/chefspec/api/launchd.rb +0 -151
- data/lib/chefspec/api/log.rb +0 -43
- data/lib/chefspec/api/macports_package.rb +0 -154
- data/lib/chefspec/api/mdadm.rb +0 -117
- data/lib/chefspec/api/mount.rb +0 -192
- data/lib/chefspec/api/msu_package.rb +0 -81
- data/lib/chefspec/api/ohai.rb +0 -43
- data/lib/chefspec/api/openbsd_package.rb +0 -155
- data/lib/chefspec/api/osx_profile.rb +0 -63
- data/lib/chefspec/api/package.rb +0 -192
- data/lib/chefspec/api/pacman_package.rb +0 -155
- data/lib/chefspec/api/paludis_package.rb +0 -155
- data/lib/chefspec/api/portage_package.rb +0 -155
- data/lib/chefspec/api/powershell_script.rb +0 -43
- data/lib/chefspec/api/registry_key.rb +0 -166
- data/lib/chefspec/api/remote_directory.rb +0 -120
- data/lib/chefspec/api/remote_file.rb +0 -166
- data/lib/chefspec/api/route.rb +0 -80
- data/lib/chefspec/api/rpm_package.rb +0 -117
- data/lib/chefspec/api/ruby_block.rb +0 -68
- data/lib/chefspec/api/script.rb +0 -278
- data/lib/chefspec/api/service.rb +0 -246
- data/lib/chefspec/api/smartos_package.rb +0 -117
- data/lib/chefspec/api/solaris_package.rb +0 -117
- data/lib/chefspec/api/subversion.rb +0 -154
- data/lib/chefspec/api/systemd_unit.rb +0 -353
- data/lib/chefspec/api/template.rb +0 -166
- data/lib/chefspec/api/windows_package.rb +0 -86
- data/lib/chefspec/api/windows_service.rb +0 -286
- data/lib/chefspec/api/yum_package.rb +0 -154
- data/lib/chefspec/api/yum_repository.rb +0 -130
- data/lib/chefspec/api/zypper_package.rb +0 -154
- data/lib/chefspec/macros.rb +0 -222
- data/spec/unit/api_spec.rb +0 -18
|
@@ -3,6 +3,7 @@ module ChefSpec::Matchers
|
|
|
3
3
|
attr_reader :expected_content
|
|
4
4
|
def initialize(path)
|
|
5
5
|
@path = path
|
|
6
|
+
@expected_content = []
|
|
6
7
|
end
|
|
7
8
|
|
|
8
9
|
def matches?(runner)
|
|
@@ -20,9 +21,9 @@ module ChefSpec::Matchers
|
|
|
20
21
|
if expected_content && block
|
|
21
22
|
raise ArgumentError, "Cannot specify expected content and a block!"
|
|
22
23
|
elsif expected_content
|
|
23
|
-
@expected_content
|
|
24
|
+
@expected_content << expected_content
|
|
24
25
|
elsif block_given?
|
|
25
|
-
@expected_content
|
|
26
|
+
@expected_content << block
|
|
26
27
|
else
|
|
27
28
|
raise ArgumentError, "Must specify expected content or a block!"
|
|
28
29
|
end
|
|
@@ -32,11 +33,11 @@ module ChefSpec::Matchers
|
|
|
32
33
|
|
|
33
34
|
def description
|
|
34
35
|
message = %Q{render file "#{@path}"}
|
|
35
|
-
|
|
36
|
-
if
|
|
36
|
+
@expected_content.each do |expected|
|
|
37
|
+
if expected.to_s.include?("\n")
|
|
37
38
|
message << " with content <suppressed>"
|
|
38
39
|
else
|
|
39
|
-
message << " with content #{
|
|
40
|
+
message << " with content #{expected.inspect}"
|
|
40
41
|
end
|
|
41
42
|
end
|
|
42
43
|
message
|
|
@@ -44,7 +45,7 @@ module ChefSpec::Matchers
|
|
|
44
45
|
|
|
45
46
|
def failure_message
|
|
46
47
|
message = %Q{expected Chef run to render "#{@path}"}
|
|
47
|
-
|
|
48
|
+
unless @expected_content.empty?
|
|
48
49
|
message << " matching:"
|
|
49
50
|
message << "\n\n"
|
|
50
51
|
message << expected_content_message
|
|
@@ -59,7 +60,7 @@ module ChefSpec::Matchers
|
|
|
59
60
|
|
|
60
61
|
def failure_message_when_negated
|
|
61
62
|
message = %Q{expected file "#{@path}"}
|
|
62
|
-
|
|
63
|
+
unless @expected_content.empty?
|
|
63
64
|
message << " matching:"
|
|
64
65
|
message << "\n\n"
|
|
65
66
|
message << expected_content_message
|
|
@@ -72,19 +73,22 @@ module ChefSpec::Matchers
|
|
|
72
73
|
private
|
|
73
74
|
|
|
74
75
|
def expected_content_message
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
messages = @expected_content.collect do |expected|
|
|
77
|
+
if RSpec::Matchers.is_a_matcher?(expected) && expected.respond_to?(:description)
|
|
78
|
+
expected.description
|
|
79
|
+
elsif expected.is_a?(Proc)
|
|
80
|
+
"(the result of a proc)"
|
|
81
|
+
else
|
|
82
|
+
expected.to_s
|
|
83
|
+
end
|
|
81
84
|
end
|
|
85
|
+
messages.join("\n\n")
|
|
82
86
|
end
|
|
83
87
|
|
|
84
88
|
def resource
|
|
85
89
|
@resource ||= @runner.find_resource(:cookbook_file, @path) ||
|
|
86
|
-
|
|
87
|
-
|
|
90
|
+
@runner.find_resource(:file, @path) ||
|
|
91
|
+
@runner.find_resource(:template, @path)
|
|
88
92
|
end
|
|
89
93
|
|
|
90
94
|
#
|
|
@@ -95,7 +99,7 @@ module ChefSpec::Matchers
|
|
|
95
99
|
# @return [true, false]
|
|
96
100
|
#
|
|
97
101
|
def has_create_action?
|
|
98
|
-
|
|
102
|
+
%i{create create_if_missing}.any? { |action| resource.performed_action?(action) }
|
|
99
103
|
end
|
|
100
104
|
|
|
101
105
|
#
|
|
@@ -106,25 +110,31 @@ module ChefSpec::Matchers
|
|
|
106
110
|
# @return [true, false]
|
|
107
111
|
#
|
|
108
112
|
def matches_content?
|
|
109
|
-
return true if @expected_content.
|
|
113
|
+
return true if @expected_content.empty?
|
|
110
114
|
|
|
111
115
|
@actual_content = ChefSpec::Renderer.new(@runner, resource).content
|
|
112
116
|
|
|
113
117
|
return false if @actual_content.nil?
|
|
114
118
|
|
|
115
|
-
if
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
119
|
+
# Knock out matches that pass. When we're done, we pass if the list is
|
|
120
|
+
# empty. Otherwise, @expected_content is the list of matchers that
|
|
121
|
+
# failed
|
|
122
|
+
@expected_content.delete_if do |expected|
|
|
123
|
+
if expected.is_a?(Regexp)
|
|
124
|
+
@actual_content =~ expected
|
|
125
|
+
elsif RSpec::Matchers.is_a_matcher?(expected)
|
|
126
|
+
expected.matches?(@actual_content)
|
|
127
|
+
elsif expected.is_a?(Proc)
|
|
128
|
+
expected.call(@actual_content)
|
|
129
|
+
# Weird RSpecish, but that block will return false for a negated check,
|
|
130
|
+
# so we always return true. The block will raise an exception if the
|
|
131
|
+
# assertion fails.
|
|
132
|
+
true
|
|
133
|
+
else
|
|
134
|
+
@actual_content.include?(expected)
|
|
135
|
+
end
|
|
127
136
|
end
|
|
137
|
+
@expected_content.empty?
|
|
128
138
|
end
|
|
129
139
|
end
|
|
130
140
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
1
|
+
require "rspec/matchers/expecteds_for_multiple_diffs"
|
|
2
|
+
require "rspec/expectations/fail_with"
|
|
3
3
|
|
|
4
4
|
module ChefSpec::Matchers
|
|
5
5
|
class ResourceMatcher
|
|
@@ -15,13 +15,15 @@ module ChefSpec::Matchers
|
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def at_compile_time
|
|
18
|
-
raise ArgumentError,
|
|
18
|
+
raise ArgumentError, "Cannot specify both .at_converge_time and .at_compile_time!" if @converge_time
|
|
19
|
+
|
|
19
20
|
@compile_time = true
|
|
20
21
|
self
|
|
21
22
|
end
|
|
22
23
|
|
|
23
24
|
def at_converge_time
|
|
24
|
-
raise ArgumentError,
|
|
25
|
+
raise ArgumentError, "Cannot specify both .at_compile_time and .at_converge_time!" if @compile_time
|
|
26
|
+
|
|
25
27
|
@converge_time = true
|
|
26
28
|
self
|
|
27
29
|
end
|
|
@@ -39,7 +41,7 @@ module ChefSpec::Matchers
|
|
|
39
41
|
end
|
|
40
42
|
|
|
41
43
|
def description
|
|
42
|
-
%Q{#{@
|
|
44
|
+
%Q{#{@expected_action} #{@resource_name} "#{@expected_identity}"}
|
|
43
45
|
end
|
|
44
46
|
|
|
45
47
|
def matches?(runner)
|
|
@@ -55,20 +57,20 @@ module ChefSpec::Matchers
|
|
|
55
57
|
if resource
|
|
56
58
|
if unmatched_parameters.empty?
|
|
57
59
|
if @compile_time
|
|
58
|
-
%Q{expected "#{resource
|
|
60
|
+
%Q{expected "#{resource}" to be run at compile time}
|
|
59
61
|
else
|
|
60
|
-
%Q{expected "#{resource
|
|
62
|
+
%Q{expected "#{resource}" to be run at converge time}
|
|
61
63
|
end
|
|
62
64
|
else
|
|
63
|
-
message = %Q{expected "#{resource
|
|
65
|
+
message = %Q{expected "#{resource}" to have parameters:} \
|
|
64
66
|
"\n\n" \
|
|
65
67
|
" " + unmatched_parameters.collect { |parameter, h|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
msg = "#{parameter} #{h[:expected].inspect}, was #{h[:actual].inspect}"
|
|
69
|
+
diff = ::RSpec::Matchers::ExpectedsForMultipleDiffs.from(h[:expected]) \
|
|
70
|
+
.message_with_diff(message, ::RSpec::Expectations.differ, h[:actual])
|
|
71
|
+
msg += diff if diff
|
|
72
|
+
msg
|
|
73
|
+
}.join("\n ")
|
|
72
74
|
end
|
|
73
75
|
else
|
|
74
76
|
%Q{expected "#{@resource_name}[#{@expected_identity}]"} \
|
|
@@ -81,9 +83,9 @@ module ChefSpec::Matchers
|
|
|
81
83
|
|
|
82
84
|
def failure_message_when_negated
|
|
83
85
|
if resource
|
|
84
|
-
message = %Q{expected "#{resource
|
|
86
|
+
message = %Q{expected "#{resource}" actions #{resource.performed_actions.inspect} to not exist}
|
|
85
87
|
else
|
|
86
|
-
message = %Q{expected "#{resource
|
|
88
|
+
message = %Q{expected "#{resource}" to not exist}
|
|
87
89
|
end
|
|
88
90
|
|
|
89
91
|
message << " at compile time" if @compile_time
|
|
@@ -115,7 +117,7 @@ module ChefSpec::Matchers
|
|
|
115
117
|
if parameter == :source
|
|
116
118
|
# Chef 11+ stores the source parameter internally as an Array
|
|
117
119
|
Array(expected) == Array(value)
|
|
118
|
-
elsif expected.
|
|
120
|
+
elsif expected.is_a?(Class)
|
|
119
121
|
# Ruby can't compare classes with ===
|
|
120
122
|
expected == value
|
|
121
123
|
else
|
data/lib/chefspec/matchers.rb
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
module ChefSpec
|
|
2
2
|
module Matchers
|
|
3
|
-
require_relative
|
|
4
|
-
require_relative
|
|
5
|
-
require_relative
|
|
6
|
-
require_relative
|
|
7
|
-
require_relative
|
|
8
|
-
require_relative
|
|
9
|
-
require_relative
|
|
10
|
-
require_relative
|
|
3
|
+
require_relative "matchers/do_nothing_matcher"
|
|
4
|
+
require_relative "matchers/include_any_recipe_matcher"
|
|
5
|
+
require_relative "matchers/include_recipe_matcher"
|
|
6
|
+
require_relative "matchers/link_to_matcher"
|
|
7
|
+
require_relative "matchers/notifications_matcher"
|
|
8
|
+
require_relative "matchers/render_file_matcher"
|
|
9
|
+
require_relative "matchers/resource_matcher"
|
|
10
|
+
require_relative "matchers/state_attrs_matcher"
|
|
11
|
+
require_relative "matchers/subscribes_matcher"
|
|
11
12
|
end
|
|
12
13
|
end
|
data/lib/chefspec/policyfile.rb
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
begin
|
|
2
|
-
require
|
|
3
|
-
require
|
|
2
|
+
require "chef-cli/policyfile_services/export_repo"
|
|
3
|
+
require "chef-cli/policyfile_services/install"
|
|
4
|
+
require "chef/workstation_config_loader"
|
|
4
5
|
rescue LoadError
|
|
5
|
-
raise ChefSpec::Error::GemLoadError.new(gem:
|
|
6
|
+
raise ChefSpec::Error::GemLoadError.new(gem: "chef-cli", name: "ChefCLI")
|
|
6
7
|
end
|
|
7
8
|
|
|
8
9
|
module ChefSpec
|
|
@@ -22,16 +23,22 @@ module ChefSpec
|
|
|
22
23
|
# Setup and install the necessary dependencies in the temporary directory
|
|
23
24
|
#
|
|
24
25
|
def setup!
|
|
25
|
-
policyfile_path =
|
|
26
|
+
policyfile_path = RSpec.configuration.policyfile_path
|
|
27
|
+
if policyfile_path.nil?
|
|
28
|
+
policyfile_path = File.join(Dir.pwd, "Policyfile.rb")
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
Chef::WorkstationConfigLoader.new(nil).load
|
|
26
32
|
|
|
27
|
-
installer =
|
|
33
|
+
installer = ChefCLI::PolicyfileServices::Install.new(
|
|
28
34
|
policyfile: policyfile_path,
|
|
29
|
-
ui:
|
|
35
|
+
ui: ChefCLI::UI.null,
|
|
36
|
+
config: Chef::Config
|
|
30
37
|
)
|
|
31
38
|
|
|
32
39
|
installer.run
|
|
33
40
|
|
|
34
|
-
exporter =
|
|
41
|
+
exporter = ChefCLI::PolicyfileServices::ExportRepo.new(
|
|
35
42
|
policyfile: policyfile_path,
|
|
36
43
|
export_dir: @tmpdir
|
|
37
44
|
)
|
|
@@ -41,8 +48,8 @@ module ChefSpec
|
|
|
41
48
|
|
|
42
49
|
::RSpec.configure do |config|
|
|
43
50
|
config.cookbook_path = [
|
|
44
|
-
File.join(@tmpdir,
|
|
45
|
-
File.join(@tmpdir,
|
|
51
|
+
File.join(@tmpdir, "cookbooks"),
|
|
52
|
+
File.join(@tmpdir, "cookbook_artifacts"),
|
|
46
53
|
]
|
|
47
54
|
end
|
|
48
55
|
end
|
data/lib/chefspec/renderer.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
begin
|
|
2
|
-
require
|
|
3
|
-
require
|
|
2
|
+
require "chef/mixin/template"
|
|
3
|
+
require "chef/provider/template_finder"
|
|
4
4
|
rescue LoadError
|
|
5
5
|
end
|
|
6
6
|
|
|
@@ -67,8 +67,8 @@ module ChefSpec
|
|
|
67
67
|
if Chef::Mixin::Template.const_defined?(:TemplateContext) # Chef 11+
|
|
68
68
|
template_context = Chef::Mixin::Template::TemplateContext.new([])
|
|
69
69
|
template_context.update({
|
|
70
|
-
:
|
|
71
|
-
:
|
|
70
|
+
node: chef_run.node,
|
|
71
|
+
template_finder: template_finder(chef_run, cookbook_name),
|
|
72
72
|
}.merge(template.variables))
|
|
73
73
|
if template.respond_to?(:helper_modules) # Chef 11.4+
|
|
74
74
|
template_context._extend_modules(template.helper_modules)
|
data/lib/chefspec/rspec.rb
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
RSpec.configure do |config|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
config.after(:each) do
|
|
6
|
-
ChefSpec::Stubs::CommandRegistry.reset!
|
|
7
|
-
ChefSpec::Stubs::DataBagRegistry.reset!
|
|
8
|
-
ChefSpec::Stubs::DataBagItemRegistry.reset!
|
|
9
|
-
ChefSpec::Stubs::SearchRegistry.reset!
|
|
2
|
+
unless ENV["CHEFSPEC_NO_INCLUDE"]
|
|
3
|
+
config.include(ChefSpec::API)
|
|
10
4
|
end
|
|
11
5
|
|
|
12
6
|
config.add_setting :berkshelf_options, default: {}
|
|
7
|
+
config.add_setting :policyfile_path
|
|
13
8
|
config.add_setting :file_cache_path
|
|
9
|
+
config.add_setting :cookbook_root
|
|
14
10
|
config.add_setting :cookbook_path
|
|
15
11
|
config.add_setting :role_path
|
|
16
12
|
config.add_setting :environment_path
|
data/lib/chefspec/server.rb
CHANGED
|
@@ -88,11 +88,11 @@ module ChefSpec
|
|
|
88
88
|
EOH
|
|
89
89
|
end
|
|
90
90
|
|
|
91
|
-
entity :client, Chef::Client,
|
|
92
|
-
entity :data_bag, Chef::DataBag,
|
|
93
|
-
entity :environment, Chef::Environment,
|
|
94
|
-
entity :node, Chef::Node,
|
|
95
|
-
entity :role, Chef::Role,
|
|
91
|
+
entity :client, Chef::Client, "clients"
|
|
92
|
+
entity :data_bag, Chef::DataBag, "data"
|
|
93
|
+
entity :environment, Chef::Environment, "environments"
|
|
94
|
+
entity :node, Chef::Node, "nodes"
|
|
95
|
+
entity :role, Chef::Role, "roles"
|
|
96
96
|
|
|
97
97
|
#
|
|
98
98
|
# Create a new data_bag on the Chef Server. This overrides the method
|
|
@@ -104,7 +104,7 @@ module ChefSpec
|
|
|
104
104
|
# the data to load into the data bag
|
|
105
105
|
#
|
|
106
106
|
def create_data_bag(name, data = {})
|
|
107
|
-
load_data(name,
|
|
107
|
+
load_data(name, "data", data)
|
|
108
108
|
end
|
|
109
109
|
|
|
110
110
|
#
|
|
@@ -118,7 +118,7 @@ module ChefSpec
|
|
|
118
118
|
#
|
|
119
119
|
# @example Create a node from a +Chef::Node+ object
|
|
120
120
|
#
|
|
121
|
-
# node = stub_node('bacon', platform: 'ubuntu', version: '
|
|
121
|
+
# node = stub_node('bacon', platform: 'ubuntu', version: '18.04')
|
|
122
122
|
# create_node(node)
|
|
123
123
|
#
|
|
124
124
|
# @param [String, Chef::Node] object
|
|
@@ -138,7 +138,7 @@ module ChefSpec
|
|
|
138
138
|
data = JSON.fast_generate(data)
|
|
139
139
|
end
|
|
140
140
|
|
|
141
|
-
load_data(name,
|
|
141
|
+
load_data(name, "nodes", data)
|
|
142
142
|
end
|
|
143
143
|
alias_method :update_node, :create_node
|
|
144
144
|
|
|
@@ -161,7 +161,7 @@ module ChefSpec
|
|
|
161
161
|
# Get the path to an item in the data store.
|
|
162
162
|
#
|
|
163
163
|
def get(*args)
|
|
164
|
-
args.unshift(
|
|
164
|
+
args.unshift("organizations", "chef")
|
|
165
165
|
|
|
166
166
|
if args.size == 3
|
|
167
167
|
server.data_store.list(args)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
1
|
+
require "chef/cookbook_loader"
|
|
2
|
+
require "chef/cookbook_uploader"
|
|
3
3
|
|
|
4
|
-
require_relative
|
|
5
|
-
require_relative
|
|
6
|
-
require_relative
|
|
7
|
-
require_relative
|
|
4
|
+
require_relative "zero_server"
|
|
5
|
+
require_relative "file_cache_path_proxy"
|
|
6
|
+
require_relative "server_methods"
|
|
7
|
+
require_relative "solo_runner"
|
|
8
8
|
|
|
9
9
|
module ChefSpec
|
|
10
10
|
class ServerRunner < SoloRunner
|
|
@@ -23,15 +23,6 @@ module ChefSpec
|
|
|
23
23
|
# our yielding.
|
|
24
24
|
super(options, &nil)
|
|
25
25
|
|
|
26
|
-
Chef::Config[:client_key] = client_key
|
|
27
|
-
Chef::Config[:client_name] = 'chefspec'
|
|
28
|
-
Chef::Config[:node_name] = 'chefspec'
|
|
29
|
-
Chef::Config[:solo] = false
|
|
30
|
-
Chef::Config[:solo_legacy_mode] = false
|
|
31
|
-
|
|
32
|
-
Chef::Config[:chef_server_url] = server.url
|
|
33
|
-
Chef::Config[:http_retry_count] = 0
|
|
34
|
-
|
|
35
26
|
# Unlike the SoloRunner, the node AND server object are yielded for
|
|
36
27
|
# customization
|
|
37
28
|
yield node, self if block_given?
|
|
@@ -63,10 +54,23 @@ module ChefSpec
|
|
|
63
54
|
#
|
|
64
55
|
def client_key
|
|
65
56
|
tmp = Dir.mktmpdir
|
|
66
|
-
path = File.join(tmp,
|
|
67
|
-
File.open(path,
|
|
57
|
+
path = File.join(tmp, "client.pem")
|
|
58
|
+
File.open(path, "wb") { |f| f.write(ChefZero::PRIVATE_KEY) }
|
|
68
59
|
at_exit { FileUtils.rm_rf(tmp) }
|
|
69
60
|
path
|
|
70
61
|
end
|
|
62
|
+
|
|
63
|
+
# (see SoloRunner#apply_chef_config!)
|
|
64
|
+
def apply_chef_config!
|
|
65
|
+
super
|
|
66
|
+
Chef::Config[:client_key] = client_key
|
|
67
|
+
Chef::Config[:client_name] = "chefspec"
|
|
68
|
+
Chef::Config[:node_name] = "chefspec"
|
|
69
|
+
Chef::Config[:solo] = false
|
|
70
|
+
Chef::Config[:solo_legacy_mode] = false
|
|
71
|
+
|
|
72
|
+
Chef::Config[:chef_server_url] = server.url
|
|
73
|
+
Chef::Config[:http_retry_count] = 0
|
|
74
|
+
end
|
|
71
75
|
end
|
|
72
76
|
end
|