producer-core/features/steps/recipe_steps.rb
Thibault Jouan dc561de047 Fix backtrace filtering for net-ssh
Improve our filter pattern so it works for this kind of error:

SocketError: getaddrinfo: hostname nor servname provided, or not known
  /usr/local/lib/ruby/2.2/timeout.rb:74:in `timeout'
  /usr/local/lib/ruby/2.2/timeout.rb:125:in `timeout'
  /home/tj/.gem/ruby/22/gems/net-ssh-2.9.2/lib/net/ssh.rb:207:in `new'
  /home/tj/.gem/ruby/22/gems/net-ssh-2.9.2/lib/net/ssh.rb:207:in `start'
2015-04-03 22:34:46 +00:00

52 lines
1.4 KiB
Ruby

Given /^a recipe with:$/ do |recipe_body|
write_file 'recipe.rb', recipe_body
end
Given /^a recipe with an error$/ do
write_file 'recipe.rb', "task(:trigger_error) { fail 'some error' }\n"
end
Given /^a recipe using a remote$/ do
write_file 'recipe.rb', "task(:some_task) { sh 'echo hello' }\n"
end
Given /^a recipe named "([^"]+)" with:$/ do |recipe_path, recipe_body|
write_file recipe_path, recipe_body
end
When /^I execute the recipe$/ do
run_simple 'producer recipe.rb', false
end
When /^I execute the recipe on remote target$/ do
run_simple 'producer recipe.rb -t some_host.test', false
end
When /^I execute the recipe on unknown remote target$/ do
run_simple 'producer recipe.rb -t #unknown_host.test', false
assert_matching_output '\ASocketError', all_output
end
When /^I successfully execute the recipe$/ do
step 'I execute the recipe'
assert_exit_status 0
end
When /^I successfully execute the recipe on remote target$/ do
step 'I execute the recipe on remote target'
assert_exit_status 0
end
When /^I execute the recipe with option (-.+)$/ do |option|
run_simple "producer #{option} recipe.rb", false
end
When /^I successfully execute the recipe with option (-.+)$/ do |option|
run_simple "producer #{option} recipe.rb", false
assert_exit_status 0
end
When /^I execute the recipe interactively$/ do
run_interactive 'producer recipe.rb'
end