From a70c2d79ad1f24c8560857a861a1a2ac0d09baf9 Mon Sep 17 00:00:00 2001 From: Tim Smith Date: Wed, 30 May 2018 16:01:14 -0700 Subject: Remove knife cookbook test feature We deprecated this during the Chef 13 cycle. It's time to fully remove it. Signed-off-by: Tim Smith --- lib/chef/knife/cookbook_test.rb | 95 ----------------------------------- spec/unit/knife/cookbook_test_spec.rb | 84 ------------------------------- 2 files changed, 179 deletions(-) delete mode 100644 lib/chef/knife/cookbook_test.rb delete mode 100644 spec/unit/knife/cookbook_test_spec.rb diff --git a/lib/chef/knife/cookbook_test.rb b/lib/chef/knife/cookbook_test.rb deleted file mode 100644 index 2f600bf964..0000000000 --- a/lib/chef/knife/cookbook_test.rb +++ /dev/null @@ -1,95 +0,0 @@ -# -# Author:: Adam Jacob () -# Author:: Matthew Kent () -# Copyright:: Copyright 2009-2018, Chef Software Inc. -# Copyright:: Copyright 2010-2016, Matthew Kent -# License:: Apache License, Version 2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -require "chef/knife" - -class Chef - class Knife - class CookbookTest < Knife - - deps do - require "chef/cookbook_loader" - require "chef/cookbook/syntax_check" - end - - banner "knife cookbook test [COOKBOOKS...] (options)" - - option :cookbook_path, - short: "-o PATH:PATH", - long: "--cookbook-path PATH:PATH", - description: "A colon-separated path to look for cookbooks in", - proc: lambda { |o| o.split(":") } - - option :all, - short: "-a", - long: "--all", - description: "Test all cookbooks, rather than just a single cookbook" - - def run - ui.warn("DEPRECATED: Please use ChefSpec or Cookstyle to syntax-check cookbooks.") - config[:cookbook_path] ||= Chef::Config[:cookbook_path] - - checked_a_cookbook = false - if config[:all] - cl = cookbook_loader - cl.load_cookbooks - cl.each_key do |key| - checked_a_cookbook = true - test_cookbook(key) - end - else - @name_args.each do |cb| - ui.info "checking #{cb}" - next unless cookbook_loader.cookbook_exists?(cb) - checked_a_cookbook = true - test_cookbook(cb) - end - end - unless checked_a_cookbook - ui.warn("No cookbooks to test in #{Array(config[:cookbook_path]).join(',')} - is your cookbook path misconfigured?") - end - end - - def test_cookbook(cookbook) - ui.info("Running syntax check on #{cookbook}") - Array(config[:cookbook_path]).reverse_each do |path| - syntax_checker = Chef::Cookbook::SyntaxCheck.for_cookbook(cookbook, path) - test_ruby(syntax_checker) - test_templates(syntax_checker) - end - end - - def test_ruby(syntax_checker) - ui.info("Validating ruby files") - exit(1) unless syntax_checker.validate_ruby_files - end - - def test_templates(syntax_checker) - ui.info("Validating templates") - exit(1) unless syntax_checker.validate_templates - end - - def cookbook_loader - @cookbook_loader ||= Chef::CookbookLoader.new(config[:cookbook_path]) - end - - end - end -end diff --git a/spec/unit/knife/cookbook_test_spec.rb b/spec/unit/knife/cookbook_test_spec.rb deleted file mode 100644 index dd5d4f096a..0000000000 --- a/spec/unit/knife/cookbook_test_spec.rb +++ /dev/null @@ -1,84 +0,0 @@ -# -# Author:: Stephen Delano ()$ -# Author:: Matthew Kent () -# Copyright:: Copyright 2010-2018, Chef Software Inc.$ -# Copyright:: Copyright 2010-2016, Matthew Kent -# License:: Apache License, Version 2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -require "spec_helper" -Chef::Knife::CookbookTest.load_deps - -describe Chef::Knife::CookbookTest do - before(:each) do - Chef::Config[:node_name] = "webmonkey.example.com" - @knife = Chef::Knife::CookbookTest.new - @knife.config[:cookbook_path] = File.join(CHEF_SPEC_DATA, "cookbooks") - allow(@knife.cookbook_loader).to receive(:cookbook_exists?).and_return(true) - @cookbooks = [] - %w{tats central_market jimmy_johns pho}.each do |cookbook_name| - @cookbooks << Chef::CookbookVersion.new(cookbook_name) - end - @stdout = StringIO.new - allow(@knife.ui).to receive(:stdout).and_return(@stdout) - end - - describe "run" do - it "should test the cookbook" do - allow(@knife).to receive(:test_cookbook).and_return(true) - @knife.name_args = ["italian"] - expect(@knife).to receive(:test_cookbook).with("italian") - @knife.run - end - - it "should test multiple cookbooks when provided" do - allow(@knife).to receive(:test_cookbook).and_return(true) - @knife.name_args = %w{tats jimmy_johns} - expect(@knife).to receive(:test_cookbook).with("tats") - expect(@knife).to receive(:test_cookbook).with("jimmy_johns") - expect(@knife).not_to receive(:test_cookbook).with("central_market") - expect(@knife).not_to receive(:test_cookbook).with("pho") - @knife.run - end - - it "should test both ruby and templates" do - @knife.name_args = ["example"] - expect(@knife.config[:cookbook_path]).not_to be_empty - Array(@knife.config[:cookbook_path]).reverse_each do |path| - expect(@knife).to receive(:test_ruby).with(an_instance_of(Chef::Cookbook::SyntaxCheck)) - expect(@knife).to receive(:test_templates).with(an_instance_of(Chef::Cookbook::SyntaxCheck)) - end - @knife.run - end - - describe "with -a or --all" do - it "should test all of the cookbooks" do - allow(@knife).to receive(:test_cookbook).and_return(true) - @knife.config[:all] = true - @loader = {} - allow(@loader).to receive(:load_cookbooks).and_return(@loader) - @cookbooks.each do |cookbook| - @loader[cookbook.name] = cookbook - end - allow(@knife).to receive(:cookbook_loader).and_return(@loader) - @loader.each_value do |cookbook| - expect(@knife).to receive(:test_cookbook).with(cookbook.name) - end - @knife.run - end - end - - end -end -- cgit v1.2.1