Sha256: 9d5be2f929db8476b6b0c8693cddf56924172b27096e0eadb9036eae5a1918f8

Contents?: true

Size: 1.8 KB

Versions: 1

Compression:

Stored size: 1.8 KB

Contents

require 'test/unit'
require 'i18n'
require 'i18n/backend/active_record'

require 'armot'
require 'logger'

ActiveRecord::Base.logger = Logger.new(nil)
ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")

# Allow fallbacks to test production-like behaviour
I18n::Backend::ActiveRecord.send(:include, I18n::Backend::Fallbacks)
I18n.backend = I18n::Backend::ActiveRecord.new

def setup_db
  ActiveRecord::Migration.verbose = false
  load "schema.rb"
end

def teardown_db
  ActiveRecord::Base.connection.tables.each do |table|
    ActiveRecord::Base.connection.drop_table(table)
  end
end

class Comment < ActiveRecord::Base
  armotize :msg
end

class Post < ActiveRecord::Base
  armotize :title, :text
  validates_presence_of :title
end

class Product < ActiveRecord::Base
  armotize :name

  def name=(value)
    super(value + " customized")
  end

  def self.find_by_name(value)
    "#{super(value).try(:name)}_override"
  end
end

# Puret translation model to test migration process
class PostTranslation < ActiveRecord::Base
end

def count_query_reads_for(clazz)
  old = ActiveRecord::Base.logger
  log_stream = StringIO.new
  logger = Logger.new(log_stream)
  ActiveRecord::Base.logger = logger
  yield
  ActiveRecord::Base.logger = old
  logger.close
  log_stream.string.scan(/#{clazz} Load/).size
end

def count_query_updates_for(clazz)
  old = ActiveRecord::Base.logger
  log_stream = StringIO.new
  logger = Logger.new(log_stream)
  ActiveRecord::Base.logger = logger
  yield
  ActiveRecord::Base.logger = old
  logger.close
  log_stream.string.scan(/UPDATE \"#{clazz.constantize.table_name}\"/).size
end

def with_no_method(target, name)
  target.send(:alias_method, :method_backup, name)
  target.send(:remove_method, name)
  yield

ensure
  target.send(:alias_method, name, :method_backup)
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
armot-0.3.4 test/test_helper.rb