Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 4807

Show
Ignore:
Timestamp:
08/22/06 09:19:55 (2 years ago)
Author:
bitsweat
Message:

Clean up and run the Active Record integration tests by default. Closes #5854.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/actionpack/CHANGELOG

    r4804 r4807  
    11*SVN* 
    22 
    3 * Clean up and run the Active Record integration tests by default.  [Jeremy Kemper] 
     3* Clean up and run the Active Record integration tests by default.  #5854 [kevin.clark@gmail.com, Jeremy Kemper] 
    44 
    55* Correct example in cookies docs.  #5832 [jessemerriman@warpmail.net] 
  • trunk/actionpack/test/abstract_unit.rb

    r3777 r4807  
    77require 'action_controller' 
    88require 'breakpoint' 
    9  
    109require 'action_controller/test_process' 
    1110 
  • trunk/actionpack/test/active_record_unit.rb

    r4804 r4807  
    3434# Define the rest of the connector 
    3535class ActiveRecordTestConnector 
    36   def self.setup 
    37     unless self.connected || !self.able_to_connect 
    38       setup_connection 
    39       load_schema 
    40       self.connected = true 
     36  class << self 
     37    def setup 
     38      unless self.connected || !self.able_to_connect 
     39        setup_connection 
     40        load_schema 
     41        require_fixture_models 
     42        self.connected = true 
     43      end 
     44    rescue Object => e 
     45      $stderr.puts "\nSkipping ActiveRecord assertion tests: #{e}" 
     46      #$stderr.puts "  #{e.backtrace.join("\n  ")}\n" 
     47      self.able_to_connect = false 
    4148    end 
    42   rescue Object => e 
    43     $stderr.puts "\nSkipping ActiveRecord assertion tests: #{e}" 
    44     #$stderr.puts "  #{e.backtrace.join("\n  ")}\n" 
    45     self.able_to_connect = false 
    46   end 
    4749 
    48   private 
     50    private 
    4951 
    50   def self.setup_connection 
    51     if Object.const_defined?(:ActiveRecord) 
    52       begin 
    53         ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :dbfile => ':memory:') 
    54         ActiveRecord::Base.connection 
    55       rescue Object 
    56         $stderr.puts 'SQLite 3 unavailable; falling to SQLite 2.' 
    57         ActiveRecord::Base.establish_connection(:adapter => 'sqlite', :dbfile => ':memory:') 
    58         ActiveRecord::Base.connection 
     52    def setup_connection 
     53      if Object.const_defined?(:ActiveRecord) 
     54        begin 
     55          connection_options = {:adapter => 'sqlite3', :dbfile => ':memory:'} 
     56          ActiveRecord::Base.establish_connection(connection_options) 
     57          ActiveRecord::Base.configurations = { 'sqlite3_ar_integration' => connection_options }  
     58          ActiveRecord::Base.connection 
     59        rescue Object 
     60          $stderr.puts 'SQLite 3 unavailable; falling to SQLite 2.' 
     61          connection_options = {:adapter => 'sqlite', :dbfile => ':memory:'} 
     62          ActiveRecord::Base.establish_connection(connection_options) 
     63          ActiveRecord::Base.configurations = { 'sqlite2_ar_integration' => connection_options }  
     64          ActiveRecord::Base.connection 
     65        end 
     66 
     67        Object.send(:const_set, :QUOTED_TYPE, ActiveRecord::Base.connection.quote_column_name('type')) unless Object.const_defined?(:QUOTED_TYPE) 
     68      else 
     69        raise "Couldn't locate ActiveRecord." 
    5970      end 
     71    end 
    6072 
    61       Object.send(:const_set, :QUOTED_TYPE, ActiveRecord::Base.connection.quote_column_name('type')) unless Object.const_defined?(:QUOTED_TYPE) 
    62     else 
    63       raise "Couldn't locate ActiveRecord." 
     73    # Load actionpack sqlite tables 
     74    def load_schema 
     75      File.read(File.dirname(__FILE__) + "/fixtures/db_definitions/sqlite.sql").split(';').each do |sql| 
     76        ActiveRecord::Base.connection.execute(sql) unless sql.blank? 
     77      end 
    6478    end 
    65   end 
    6679 
    67   # Load actionpack sqlite tables 
    68   def self.load_schema 
    69     File.read(File.dirname(__FILE__) + "/fixtures/db_definitions/sqlite.sql").split(';').each do |sql| 
    70       ActiveRecord::Base.connection.execute(sql) unless sql.blank? 
     80    def require_fixture_models 
     81      Dir.glob(File.dirname(__FILE__) + "/fixtures/*.rb").each {|f| require f} 
    7182    end 
    7283  end 
     
    7990    self.fixture_path = "#{File.dirname(__FILE__)}/fixtures/" 
    8091    self.use_transactional_fixtures = false 
     92  end 
     93 
     94  def self.fixtures(*args) 
     95    super if ActiveRecordTestConnector.connected 
    8196  end 
    8297 
  • trunk/actionpack/test/activerecord/active_record_assertions_test.rb

    r4804 r4807  
    11require "#{File.dirname(__FILE__)}/../active_record_unit" 
    2 require 'fixtures/company' if ActiveRecordTestConnector.able_to_connect 
    32 
    43class ActiveRecordAssertionsController < ActionController::Base 
     
    4039 
    4140class ActiveRecordAssertionsControllerTest < ActiveRecordTestCase 
    42   fixtures :companies if ActiveRecordTestConnector.able_to_connect 
     41  fixtures :companies 
    4342 
    4443  def setup 
  • trunk/actionpack/test/activerecord/active_record_store_test.rb

    r4804 r4807  
    1 # Unfurl the safety net. 
    2 path_to_ar = File.dirname(__FILE__) + '/../../../activerecord' 
    3 if Object.const_defined?(:ActiveRecord) or File.exist?(path_to_ar) 
    4   begin 
    5  
    61# These tests exercise CGI::Session::ActiveRecordStore, so you're going to 
    72# need AR in a sibling directory to AP and have SQLite installed. 
    8  
    9 unless Object.const_defined?(:ActiveRecord) 
    10   require File.join(path_to_ar, 'lib', 'active_record') 
    11 end 
    12  
    13 require File.dirname(__FILE__) + '/../abstract_unit' 
     3require File.dirname(__FILE__) + '/../active_record_unit' 
    144require 'action_controller/session/active_record_store' 
    15  
    16 #ActiveRecord::Base.logger = Logger.new($stdout) 
    17 begin 
    18   CGI::Session::ActiveRecordStore::Session.establish_connection(:adapter => 'sqlite3', :database => ':memory:') 
    19   CGI::Session::ActiveRecordStore::Session.connection 
    20 rescue Object 
    21   $stderr.puts 'SQLite 3 unavailable; falling back to SQLite 2.' 
    22   begin 
    23     CGI::Session::ActiveRecordStore::Session.establish_connection(:adapter => 'sqlite', :database => ':memory:') 
    24     CGI::Session::ActiveRecordStore::Session.connection 
    25   rescue Object 
    26     $stderr.puts 'SQLite 2 unavailable; skipping ActiveRecordStore test suite.' 
    27     raise SystemExit 
    28   end 
    29 end 
    305 
    316 
     
    166141  end 
    167142end 
    168  
    169  
    170 # End of safety net. 
    171   rescue Object => e 
    172     $stderr.puts "Skipping CGI::Session::ActiveRecordStore tests: #{e}" 
    173     #$stderr.puts "  #{e.backtrace.join("\n  ")}" 
    174   end 
    175 end 
  • trunk/actionpack/test/activerecord/pagination_test.rb

    r4804 r4807  
    11require File.dirname(__FILE__) + '/../active_record_unit' 
    22 
    3 if ActiveRecordTestConnector.able_to_connect 
    4   require 'fixtures/topic' 
    5   require 'fixtures/reply' 
    6   require 'fixtures/developer' 
    7   require 'fixtures/project' 
    8 end 
    9  
    103class PaginationTest < ActiveRecordTestCase 
    11   if ActiveRecordTestConnector.able_to_connect 
    12     fixtures :topics, :replies, :developers, :projects, :developers_projects 
    13   end 
    14  
     4  fixtures :topics, :replies, :developers, :projects, :developers_projects 
     5   
    156  class PaginationController < ActionController::Base 
    167    self.template_root = "#{File.dirname(__FILE__)}/../fixtures/"