1717
1818
1919# These are tasks for the core browsercms project, and shouldn't be bundled into the distributable gem
20- namespace :test do
21-
22- # Could be improved somewhat to get rid of unneeded warnings.
23- desc "run tests against sqlite database"
24- task :sqlite3 do
25- cp ( File . join ( 'config' , 'database.sqlite3.yml' ) , File . join ( 'config' , 'database.yml' ) , :verbose => true )
26- Rake ::Task [ 'db:drop' ] . invoke
27- Rake ::Task [ 'db:create' ] . invoke
28- system "rake db:migrate test"
29- end
30-
31- # Could be improved somewhat to get rid of unneeded warnings.
32- desc "run tests against mysql database"
33- task :mysql do
34- cp ( File . join ( 'config' , 'database.mysql.yml' ) , File . join ( 'config' , 'database.yml' ) , :verbose => true )
35- Rake ::Task [ 'db:drop' ] . invoke
36- Rake ::Task [ 'db:create' ] . invoke
37- system "rake db:migrate test"
20+ namespace :project do
21+
22+ # Could be improved somewhat to get rid of unneeded warnings.
23+ #desc "run tests against sqlite database"
24+ #task :sqlite3 do
25+ # cp(File.join('config', 'database.sqlite3.yml'), File.join('config', 'database.yml'), :verbose => true)
26+ # Rake::Task['db:drop'].invoke
27+ # Rake::Task['db:create'].invoke
28+ # system "rake db:migrate test"
29+ #end
30+ #
31+ ## Could be improved somewhat to get rid of unneeded warnings.
32+ #desc "run tests against mysql database"
33+ #task :mysql do
34+ # cp(File.join('config', 'database.mysql.yml'), File.join('config', 'database.yml'), :verbose => true)
35+ # Rake::Task['db:drop'].invoke
36+ # Rake::Task['db:create'].invoke
37+ # system "rake db:migrate test"
38+ #end
39+
40+ task :ensure_db_exists do
41+ unless File . exists? ( "test/dummy/config/database.yml" )
42+ fail ( "Need to create a database.yml file before running tests. Run:\n $ rake project:setup[database] to create a sample database.yml for the project." )
43+ end
3844 end
3945
4046 desc 'Copy database.yml files for running tests'
41- task :setup do
42- drivers = %w( jdbcmysql mysql postgres sqlite3 ) . each do |driver |
43- source = File . join ( 'config' , "database.#{ driver } .yml.example" )
44- destination = File . join ( 'config' , "database.#{ driver } .yml" )
45- cp ( source , destination , :verbose => true )
47+ task :setup , :database do |t , args |
48+ drivers = %w( jdbcmysql mysql postgres sqlite3 )
49+ unless drivers . include? ( args [ :database ] )
50+ fail ( "'#{ args [ :database ] } ' is not an available database. Choose from one of the following #{ drivers . inspect } . i.e\n \t $ rake project:setup[mysql]" )
4651 end
4752
48- source = File . join ( 'test/dummy/config' , "database.yml.example " )
53+ source = File . join ( 'test/dummy/config' , "database.#{ args [ :database ] } .yml " )
4954 destination = File . join ( 'test/dummy/config' , "database.yml" )
5055 cp ( source , destination , :verbose => true )
56+
57+
5158 end
5259end
0 commit comments