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