if node[:opsworks][:run_cookbook_tests] chef_gem "chefgem awesome_print install" do Chef::Log.info "[TEST] Installing rubygem awesome_print to test chef_gem resource" version '= 1.2.0' package_name "awesome_print" action :install end execute "chefgem awesome_print fail" do command "/bin/false" action :nothing end chef_gem "chefgem awesome_print install two" do Chef::Log.info "[TEST] Asked to install rubygem awesome_print 2nd time. Should not trigger install." version '= 1.2.0' package_name "awesome_print" action :install notifies :run, "execute[chefgem awesome_print fail]" end if require "awesome_print" Chef::Log.info "[TEST] Sucessfully loaded awesome_print installed with chef_gem" ap({:foo => "bar", "bazz" => [1,2,3]}) else raise "Failed to load chef_gem installed rubygem." end chef_gem "chefgem awesome_print uninstall" do Chef::Log.info "[TEST] Deinstalling awesome_print rubygem to test chef_gem" version '1.2.0' package_name "awesome_print" action :remove end available = begin false rescue LoadError true end unless !available && $LOAD_PATH.grep(/awesome_print/).empty? raise "Failed to uninstall chef_gem: #{available} (LOAD_PATH: #{$LOAD_PATH.inspect})" else Chef::Log.info "[TEST] Sucessfully uninstalled awesome_print using chef_gem" end end