merged cont.
[opensuse:yast-rest-service.git] / webservice-tasks / lib / tasks / override_test_db_path.rake
1 #--
2 # Webyast Webservice framework
3 #
4 # Copyright (C) 2009, 2010 Novell, Inc. 
5 #   This library is free software; you can redistribute it and/or modify
6 # it only under the terms of version 2.1 of the GNU Lesser General Public
7 # License as published by the Free Software Foundation. 
8 #
9 #   This library is distributed in the hope that it will be useful, but WITHOUT
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 
12 # details. 
13 #
14 #   You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software 
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 #++
18
19 # override path to the test sqlite3 database
20 # use value from TEST_DB_PATH environment variable
21 #
22 # needed during RPM build
23 #
24 # example: TEST_DB_PATH=/tmp/test_db.sqlite3 rake test
25 #
26
27
28 task :override_test_db do
29   unless ENV['TEST_DB_PATH'].nil? || ENV['TEST_DB_PATH'].empty?
30     puts "Using DB file for tests: #{ENV['TEST_DB_PATH']}"
31
32     # redefine the database config value in Rails::Configuration class
33     module Rails
34       class Configuration
35         alias database_configuration_orig database_configuration
36
37         def database_configuration
38           ret = database_configuration_orig
39           ret['test']['database'] = ENV['TEST_DB_PATH']
40           return ret
41         end
42       end
43     end
44
45     # modify the current DB config if already loaded
46     require 'active_record'
47     if !ActiveRecord::Base.configurations.blank?
48       ActiveRecord::Base.configurations['test']['database'] = ENV['TEST_DB_PATH']
49     end
50   end
51 end
52
53 # add a new dependency to the tasks which require 
54 # changed DB location
55
56 task :environment => :override_test_db
57
58 task :test => :override_test_db
59
60 namespace :db do
61   task :load_config => :override_test_db
62 end
63