diff options
author | Tim Smith <tsmith@chef.io> | 2018-05-30 16:01:14 -0700 |
---|---|---|
committer | Tim Smith <tsmith@chef.io> | 2018-11-01 13:19:01 -0700 |
commit | 536aa37f721bfbc89bba46cf0dc89c7edb4d3123 (patch) | |
tree | cffb821e03d88e07de36c36a54b5967b55a9edb3 | |
parent | dafb29b48a322ba5480fe7315708d5bbb552424e (diff) | |
download | chef-536aa37f721bfbc89bba46cf0dc89c7edb4d3123.tar.gz |
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 <tsmith@chef.io>
-rw-r--r-- | lib/chef/knife/cookbook_test.rb | 95 | ||||
-rw-r--r-- | spec/unit/knife/cookbook_test_spec.rb | 84 |
2 files changed, 0 insertions, 179 deletions
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 (<adam@chef.io>) -# Author:: Matthew Kent (<mkent@magoazul.com>) -# 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 (<stephen@chef.io>)$ -# Author:: Matthew Kent (<mkent@magoazul.com>) -# 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 |