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:
commit
d22859ed97
4 changed files with 38 additions and 10 deletions
|
@ -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).",
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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 ""
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in a new issue