From f3f881e47ee5d35d336803520348ae99c82e3ad4 Mon Sep 17 00:00:00 2001 From: lukemelia Date: Fri, 30 Mar 2007 12:44:58 +0000 Subject: [PATCH] copy memory_test_fix plugin from branch git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@516 a4c988fc-2ded-0310-b66e-134b36920a42 --- tracks/vendor/plugins/memory_test_fix/README | 35 ++++++++++++++++ .../vendor/plugins/memory_test_fix/Rakefile | 22 ++++++++++ .../vendor/plugins/memory_test_fix/about.yml | 7 ++++ tracks/vendor/plugins/memory_test_fix/init.rb | 2 + .../memory_test_fix/lib/memory_test_fix.rb | 42 +++++++++++++++++++ 5 files changed, 108 insertions(+) create mode 100644 tracks/vendor/plugins/memory_test_fix/README create mode 100644 tracks/vendor/plugins/memory_test_fix/Rakefile create mode 100644 tracks/vendor/plugins/memory_test_fix/about.yml create mode 100644 tracks/vendor/plugins/memory_test_fix/init.rb create mode 100644 tracks/vendor/plugins/memory_test_fix/lib/memory_test_fix.rb diff --git a/tracks/vendor/plugins/memory_test_fix/README b/tracks/vendor/plugins/memory_test_fix/README new file mode 100644 index 00000000..7972efdd --- /dev/null +++ b/tracks/vendor/plugins/memory_test_fix/README @@ -0,0 +1,35 @@ +MemoryTestFix +============= + +A simple fix to run tests with sqlite. From example at + +http://blog.seagul.co.uk/articles/2006/02/08/in-memory-sqlite-database-for-rails-testing + +In your database.yml, use + + test: + adapter: sqlite3 + database: ":memory:" + +It runs much faster! + +You can also adjust the verbosity of the output: + +test: + adapter: sqlite3 + database: ":memory:" + verbosity: silent + +== Authors + +Chris Roos + +Adapted by Geoffrey Grosenbach, http://nubyonrails.com + +Verbosity patch by Kakutani Shintaro + +== Changelog + +* Updated to look for either so it works with Rails 1.2 and also older versions +* Updated to use ActiveRecord::ConnectionAdapters::SQLite3Adapter for Rails 1.2 + diff --git a/tracks/vendor/plugins/memory_test_fix/Rakefile b/tracks/vendor/plugins/memory_test_fix/Rakefile new file mode 100644 index 00000000..1ca2d969 --- /dev/null +++ b/tracks/vendor/plugins/memory_test_fix/Rakefile @@ -0,0 +1,22 @@ +require 'rake' +require 'rake/testtask' +require 'rake/rdoctask' + +desc 'Default: run unit tests.' +task :default => :test + +desc 'Test the memory_test_fix plugin.' +Rake::TestTask.new(:test) do |t| + t.libs << 'lib' + t.pattern = 'test/**/*_test.rb' + t.verbose = true +end + +desc 'Generate documentation for the memory_test_fix plugin.' +Rake::RDocTask.new(:rdoc) do |rdoc| + rdoc.rdoc_dir = 'rdoc' + rdoc.title = 'MemoryTestFix' + rdoc.options << '--line-numbers' << '--inline-source' + rdoc.rdoc_files.include('README') + rdoc.rdoc_files.include('lib/**/*.rb') +end diff --git a/tracks/vendor/plugins/memory_test_fix/about.yml b/tracks/vendor/plugins/memory_test_fix/about.yml new file mode 100644 index 00000000..d11ce0a9 --- /dev/null +++ b/tracks/vendor/plugins/memory_test_fix/about.yml @@ -0,0 +1,7 @@ +author: Chris Roos +summary: Makes SQLite3 memory tests possible by preloading the schema. +homepage: http://blog.seagul.co.uk/articles/2006/02/08/in-memory-sqlite-database-for-rails-testing +plugin: http://topfunky.net/svn/plugins/memory_test_fix +license: MIT +version: 0.1 +rails_version: 1.1+ diff --git a/tracks/vendor/plugins/memory_test_fix/init.rb b/tracks/vendor/plugins/memory_test_fix/init.rb new file mode 100644 index 00000000..838b8bb6 --- /dev/null +++ b/tracks/vendor/plugins/memory_test_fix/init.rb @@ -0,0 +1,2 @@ + +require 'memory_test_fix' diff --git a/tracks/vendor/plugins/memory_test_fix/lib/memory_test_fix.rb b/tracks/vendor/plugins/memory_test_fix/lib/memory_test_fix.rb new file mode 100644 index 00000000..05e17b8c --- /dev/null +++ b/tracks/vendor/plugins/memory_test_fix/lib/memory_test_fix.rb @@ -0,0 +1,42 @@ + +# Update: Looks for the SQLite and SQLite3 adapters for +# compatibility with Rails 1.2.2 and also older versions. +def in_memory_database? + if ENV["RAILS_ENV"] == "test" and Rails::Configuration.new.database_configuration['test']['database'] == ':memory:' + begin + if ActiveRecord::Base.connection.class == ActiveRecord::ConnectionAdapters::SQLite3Adapter + return true + end + rescue NameError => e + if ActiveRecord::Base.connection.class == ActiveRecord::ConnectionAdapters::SQLiteAdapter + return true + end + end + end + false +end + +def verbosity + Rails::Configuration.new.database_configuration['test']['verbosity'] +end + +def inform_using_in_memory + puts "Creating sqlite :memory: database" +end + +if in_memory_database? + load_schema = lambda { + #load "#{RAILS_ROOT}/db/schema.rb" # use db agnostic schema by default + ActiveRecord::Migrator.up('db/migrate') # use migrations + } + case verbosity + when "silent" + silence_stream(STDOUT, &load_schema) + when "quiet" + inform_using_in_memory + silence_stream(STDOUT, &load_schema) + else + inform_using_in_memory + load_schema.call + end +end