features/step_definitions/hudson_steps.rb in hudson-0.3.0.beta.1 vs features/step_definitions/hudson_steps.rb in hudson-0.3.0.beta.2
- old
+ new
@@ -27,10 +27,30 @@
else
puts "WARNING: Run 'I have a Hudson server running' step first."
end
end
+Given /^the Hudson server has no slaves$/ do
+ if port = @hudson_port
+ require "open-uri"
+ require "yajl"
+ base_url = "http://#{@hudson_host}:#{@hudson_port}"
+ hudson_info = Yajl::Parser.new.parse(open("#{base_url}/computer/api/json"))
+
+ hudson_info['computer'].each do |node|
+ name = node["displayName"]
+ next if name == "master"
+ job_url = "#{base_url}/computer/#{CGI::escape(name).gsub('+', '%20')}"
+ res = Net::HTTP.start("localhost", port) { |http| http.post("#{job_url}/doDelete/api/json", {}) }
+ end
+ hudson_info = Yajl::Parser.new.parse(open("http://#{@hudson_host}:#{@hudson_port}/api/json"))
+ hudson_info['jobs'].should == []
+ else
+ puts "WARNING: Run 'I have a Hudson server running' step first."
+ end
+end
+
Given /^there is nothing listening on port (\d+)$/ do |port|
lambda {
TCPSocket.open("localhost", port) {}
}.should raise_error
end
@@ -54,10 +74,10 @@
When /^I run hudson server with arguments "(.*)"/ do |arguments|
@stdout = File.expand_path(File.join(@tmp_root, "executable.out"))
executable = File.expand_path(File.join(File.dirname(__FILE__), "/../../bin","hudson"))
in_project_folder do
- system "ruby #{executable} server #{arguments} > #{@stdout} 2>#{@stdout}"
+ system "ruby #{executable.inspect} server #{arguments} > #{@stdout.inspect} 2> #{@stdout.inspect}"
end
end
Then /^I should see a hudson server on port (\d+)$/ do |port|