diff options
author | Jon Leighton <j@jonathanleighton.com> | 2011-06-04 23:19:17 +0100 |
---|---|---|
committer | Jon Leighton <j@jonathanleighton.com> | 2011-06-04 23:47:03 +0100 |
commit | 253bb6b9260938ed673e2c0059d729cffff4a523 (patch) | |
tree | cf8aa429645a0c73d32e8fe0eecf62a536488bdd /activerecord/test/support/config.rb | |
parent | cdce7ff191313bd99a31d26ddca5a5c8be766695 (diff) | |
download | rails-253bb6b9260938ed673e2c0059d729cffff4a523.tar.gz rails-253bb6b9260938ed673e2c0059d729cffff4a523.tar.bz2 rails-253bb6b9260938ed673e2c0059d729cffff4a523.zip |
Refactor Active Record test connection setup. Please see the RUNNING_UNIT_TESTS file for details, but essentially you can now configure things in test/config.yml. You can also run tests directly via the command line, e.g. ruby path/to/test.rb (no rake needed, uses default db connection from test/config.yml). This will help us fix the CI by enabling us to isolate the different Rails versions to different databases.
Diffstat (limited to 'activerecord/test/support/config.rb')
-rw-r--r-- | activerecord/test/support/config.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/activerecord/test/support/config.rb b/activerecord/test/support/config.rb new file mode 100644 index 0000000000..2760d88d20 --- /dev/null +++ b/activerecord/test/support/config.rb @@ -0,0 +1,39 @@ +require 'yaml' +require 'erubis' +require 'fileutils' + +module ARTest + class << self + def config + @config ||= read_config + end + + private + + def read_config + unless File.exist?(TEST_ROOT + '/config.yml') + FileUtils.cp TEST_ROOT + '/config.example.yml', TEST_ROOT + '/config.yml' + end + + raw = File.read(TEST_ROOT + '/config.yml') + erb = Erubis::Eruby.new(raw) + expand_config(YAML.parse(erb.result(binding)).transform) + end + + def expand_config(config) + config['connections'].each do |adapter, connection| + dbs = [['arunit', 'activerecord_unittest'], ['arunit2', 'activerecord_unittest']] + dbs.each do |name, dbname| + unless connection[name].is_a?(Hash) + connection[name] = { 'database' => connection[name] } + end + + connection[name]['database'] ||= dbname + connection[name]['adapter'] ||= adapter + end + end + + config + end + end +end |