Set precompiled fixture load path constant to speed up tests

This commit is contained in:
Joshua Peek 2008-06-25 15:24:12 -05:00
parent a9259ccfe0
commit 339491a6b3
16 changed files with 182 additions and 192 deletions

View File

@ -22,6 +22,7 @@ ActiveSupport::Deprecation.debug = true
ActionController::Base.logger = nil
ActionController::Routing::Routes.reload rescue nil
FIXTURE_LOAD_PATH = ActionView::ViewLoadPaths::LoadPath.new(File.join(File.dirname(__FILE__), 'fixtures'))
# Wrap tests that use Mocha and skip if unavailable.
def uses_mocha(test_name)

View File

@ -30,7 +30,6 @@ end
$stderr.flush
# Define the rest of the connector
class ActiveRecordTestConnector
class << self
@ -48,46 +47,45 @@ class ActiveRecordTestConnector
end
private
def setup_connection
if Object.const_defined?(:ActiveRecord)
defaults = { :database => ':memory:' }
begin
options = defaults.merge :adapter => 'sqlite3', :timeout => 500
ActiveRecord::Base.establish_connection(options)
ActiveRecord::Base.configurations = { 'sqlite3_ar_integration' => options }
ActiveRecord::Base.connection
rescue Exception # errors from establishing a connection
$stderr.puts 'SQLite 3 unavailable; trying SQLite 2.'
options = defaults.merge :adapter => 'sqlite'
ActiveRecord::Base.establish_connection(options)
ActiveRecord::Base.configurations = { 'sqlite2_ar_integration' => options }
ActiveRecord::Base.connection
end
def setup_connection
if Object.const_defined?(:ActiveRecord)
defaults = { :database => ':memory:' }
begin
options = defaults.merge :adapter => 'sqlite3', :timeout => 500
ActiveRecord::Base.establish_connection(options)
ActiveRecord::Base.configurations = { 'sqlite3_ar_integration' => options }
ActiveRecord::Base.connection
rescue Exception # errors from establishing a connection
$stderr.puts 'SQLite 3 unavailable; trying SQLite 2.'
options = defaults.merge :adapter => 'sqlite'
ActiveRecord::Base.establish_connection(options)
ActiveRecord::Base.configurations = { 'sqlite2_ar_integration' => options }
ActiveRecord::Base.connection
Object.send(:const_set, :QUOTED_TYPE, ActiveRecord::Base.connection.quote_column_name('type')) unless Object.const_defined?(:QUOTED_TYPE)
else
raise "Can't setup connection since ActiveRecord isn't loaded."
end
Object.send(:const_set, :QUOTED_TYPE, ActiveRecord::Base.connection.quote_column_name('type')) unless Object.const_defined?(:QUOTED_TYPE)
else
raise "Can't setup connection since ActiveRecord isn't loaded."
end
end
# Load actionpack sqlite tables
def load_schema
File.read(File.dirname(__FILE__) + "/fixtures/db_definitions/sqlite.sql").split(';').each do |sql|
ActiveRecord::Base.connection.execute(sql) unless sql.blank?
# Load actionpack sqlite tables
def load_schema
File.read(File.dirname(__FILE__) + "/fixtures/db_definitions/sqlite.sql").split(';').each do |sql|
ActiveRecord::Base.connection.execute(sql) unless sql.blank?
end
end
end
def require_fixture_models
Dir.glob(File.dirname(__FILE__) + "/fixtures/*.rb").each {|f| require f}
end
def require_fixture_models
Dir.glob(File.dirname(__FILE__) + "/fixtures/*.rb").each {|f| require f}
end
end
end
class ActiveRecordTestCase < ActiveSupport::TestCase
# Set our fixture path
if ActiveRecordTestConnector.able_to_connect
self.fixture_path = "#{File.dirname(__FILE__)}/fixtures/"
self.fixture_path = [FIXTURE_LOAD_PATH]
self.use_transactional_fixtures = false
end

View File

@ -40,7 +40,8 @@ class RenderPartialWithRecordIdentificationController < ActionController::Base
render :partial => @developers
end
end
RenderPartialWithRecordIdentificationController.view_paths = [ File.dirname(__FILE__) + "/../fixtures/" ]
RenderPartialWithRecordIdentificationController.view_paths = [FIXTURE_LOAD_PATH]
class RenderPartialWithRecordIdentificationTest < ActiveRecordTestCase
fixtures :developers, :projects, :developers_projects, :topics, :replies, :companies, :mascots
@ -116,7 +117,8 @@ class RenderPartialWithRecordIdentificationController < ActionController::Base
render :partial => @developers
end
end
RenderPartialWithRecordIdentificationController.view_paths = [ File.dirname(__FILE__) + "/../fixtures/" ]
RenderPartialWithRecordIdentificationController.view_paths = [FIXTURE_LOAD_PATH]
class Game < Struct.new(:name, :id)
def to_param
@ -134,7 +136,8 @@ module Fun
render :partial => [ Game.new("Pong"), Game.new("Tank") ]
end
end
NestedController.view_paths = [ File.dirname(__FILE__) + "/../fixtures/" ]
NestedController.view_paths = [FIXTURE_LOAD_PATH]
module Serious
class NestedDeeperController < ActionController::Base
@ -146,7 +149,8 @@ module Fun
render :partial => [ Game.new("Chess"), Game.new("Sudoku"), Game.new("Solitaire") ]
end
end
NestedDeeperController.view_paths = [ File.dirname(__FILE__) + "/../fixtures/" ]
NestedDeeperController.view_paths = [FIXTURE_LOAD_PATH]
end
end
@ -167,7 +171,6 @@ class RenderPartialWithRecordIdentificationAndNestedControllersTest < ActiveReco
get :render_with_record_collection_in_nested_controller
assert_template 'fun/games/_game'
end
end
class RenderPartialWithRecordIdentificationAndNestedDeeperControllersTest < ActiveRecordTestCase
@ -187,5 +190,4 @@ class RenderPartialWithRecordIdentificationAndNestedDeeperControllersTest < Acti
get :render_with_record_collection_in_deeper_nested_controller
assert_template 'fun/serious/games/_game'
end
end

View File

@ -170,7 +170,7 @@ end
# tell the controller where to find its templates but start from parent
# directory of test_request_response to simulate the behaviour of a
# production environment
ActionPackAssertionsController.view_paths = [ File.dirname(__FILE__) + "/../fixtures/" ]
ActionPackAssertionsController.view_paths = [FIXTURE_LOAD_PATH]
# a test case to exercise the new capabilities TestRequest & TestResponse
class ActionPackAssertionsControllerTest < Test::Unit::TestCase
@ -533,7 +533,6 @@ class ActionPackHeaderTest < Test::Unit::TestCase
assert_equal('application/pdf; charset=utf-8', @response.headers['type'])
end
def test_render_text_with_custom_content_type
get :render_text_with_custom_content_type
assert_equal 'application/rss+xml; charset=utf-8', @response.headers['type']

View File

@ -1,7 +1,6 @@
require 'abstract_unit'
class Address
def Address.count(conditions = nil, join = nil)
nil
end
@ -20,7 +19,7 @@ class AddressesTestController < ActionController::Base
def self.controller_path; "addresses"; end
end
AddressesTestController.view_paths = [ File.dirname(__FILE__) + "/../fixtures/" ]
AddressesTestController.view_paths = [FIXTURE_LOAD_PATH]
class AddressesTest < Test::Unit::TestCase
def setup

View File

@ -6,7 +6,7 @@ CACHE_DIR = 'test_cache'
FILE_STORE_PATH = File.join(File.dirname(__FILE__), '/../temp/', CACHE_DIR)
ActionController::Base.page_cache_directory = FILE_STORE_PATH
ActionController::Base.cache_store = :file_store, FILE_STORE_PATH
ActionController::Base.view_paths = [ File.dirname(__FILE__) + '/../fixtures/' ]
ActionController::Base.view_paths = [FIXTURE_LOAD_PATH]
class PageCachingTestController < ActionController::Base
caches_page :ok, :no_content, :if => Proc.new { |c| !c.request.format.json? }
@ -631,7 +631,7 @@ class FunctionalCachingController < ActionController::Base
end
end
FunctionalCachingController.view_paths = [ File.dirname(__FILE__) + "/../fixtures/" ]
FunctionalCachingController.view_paths = [FIXTURE_LOAD_PATH]
class FunctionalFragmentCachingTest < Test::Unit::TestCase
def setup
@ -642,6 +642,7 @@ class FunctionalFragmentCachingTest < Test::Unit::TestCase
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
end
def test_fragment_caching
get :fragment_cached
assert_response :success

View File

@ -23,7 +23,7 @@ class CaptureController < ActionController::Base
def rescue_action(e) raise end
end
CaptureController.view_paths = [ File.dirname(__FILE__) + "/../fixtures/" ]
CaptureController.view_paths = [FIXTURE_LOAD_PATH]
class CaptureTest < Test::Unit::TestCase
def setup

View File

@ -45,7 +45,7 @@ class ContentTypeController < ActionController::Base
def rescue_action(e) raise end
end
ContentTypeController.view_paths = [ File.dirname(__FILE__) + "/../fixtures/" ]
ContentTypeController.view_paths = [FIXTURE_LOAD_PATH]
class ContentTypeTest < Test::Unit::TestCase
def setup

View File

@ -2,7 +2,6 @@ require 'abstract_unit'
class DeprecatedBaseMethodsTest < Test::Unit::TestCase
class Target < ActionController::Base
def home_url(greeting)
"http://example.com/#{greeting}"
end
@ -14,7 +13,7 @@ class DeprecatedBaseMethodsTest < Test::Unit::TestCase
def rescue_action(e) raise e end
end
Target.view_paths = [ File.dirname(__FILE__) + "/../../fixtures" ]
Target.view_paths = [FIXTURE_LOAD_PATH]
def setup
@request = ActionController::TestRequest.new

View File

@ -162,7 +162,7 @@ class RespondToController < ActionController::Base
end
end
RespondToController.view_paths = [ File.dirname(__FILE__) + "/../fixtures/" ]
RespondToController.view_paths = [FIXTURE_LOAD_PATH]
class MimeControllerTest < Test::Unit::TestCase
def setup
@ -535,4 +535,3 @@ class MimeControllerLayoutsTest < Test::Unit::TestCase
assert_equal '<html><div id="super_iphone">Super iPhone</div></html>', @response.body
end
end

View File

@ -457,8 +457,8 @@ class NewRenderTestController < ActionController::Base
end
end
NewRenderTestController.view_paths = [ File.dirname(__FILE__) + "/../fixtures/" ]
Fun::GamesController.view_paths = [ File.dirname(__FILE__) + "/../fixtures/" ]
NewRenderTestController.view_paths = [FIXTURE_LOAD_PATH]
Fun::GamesController.view_paths = [FIXTURE_LOAD_PATH]
class NewRenderTest < Test::Unit::TestCase
def setup
@ -941,5 +941,4 @@ EOS
get :render_using_layout_around_block_in_main_layout_and_within_content_for_layout
assert_equal "Before (Anthony)\nInside from first block in layout\nAfter\nBefore (David)\nInside from block\nAfter\nBefore (Ramm)\nInside from second block in layout\nAfter\n", @response.body
end
end

View File

@ -217,8 +217,8 @@ class TestController < ActionController::Base
end
end
TestController.view_paths = [ File.dirname(__FILE__) + "/../fixtures/" ]
Fun::GamesController.view_paths = [ File.dirname(__FILE__) + "/../fixtures/" ]
TestController.view_paths = [FIXTURE_LOAD_PATH]
Fun::GamesController.view_paths = [FIXTURE_LOAD_PATH]
class RenderTest < Test::Unit::TestCase
def setup
@ -520,7 +520,6 @@ class RenderTest < Test::Unit::TestCase
end
protected
def etag_for(text)
%("#{Digest::MD5.hexdigest(text)}")
end

View File

@ -1,13 +1,11 @@
require 'abstract_unit'
module TestFileUtils
def file_name() File.basename(__FILE__) end
def file_path() File.expand_path(__FILE__) end
def file_data() File.open(file_path, 'rb') { |f| f.read } end
end
class SendFileController < ActionController::Base
include TestFileUtils
layout "layouts/standard" # to make sure layouts don't interfere
@ -21,7 +19,7 @@ class SendFileController < ActionController::Base
def rescue_action(e) raise end
end
SendFileController.view_paths = [ File.dirname(__FILE__) + "/../fixtures/" ]
SendFileController.view_paths = [FIXTURE_LOAD_PATH]
class SendFileTest < Test::Unit::TestCase
include TestFileUtils

View File

@ -1,9 +1,7 @@
require 'abstract_unit'
class ViewLoadPathsTest < Test::Unit::TestCase
LOAD_PATH_ROOT = File.join(File.dirname(__FILE__), '..', 'fixtures')
ActionController::Base.view_paths = [LOAD_PATH_ROOT]
ActionController::Base.view_paths = [FIXTURE_LOAD_PATH]
class TestController < ActionController::Base
def self.controller_path() "test" end
@ -16,7 +14,7 @@ class ViewLoadPathsTest < Test::Unit::TestCase
private
def add_view_path
prepend_view_path "#{LOAD_PATH_ROOT}/override"
prepend_view_path "#{FIXTURE_LOAD_PATH}/override"
end
end
@ -47,35 +45,35 @@ class ViewLoadPathsTest < Test::Unit::TestCase
end
def test_template_load_path_was_set_correctly
assert_equal [ LOAD_PATH_ROOT ], @controller.view_paths
assert_equal [FIXTURE_LOAD_PATH], @controller.view_paths
end
def test_controller_appends_view_path_correctly
@controller.append_view_path 'foo'
assert_equal [LOAD_PATH_ROOT, 'foo'], @controller.view_paths
assert_equal [FIXTURE_LOAD_PATH, 'foo'], @controller.view_paths
@controller.append_view_path(%w(bar baz))
assert_equal [LOAD_PATH_ROOT, 'foo', 'bar', 'baz'], @controller.view_paths
assert_equal [FIXTURE_LOAD_PATH, 'foo', 'bar', 'baz'], @controller.view_paths
@controller.append_view_path(LOAD_PATH_ROOT)
assert_equal ['foo', 'bar', 'baz', LOAD_PATH_ROOT], @controller.view_paths
@controller.append_view_path(FIXTURE_LOAD_PATH)
assert_equal ['foo', 'bar', 'baz', FIXTURE_LOAD_PATH], @controller.view_paths
@controller.append_view_path([LOAD_PATH_ROOT])
assert_equal ['foo', 'bar', 'baz', LOAD_PATH_ROOT], @controller.view_paths
@controller.append_view_path([FIXTURE_LOAD_PATH])
assert_equal ['foo', 'bar', 'baz', FIXTURE_LOAD_PATH], @controller.view_paths
end
def test_controller_prepends_view_path_correctly
@controller.prepend_view_path 'baz'
assert_equal ['baz', LOAD_PATH_ROOT], @controller.view_paths
assert_equal ['baz', FIXTURE_LOAD_PATH], @controller.view_paths
@controller.prepend_view_path(%w(foo bar))
assert_equal ['foo', 'bar', 'baz', LOAD_PATH_ROOT], @controller.view_paths
assert_equal ['foo', 'bar', 'baz', FIXTURE_LOAD_PATH], @controller.view_paths
@controller.prepend_view_path(LOAD_PATH_ROOT)
assert_equal [LOAD_PATH_ROOT, 'foo', 'bar', 'baz'], @controller.view_paths
@controller.prepend_view_path(FIXTURE_LOAD_PATH)
assert_equal [FIXTURE_LOAD_PATH, 'foo', 'bar', 'baz'], @controller.view_paths
@controller.prepend_view_path([LOAD_PATH_ROOT])
assert_equal [LOAD_PATH_ROOT, 'foo', 'bar', 'baz'], @controller.view_paths
@controller.prepend_view_path([FIXTURE_LOAD_PATH])
assert_equal [FIXTURE_LOAD_PATH, 'foo', 'bar', 'baz'], @controller.view_paths
end
def test_template_appends_view_path_correctly
@ -83,10 +81,10 @@ class ViewLoadPathsTest < Test::Unit::TestCase
class_view_paths = TestController.view_paths
@controller.append_view_path 'foo'
assert_equal [LOAD_PATH_ROOT, 'foo'], @controller.view_paths
assert_equal [FIXTURE_LOAD_PATH, 'foo'], @controller.view_paths
@controller.append_view_path(%w(bar baz))
assert_equal [LOAD_PATH_ROOT, 'foo', 'bar', 'baz'], @controller.view_paths
assert_equal [FIXTURE_LOAD_PATH, 'foo', 'bar', 'baz'], @controller.view_paths
assert_equal class_view_paths, TestController.view_paths
end
@ -95,10 +93,10 @@ class ViewLoadPathsTest < Test::Unit::TestCase
class_view_paths = TestController.view_paths
@controller.prepend_view_path 'baz'
assert_equal ['baz', LOAD_PATH_ROOT], @controller.view_paths
assert_equal ['baz', FIXTURE_LOAD_PATH], @controller.view_paths
@controller.prepend_view_path(%w(foo bar))
assert_equal ['foo', 'bar', 'baz', LOAD_PATH_ROOT], @controller.view_paths
assert_equal ['foo', 'bar', 'baz', FIXTURE_LOAD_PATH], @controller.view_paths
assert_equal class_view_paths, TestController.view_paths
end
@ -109,7 +107,7 @@ class ViewLoadPathsTest < Test::Unit::TestCase
end
def test_view_paths_override
TestController.prepend_view_path "#{LOAD_PATH_ROOT}/override"
TestController.prepend_view_path "#{FIXTURE_LOAD_PATH}/override"
get :hello_world
assert_response :success
assert_equal "Hello overridden world!", @response.body
@ -117,7 +115,7 @@ class ViewLoadPathsTest < Test::Unit::TestCase
def test_view_paths_override_for_layouts_in_controllers_with_a_module
@controller = Test::SubController.new
Test::SubController.view_paths = [ "#{LOAD_PATH_ROOT}/override", LOAD_PATH_ROOT, "#{LOAD_PATH_ROOT}/override2" ]
Test::SubController.view_paths = [ "#{FIXTURE_LOAD_PATH}/override", FIXTURE_LOAD_PATH, "#{FIXTURE_LOAD_PATH}/override2" ]
get :hello_world
assert_response :success
assert_equal "layout: Hello overridden world!", @response.body

View File

@ -2,11 +2,9 @@ require 'abstract_unit'
require 'controller/fake_models'
class ViewRenderTest < Test::Unit::TestCase
FIXTURE_LOAD_PATHS = ActionView::ViewLoadPaths.new([File.join(File.dirname(__FILE__), '..', 'fixtures')])
def setup
@assigns = { :secret => 'in the sauce' }
@view = ActionView::Base.new(FIXTURE_LOAD_PATHS, @assigns)
@view = ActionView::Base.new([FIXTURE_LOAD_PATH], @assigns)
end
def test_render_file

View File

@ -301,7 +301,7 @@ end
class UrlHelperWithControllerTest < ActionView::TestCase
class UrlHelperController < ActionController::Base
self.view_paths = [ "#{File.dirname(__FILE__)}/../fixtures/" ]
self.view_paths = [FIXTURE_LOAD_PATH]
def self.controller_path; 'url_helper_with_controller' end
@ -356,7 +356,7 @@ end
class LinkToUnlessCurrentWithControllerTest < ActionView::TestCase
class TasksController < ActionController::Base
self.view_paths = ["#{File.dirname(__FILE__)}/../fixtures/"]
self.view_paths = [FIXTURE_LOAD_PATH]
def self.controller_path; 'tasks' end
@ -448,7 +448,7 @@ end
class PolymorphicControllerTest < ActionView::TestCase
class WorkshopsController < ActionController::Base
self.view_paths = ["#{File.dirname(__FILE__)}/../fixtures/"]
self.view_paths = [FIXTURE_LOAD_PATH]
def self.controller_path; 'workshops' end
@ -466,7 +466,7 @@ class PolymorphicControllerTest < ActionView::TestCase
end
class SessionsController < ActionController::Base
self.view_paths = ["#{File.dirname(__FILE__)}/../fixtures/"]
self.view_paths = [FIXTURE_LOAD_PATH]
def self.controller_path; 'sessions' end