simplify multi-server spec running with foreman. couldn't really get it automated tonight, not sure why.

This commit is contained in:
Raphael Sofaer 2011-09-22 00:24:01 -04:00
parent f8c05851f6
commit 2e96f0121e
7 changed files with 29 additions and 40 deletions

View file

@ -180,7 +180,6 @@ production:
<<: *defaults
mount_resque_web: false
#
# Do not touch unless you know what you're doing
#
@ -192,7 +191,6 @@ test:
enable_splunk_logging: false
open_invitations: true
integration_1:
<<: *defaults
pod_url: "http://localhost:45789"

View file

@ -0,0 +1,2 @@
integration_1: bundle exec thin start -e integration_1 -p 45789
integration_2: bundle exec thin start -e integration_2 -p 34658

View file

@ -5,21 +5,14 @@ require 'spec_helper'
unless Server.all.empty?
describe "commenting" do
before(:all) do
WebMock::Config.instance.allow_localhost = true
enable_typhoeus
#Server.all.each{|s| s.kill if s.running?}
#Server.all.each{|s| s.run}
Server.start
end
after(:all) do
disable_typhoeus
#Server.all.each{|s| s.kill if s.running?}
#sleep(1)
#Server.all.each{|s| puts "Server at port #{s.port} still running." if s.running?}
WebMock::Config.instance.allow_localhost = false
Server.stop
end
before do
Server.all.each{|s| s.truncate_database; }
Server.truncate_databases
@post = nil
Server[0].in_scope do
poster = Factory.create(:user_with_aspect, :username => "poster")

View file

@ -3,21 +3,14 @@ require 'spec_helper'
unless Server.all.empty?
describe "commenting" do
before(:all) do
WebMock::Config.instance.allow_localhost = true
enable_typhoeus
#Server.all.each{|s| s.kill if s.running?}
#Server.all.each{|s| s.run}
Server.start
end
after(:all) do
disable_typhoeus
#Server.all.each{|s| s.kill if s.running?}
#sleep(1)
#Server.all.each{|s| puts "Server at port #{s.port} still running." if s.running?}
WebMock::Config.instance.allow_localhost = false
Server.stop
end
before do
Server.all.each{|s| s.truncate_database; }
Server.truncate_databases
@post = nil
Server[0].in_scope do
Factory.create(:user_with_aspect, :username => "poster")

View file

@ -5,21 +5,14 @@ require 'spec_helper'
unless Server.all.empty?
describe "reposting" do
before(:all) do
WebMock::Config.instance.allow_localhost = true
enable_typhoeus
#Server.all.each{|s| s.kill if s.running?}
#Server.all.each{|s| s.run}
Server.start
end
after(:all) do
disable_typhoeus
#Server.all.each{|s| s.kill if s.running?}
#sleep(1)
#Server.all.each{|s| puts "Server at port #{s.port} still running." if s.running?}
WebMock::Config.instance.allow_localhost = false
Server.stop
end
before do
Server.all.each{|s| s.truncate_database; }
Server.truncate_databases
@original_post = nil
Server[0].in_scope do
original_poster = Factory.create(:user_with_aspect, :username => "original_poster")

View file

@ -4,20 +4,15 @@ require 'spec_helper'
unless Server.all.empty?
describe Server do
before(:all) do
WebMock::Config.instance.allow_localhost = true
#Server.all.each{|s| s.kill if s.running?}
#Server.all.each{|s| s.run}
Server.start
end
after(:all) do
#Server.all.each{|s| s.kill if s.running?}
#sleep(1)
#Server.all.each{|s| puts "Server at port #{s.port} still running." if s.running?}
WebMock::Config.instance.allow_localhost = false
Server.stop
end
before do
Server.all.each{|s| s.truncate_database }
Server.truncate_databases
end
describe '.all' do
it 'returns a server object for each server' do

View file

@ -1,5 +1,18 @@
#This class is for running servers in the background during integration testing. This will not run on Windows.
class Server
def self.start
WebMock::Config.instance.allow_localhost = true
enable_typhoeus
end
def self.stop
disable_typhoeus
WebMock::Config.instance.allow_localhost = false
end
def self.truncate_databases
all.each{|s| s.truncate_database }
end
def self.[] index
self.all[index]
@ -21,6 +34,7 @@ class Server
end
def ensure_database_setup
@@databases_setup = lambda {
`cd #{Rails.root} && RAILS_ENV=#{@env} bundle exec rake db:create`
tables_exist = self.db do
ActiveRecord::Base.connection.tables.include?("users")
@ -30,6 +44,7 @@ class Server
else
`cd #{Rails.root} && RAILS_ENV=#{@env} bundle exec rake db:schema:load`
end
true}.call
end
def run