1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Merge pull request #6150 from avakhov/dbconsole-fixes

Rails db console improvements
This commit is contained in:
Piotr Sarnacki 2012-05-21 23:04:24 -07:00
commit d22859ed97
4 changed files with 38 additions and 10 deletions

View file

@ -22,7 +22,7 @@ module Rails
options = {}
OptionParser.new do |opt|
opt.banner = "Usage: console [environment] [options]"
opt.banner = "Usage: rails console [environment] [options]"
opt.on('-s', '--sandbox', 'Rollback database modifications on exit.') { |v| options[:sandbox] = v }
opt.on("-e", "--environment=name", String,
"Specifies the environment to run this console under (test/development/production).",

View file

@ -42,7 +42,7 @@ module Rails
include_password = false
options = {}
OptionParser.new do |opt|
opt.banner = "Usage: dbconsole [environment] [options]"
opt.banner = "Usage: rails dbconsole [environment] [options]"
opt.on("-p", "--include-password", "Automatically provide the password from database.yml") do |v|
include_password = true
end
@ -56,6 +56,11 @@ module Rails
options['header'] = h
end
opt.on("-h", "--help", "Show this help message.") do
puts opt
exit
end
opt.parse!(arguments)
abort opt.to_s unless (0..1).include?(arguments.size)
end
@ -96,7 +101,7 @@ module Rails
args << "-#{options['mode']}" if options['mode']
args << "-header" if options['header']
args << config['database']
args << File.expand_path(config['database'], Rails.root)
find_cmd_and_exec('sqlite3', *args)

View file

@ -9,7 +9,7 @@ if ARGV.first.nil?
end
ARGV.clone.options do |opts|
opts.banner = "Usage: runner [options] ('Some.ruby(code)' or a filename)"
opts.banner = "Usage: rails runner [options] ('Some.ruby(code)' or a filename)"
opts.separator ""

View file

@ -92,20 +92,25 @@ class Rails::DBConsoleTest < ActiveSupport::TestCase
end
def test_sqlite3
dbconsole.expects(:find_cmd_and_exec).with('sqlite3', 'db')
start(adapter: 'sqlite3', database: 'db')
dbconsole.expects(:find_cmd_and_exec).with('sqlite3', Rails.root.join('db.sqlite3').to_s)
start(adapter: 'sqlite3', database: 'db.sqlite3')
assert !aborted
end
def test_sqlite3_mode
dbconsole.expects(:find_cmd_and_exec).with('sqlite3', '-html', 'db')
start({adapter: 'sqlite3', database: 'db'}, ['--mode', 'html'])
dbconsole.expects(:find_cmd_and_exec).with('sqlite3', '-html', Rails.root.join('db.sqlite3').to_s)
start({adapter: 'sqlite3', database: 'db.sqlite3'}, ['--mode', 'html'])
assert !aborted
end
def test_sqlite3_header
dbconsole.expects(:find_cmd_and_exec).with('sqlite3', '-header', 'db')
start({adapter: 'sqlite3', database: 'db'}, ['--header'])
dbconsole.expects(:find_cmd_and_exec).with('sqlite3', '-header', Rails.root.join('db.sqlite3').to_s)
start({adapter: 'sqlite3', database: 'db.sqlite3'}, ['--header'])
end
def test_sqlite3_db_absolute_path
dbconsole.expects(:find_cmd_and_exec).with('sqlite3', '/tmp/db.sqlite3')
start(adapter: 'sqlite3', database: '/tmp/db.sqlite3')
assert !aborted
end
@ -127,6 +132,24 @@ class Rails::DBConsoleTest < ActiveSupport::TestCase
assert_match /Unknown command-line client for db/, output
end
def test_print_help_short
stdout = capture(:stdout) do
start({}, ['-h'])
end
assert aborted
assert_equal '', output
assert_match /Usage:.*dbconsole/, stdout
end
def test_print_help_long
stdout = capture(:stdout) do
start({}, ['--help'])
end
assert aborted
assert_equal '', output
assert_match /Usage:.*dbconsole/, stdout
end
private
attr_reader :aborted, :output