spec/support/helpers.rb in engineyard-0.3.2 vs spec/support/helpers.rb in engineyard-0.3.3
- old
+ new
@@ -1,6 +1,6 @@
-require 'ey_merkin'
+require 'realweb'
require "rest_client"
require 'open4'
module Spec
module Helpers
@@ -40,12 +40,12 @@
eybin = File.expand_path('../bundled_ey', __FILE__)
with_env(ey_env) do
exit_status = Open4::open4("#{eybin} #{cmd}") do |pid, stdin, stdout, stderr|
block.call(stdin) if block
- @err = stderr.read_available_bytes
- @out = stdout.read_available_bytes
+ @err = stderr.read
+ @out = stdout.read
end
if !exit_status.success? && !options[:expect_failure]
raise NonzeroExitStatus.new(@out, @err)
elsif exit_status.success? && options[:expect_failure]
@@ -73,18 +73,25 @@
puts @err unless @err.empty? || hide_err
@out
end
- def api_scenario(scenario)
- response = ::RestClient.put(EY.fake_awsm + '/scenario', {"scenario" => scenario}, {})
+ def api_scenario(scenario, remote = local_git_remote)
+ response = ::RestClient.put(EY.fake_awsm + '/scenario', {"scenario" => scenario, "remote" => remote}, {})
raise "Setting scenario failed: #{response.inspect}" unless response.code == 200
end
- def api_git_remote(remote)
- response = ::RestClient.put(EY.fake_awsm + '/git_remote', {"remote" => remote}, {})
- raise "Setting git remote failed: #{response.inspect}" unless response.code == 200
+ def local_git_remote
+ remotes = []
+ `git remote -v`.each_line do |line|
+ parts = line.split(/\t/)
+ # the remote will look like
+ # "git@github.com:engineyard/engineyard.git (fetch)\n"
+ # so we need to chop it up a bit
+ remotes << parts[1].gsub(/\s.*$/, "") if parts[1]
+ end
+ remotes.first
end
def read_yaml(file="ey.yml")
YAML.load_file(File.expand_path(file))
end
@@ -123,10 +130,10 @@
@fake_awsm ||= begin
unless system("ruby -c spec/support/fake_awsm.ru > /dev/null")
raise SyntaxError, "There is a syntax error in fake_awsm.ru! fix it!"
end
config_ru = File.join(EY_ROOT, "spec/support/fake_awsm.ru")
- @server = EY::Merkin.start_server(config_ru)
+ @server = RealWeb.start_server_in_fork(config_ru)
"http://localhost:#{@server.port}"
end
end
alias_method :start_fake_awsm, :fake_awsm
end