aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/tasks
diff options
context:
space:
mode:
authorSteve Mitchell <smitchell@groupon.com>2015-09-18 14:16:15 -0500
committerSteve Mitchell <smitchell@groupon.com>2015-09-18 14:16:15 -0500
commit40664444eef2432fc564d8eecb647854bd06e5c3 (patch)
tree0860d2a6e5dab80189a791bec3e06bb404498d6a /activerecord/test/cases/tasks
parent9347538312ba796ac698f06068b213ed17924e08 (diff)
downloadrails-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/tasks')
-rw-r--r--activerecord/test/cases/tasks/mysql_rake_test.rb19
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