Module: EtestUnit::TestSuiteCreator::ActiveRecordAdditions

Defined in:
lib/etest-unit.rb

Instance Method Summary collapse

Instance Method Details

#in_transaction(&block) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/etest-unit.rb', line 42

def in_transaction(&block)
  old_log_level = set_log_level(Logger::ERROR)
  ActiveRecord::Base.transaction do
    begin
      set_log_level(old_log_level)
      yield
    ensure
      set_log_level(Logger::ERROR)
      raise ActiveRecord::Rollback, "Rollback test transaction"
    end
  end
rescue
  STDERR.puts "Could not run etest in transaction: #{$!}"
ensure
  set_log_level(old_log_level)
end

#run_test(test, result) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/etest-unit.rb', line 59

def run_test(test, result)
  running_tests_in_transaction = nil
  
  in_transaction do
    running_tests_in_transaction = true
    super(test, result)
  end

  if !running_tests_in_transaction
    super(test, result)
  end
end

#set_log_level(level) ⇒ Object



34
35
36
37
38
39
40
# File 'lib/etest-unit.rb', line 34

def set_log_level(level)
  return unless ActiveRecord::Base.logger
  
  r = ActiveRecord::Base.logger.level
  ActiveRecord::Base.logger.level = level
  r
end