mirror of https://github.com/rails/rails
Get ActionPack's test running on bundled gems. This should make running tests on new machines, as well as CI, work well.
This commit is contained in:
parent
a8a336cbfc
commit
ddb4600ce6
|
@ -27,3 +27,8 @@ railties/guides/output
|
|||
*.rbc
|
||||
*.swp
|
||||
*.swo
|
||||
actionpack/bin
|
||||
*/vendor/gems/gems
|
||||
*/vendor/gems/specifications
|
||||
*/vendor/gems/environment.rb
|
||||
*/vendor/gems/dirs/specifications
|
|
@ -0,0 +1,14 @@
|
|||
rails_root = Pathname.new(File.dirname(__FILE__)).join("..")
|
||||
|
||||
gem "rack", "~> 1.0.0"
|
||||
gem "rack-test", "~> 0.4.2"
|
||||
gem "activesupport", "3.0.pre", :vendored_at => rails_root.join("activesupport")
|
||||
gem "activemodel", "3.0.pre", :vendored_at => rails_root.join("activemodel")
|
||||
|
||||
only :test do
|
||||
gem "mocha"
|
||||
gem "sqlite3-ruby"
|
||||
gem "RedCloth"
|
||||
end
|
||||
|
||||
disable_system_gems
|
|
@ -17,7 +17,17 @@ RUBY_FORGE_PROJECT = "actionpack"
|
|||
RUBY_FORGE_USER = "webster132"
|
||||
|
||||
desc "Default Task"
|
||||
task :default => [ :test ]
|
||||
task :default => [ :bundle, :test ]
|
||||
|
||||
task :bundle do
|
||||
puts "Checking if the bundled testing requirements are up to date..."
|
||||
result = system "gem bundle"
|
||||
unless result
|
||||
puts "The gem bundler is not installed. Installing."
|
||||
system "gem install bundler"
|
||||
system "gem bundle"
|
||||
end
|
||||
end
|
||||
|
||||
# Run the unit tests
|
||||
|
||||
|
|
|
@ -1,20 +1,15 @@
|
|||
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
||||
$:.unshift(File.dirname(__FILE__) + '/../../activesupport/lib')
|
||||
$:.unshift(File.dirname(__FILE__) + '/../../activemodel/lib')
|
||||
$:.unshift(File.dirname(__FILE__) + '/lib')
|
||||
|
||||
$:.unshift(File.dirname(__FILE__) + '/fixtures/helpers')
|
||||
$:.unshift(File.dirname(__FILE__) + '/fixtures/alternate_helpers')
|
||||
|
||||
require File.join(File.dirname(__FILE__), "..", "vendor", "gems", "environment")
|
||||
|
||||
ENV['TMPDIR'] = File.join(File.dirname(__FILE__), 'tmp')
|
||||
|
||||
ENV['new_base'] = "true"
|
||||
$stderr.puts "Running old tests on new_base"
|
||||
|
||||
require 'rubygems'
|
||||
gem "rack", "~> 1.0.0"
|
||||
gem "rack-test", "~> 0.4.2"
|
||||
|
||||
require 'test/unit'
|
||||
require 'active_support'
|
||||
require 'active_support/test_case'
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
$:.unshift(File.dirname(__FILE__) + '/../../lib')
|
||||
$:.unshift(File.dirname(__FILE__) + '/../../../activesupport/lib')
|
||||
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
||||
|
||||
require 'rubygems'
|
||||
gem "rack", "~> 1.0.0"
|
||||
gem "rack-test", "~> 0.4.2"
|
||||
require File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "vendor", "gems", "environment"))
|
||||
|
||||
require 'test/unit'
|
||||
require 'active_support'
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,94 @@
|
|||
# DO NOT MODIFY THIS FILE
|
||||
module Bundler
|
||||
dir = File.dirname(__FILE__)
|
||||
|
||||
ENV["PATH"] = "#{dir}/../../bin:#{ENV["PATH"]}"
|
||||
ENV["RUBYOPT"] = "-r#{__FILE__} #{ENV["RUBYOPT"]}"
|
||||
|
||||
$LOAD_PATH.unshift File.expand_path("#{dir}/dirs/gems/activemodel-3.0.pre/bin")
|
||||
$LOAD_PATH.unshift File.expand_path("#{dir}/../../../activemodel/lib")
|
||||
$LOAD_PATH.unshift File.expand_path("#{dir}/dirs/gems/activesupport-3.0.pre/bin")
|
||||
$LOAD_PATH.unshift File.expand_path("#{dir}/../../../activesupport/lib")
|
||||
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/rack-1.0.0/bin")
|
||||
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/rack-1.0.0/lib")
|
||||
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/rack-test-0.4.2/bin")
|
||||
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/rack-test-0.4.2/lib")
|
||||
|
||||
@gemfile = "#{dir}/../../Gemfile"
|
||||
|
||||
require "rubygems"
|
||||
|
||||
@bundled_specs = {}
|
||||
@bundled_specs["rack"] = eval(File.read("#{dir}/specifications/rack-1.0.0.gemspec"))
|
||||
@bundled_specs["rack"].loaded_from = "#{dir}/specifications/rack-1.0.0.gemspec"
|
||||
@bundled_specs["activemodel"] = eval(File.read("#{dir}/dirs/specifications/activemodel-3.0.pre.gemspec"))
|
||||
@bundled_specs["activemodel"].loaded_from = "#{dir}/dirs/specifications/activemodel-3.0.pre.gemspec"
|
||||
@bundled_specs["rack-test"] = eval(File.read("#{dir}/specifications/rack-test-0.4.2.gemspec"))
|
||||
@bundled_specs["rack-test"].loaded_from = "#{dir}/specifications/rack-test-0.4.2.gemspec"
|
||||
@bundled_specs["activesupport"] = eval(File.read("#{dir}/dirs/specifications/activesupport-3.0.pre.gemspec"))
|
||||
@bundled_specs["activesupport"].loaded_from = "#{dir}/dirs/specifications/activesupport-3.0.pre.gemspec"
|
||||
|
||||
def self.add_specs_to_loaded_specs
|
||||
Gem.loaded_specs.merge! @bundled_specs
|
||||
end
|
||||
|
||||
def self.add_specs_to_index
|
||||
@bundled_specs.each do |name, spec|
|
||||
Gem.source_index.add_spec spec
|
||||
end
|
||||
end
|
||||
|
||||
add_specs_to_loaded_specs
|
||||
add_specs_to_index
|
||||
|
||||
def self.require_env(env = nil)
|
||||
context = Class.new do
|
||||
def initialize(env) @env = env && env.to_s ; end
|
||||
def method_missing(*) ; end
|
||||
def only(env)
|
||||
old, @only = @only, _combine_onlys(env)
|
||||
yield
|
||||
@only = old
|
||||
end
|
||||
def except(env)
|
||||
old, @except = @except, _combine_excepts(env)
|
||||
yield
|
||||
@except = old
|
||||
end
|
||||
def gem(name, *args)
|
||||
opt = args.last || {}
|
||||
only = _combine_onlys(opt[:only] || opt["only"])
|
||||
except = _combine_excepts(opt[:except] || opt["except"])
|
||||
files = opt[:require_as] || opt["require_as"] || name
|
||||
|
||||
return unless !only || only.any? {|e| e == @env }
|
||||
return if except && except.any? {|e| e == @env }
|
||||
|
||||
files.each { |f| require f }
|
||||
yield if block_given?
|
||||
true
|
||||
end
|
||||
private
|
||||
def _combine_onlys(only)
|
||||
return @only unless only
|
||||
only = [only].flatten.compact.uniq.map { |o| o.to_s }
|
||||
only &= @only if @only
|
||||
only
|
||||
end
|
||||
def _combine_excepts(except)
|
||||
return @except unless except
|
||||
except = [except].flatten.compact.uniq.map { |o| o.to_s }
|
||||
except |= @except if @except
|
||||
except
|
||||
end
|
||||
end
|
||||
context.new(env && env.to_s).instance_eval(File.read(@gemfile))
|
||||
end
|
||||
end
|
||||
|
||||
module Gem
|
||||
def source_index.refresh!
|
||||
super
|
||||
Bundler.add_specs_to_index
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue