diff options
author | Steve Mitchell <smitchell@groupon.com> | 2015-09-18 14:16:15 -0500 |
---|---|---|
committer | Steve Mitchell <smitchell@groupon.com> | 2015-09-18 14:16:15 -0500 |
commit | 40664444eef2432fc564d8eecb647854bd06e5c3 (patch) | |
tree | 0860d2a6e5dab80189a791bec3e06bb404498d6a /activerecord/test/cases | |
parent | 9347538312ba796ac698f06068b213ed17924e08 (diff) | |
download | rails-40664444eef2432fc564d8eecb647854bd06e5c3.tar.gz rails-40664444eef2432fc564d8eecb647854bd06e5c3.tar.bz2 rails-40664444eef2432fc564d8eecb647854bd06e5c3.zip |
Check response of structure_load for mysql_database_tasks and make structure_dump consistent
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/tasks/mysql_rake_test.rb | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/activerecord/test/cases/tasks/mysql_rake_test.rb b/activerecord/test/cases/tasks/mysql_rake_test.rb index d0deb4c273..edca42dfc0 100644 --- a/activerecord/test/cases/tasks/mysql_rake_test.rb +++ b/activerecord/test/cases/tasks/mysql_rake_test.rb @@ -274,11 +274,23 @@ module ActiveRecord filename = "awesome-file.sql" Kernel.expects(:system).with("mysqldump", "--result-file", filename, "--no-data", "--routines", "test-db").returns(false) - warnings = capture(:stderr) do + # There doesn't seem to be a good way to get a handle on a Process::Status object without actually + # creating a child process, hence this to populate $? + system("not_a_real_program_#{SecureRandom.hex}") + assert_raise(RuntimeError) { ActiveRecord::Tasks::DatabaseTasks.structure_dump(@configuration, filename) - end + } + end + + def test_warn_when_external_structure_dump_command_execution_fails + filename = "awesome-file.sql" + Kernel.expects(:system) + .with("mysqldump", "--result-file", filename, "--no-data", "--routines", "test-db") + .returns(nil) - assert_match(/Could not dump the database structure/, warnings) + assert_raise(RuntimeError) { + ActiveRecord::Tasks::DatabaseTasks.structure_dump(@configuration, filename) + } end def test_structure_dump_with_port_number @@ -311,6 +323,7 @@ module ActiveRecord def test_structure_load filename = "awesome-file.sql" Kernel.expects(:system).with('mysql', '--execute', %{SET FOREIGN_KEY_CHECKS = 0; SOURCE #{filename}; SET FOREIGN_KEY_CHECKS = 1}, "--database", "test-db") + .returns(true) ActiveRecord::Tasks::DatabaseTasks.structure_load(@configuration, filename) end |