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

Changeset 4804

Show
Ignore:
Timestamp:
08/22/06 04:38:03 (2 years ago)
Author:
bitsweat
Message:

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

Files:

Legend:

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

    r4793 r4804  
    11*SVN* 
     2 
     3* Clean up and run the Active Record integration tests by default.  [Jeremy Kemper] 
    24 
    35* Correct example in cookies docs.  #5832 [jessemerriman@warpmail.net] 
  • trunk/actionpack/Rakefile

    r4290 r4804  
    2323# Run the unit tests 
    2424 
    25 Rake::TestTask.new { |t| 
     25task :test => [:test_action_pack, :test_active_record_integration] 
     26 
     27Rake::TestTask.new(:test_action_pack) { |t| 
    2628  t.libs << "test" 
    2729# make sure we include the controller tests (c*) first as on some systems 
  • trunk/actionpack/test/active_record_unit.rb

    r3553 r4804  
    55  cattr_accessor :able_to_connect 
    66  cattr_accessor :connected 
    7    
     7 
    88  # Set our defaults 
    99  self.connected = false 
     
    1212 
    1313# Try to grab AR 
    14 begin 
    15   PATH_TO_AR = File.dirname(__FILE__) + '/../../activerecord' 
    16   require "#{PATH_TO_AR}/lib/active_record" unless Object.const_defined?(:ActiveRecord) 
    17   require "#{PATH_TO_AR}/lib/active_record/fixtures" unless Object.const_defined?(:Fixtures) 
    18 rescue Object => e 
    19   $stderr.puts "\nSkipping ActiveRecord assertion tests: #{e}" 
    20   ActiveRecordTestConnector.able_to_connect = false 
     14if defined?(ActiveRecord) && defined?(Fixtures) 
     15  $stderr.puts 'Active Record is already loaded, running tests' 
     16else 
     17  $stderr.print 'Attempting to load Active Record... ' 
     18  begin 
     19    PATH_TO_AR = "#{File.dirname(__FILE__)}/../../activerecord/lib" 
     20    raise "#{PATH_TO_AR} doesn't exist" unless File.directory?(PATH_TO_AR) 
     21    $LOAD_PATH.unshift PATH_TO_AR 
     22    require 'active_record' 
     23    require 'active_record/fixtures' 
     24    $stderr.puts 'success' 
     25  rescue Object => e 
     26    $stderr.print "failed. Skipping Active Record assertion tests: #{e}" 
     27    ActiveRecordTestConnector.able_to_connect = false 
     28  end 
    2129end 
     30$stderr.flush 
     31 
     32 
    2233 
    2334# Define the rest of the connector 
    24 class ActiveRecordTestConnector   
     35class ActiveRecordTestConnector 
    2536  def self.setup 
    2637    unless self.connected || !self.able_to_connect 
     
    3445    self.able_to_connect = false 
    3546  end 
    36    
     47 
    3748  private 
    38    
     49 
    3950  def self.setup_connection 
    4051    if Object.const_defined?(:ActiveRecord) 
    41            
    4252      begin 
    4353        ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :dbfile => ':memory:') 
     
    4858        ActiveRecord::Base.connection 
    4959      end 
    50      
     60 
    5161      Object.send(:const_set, :QUOTED_TYPE, ActiveRecord::Base.connection.quote_column_name('type')) unless Object.const_defined?(:QUOTED_TYPE) 
    5262    else 
     
    5464    end 
    5565  end 
    56    
     66 
    5767  # Load actionpack sqlite tables 
    5868  def self.load_schema 
     
    6272  end 
    6373end 
    64    
    65 # Test case for inheiritance   
     74 
     75# Test case for inheiritance 
    6676class ActiveRecordTestCase < Test::Unit::TestCase 
    6777  # Set our fixture path 
    68   self.fixture_path = "#{File.dirname(__FILE__)}/fixtures/" 
    69    
     78  if ActiveRecordTestConnector.able_to_connect 
     79    self.fixture_path = "#{File.dirname(__FILE__)}/fixtures/" 
     80    self.use_transactional_fixtures = false 
     81  end 
     82 
    7083  def setup 
    71     abort_tests unless ActiveRecordTestConnector.connected = true 
     84    abort_tests unless ActiveRecordTestConnector.connected 
    7285  end 
    73    
     86 
    7487  # Default so Test::Unit::TestCase doesn't complain 
    7588  def test_truth 
    7689  end 
    77    
     90 
    7891  private 
    79    
    80   # If things go wrong, we don't want to run our test cases. We'll just define them to test nothing. 
    81   def abort_tests 
    82     self.class.public_instance_methods.grep(/^test./).each do |method| 
    83       self.class.class_eval { define_method(method.to_sym){} } 
     92    # If things go wrong, we don't want to run our test cases. We'll just define them to test nothing. 
     93    def abort_tests 
     94      self.class.public_instance_methods.grep(/^test./).each do |method| 
     95        self.class.class_eval { define_method(method.to_sym){} } 
     96      end 
    8497    end 
    85   end 
    8698end 
    8799 
  • trunk/actionpack/test/activerecord/active_record_assertions_test.rb

    r3553 r4804  
    11require "#{File.dirname(__FILE__)}/../active_record_unit" 
    2 require 'fixtures/company' 
     2require 'fixtures/company' if ActiveRecordTestConnector.able_to_connect 
    33 
    44class ActiveRecordAssertionsController < ActionController::Base 
     
    3838  def rescue_action(e) raise; end 
    3939end 
    40                    
     40 
    4141class ActiveRecordAssertionsControllerTest < ActiveRecordTestCase 
    42   fixtures :companies 
    43    
     42  fixtures :companies if ActiveRecordTestConnector.able_to_connect 
     43 
    4444  def setup 
    4545    @request = ActionController::TestRequest.new 
  • trunk/actionpack/test/activerecord/active_record_store_test.rb

    r3817 r4804  
    7171 
    7272    ENV['REQUEST_METHOD'] = 'GET' 
     73    ENV['REQUEST_URI'] = '/' 
    7374    CGI::Session::ActiveRecordStore.session_class = session_class 
    7475 
  • trunk/actionpack/test/activerecord/pagination_test.rb

    r3620 r4804  
    11require File.dirname(__FILE__) + '/../active_record_unit' 
    22 
    3 require 'fixtures/topic' 
    4 require 'fixtures/reply' 
    5 require 'fixtures/developer' 
    6 require 'fixtures/project' 
     3if ActiveRecordTestConnector.able_to_connect 
     4  require 'fixtures/topic' 
     5  require 'fixtures/reply' 
     6  require 'fixtures/developer' 
     7  require 'fixtures/project' 
     8end 
    79 
    810class PaginationTest < ActiveRecordTestCase 
    9   fixtures :topics, :replies, :developers, :projects, :developers_projects 
     11  if ActiveRecordTestConnector.able_to_connect 
     12    fixtures :topics, :replies, :developers, :projects, :developers_projects 
     13  end 
    1014 
    1115  class PaginationController < ActionController::Base