class ActiveRecord::MysqlDBCreateAsRootTest
Public Instance Methods
setup()
click to toggle source
# File activerecord/test/cases/tasks/mysql_rake_test.rb, line 79 def setup @connection = stub("Connection", create_database: true) @error = Mysql2::Error.new("Invalid permissions") @configuration = { "adapter" => "mysql2", "database" => "my-app-db", "username" => "pat", "password" => "wossname" } $stdin.stubs(:gets).returns("secret\n") $stdout.stubs(:print).returns(nil) @error.stubs(:errno).returns(1045) ActiveRecord::Base.stubs(:connection).returns(@connection) ActiveRecord::Base.stubs(:establish_connection). raises(@error). then.returns(true) $stdout, @original_stdout = StringIO.new, $stdout $stderr, @original_stderr = StringIO.new, $stderr end
teardown()
click to toggle source
# File activerecord/test/cases/tasks/mysql_rake_test.rb, line 101 def teardown $stdout, $stderr = @original_stdout, @original_stderr end
test_connection_established_as_normal_user()
click to toggle source
# File activerecord/test/cases/tasks/mysql_rake_test.rb, line 143 def test_connection_established_as_normal_user assert_permissions_granted_for("pat") ActiveRecord::Base.expects(:establish_connection).returns do ActiveRecord::Base.expects(:establish_connection).with( "adapter" => "mysql2", "database" => "my-app-db", "username" => "pat", "password" => "secret" ) raise @error end ActiveRecord::Tasks::DatabaseTasks.create @configuration end
test_connection_established_as_root()
click to toggle source
# File activerecord/test/cases/tasks/mysql_rake_test.rb, line 112 def test_connection_established_as_root assert_permissions_granted_for("pat") ActiveRecord::Base.expects(:establish_connection).with( "adapter" => "mysql2", "database" => nil, "username" => "root", "password" => "secret" ) ActiveRecord::Tasks::DatabaseTasks.create @configuration end
test_database_created_by_root()
click to toggle source
# File activerecord/test/cases/tasks/mysql_rake_test.rb, line 124 def test_database_created_by_root assert_permissions_granted_for("pat") @connection.expects(:create_database). with("my-app-db", {}) ActiveRecord::Tasks::DatabaseTasks.create @configuration end
test_do_not_grant_privileges_for_root_user()
click to toggle source
# File activerecord/test/cases/tasks/mysql_rake_test.rb, line 137 def test_do_not_grant_privileges_for_root_user @configuration["username"] = "root" @configuration["password"] = "" ActiveRecord::Tasks::DatabaseTasks.create @configuration end
test_grant_privileges_for_normal_user()
click to toggle source
# File activerecord/test/cases/tasks/mysql_rake_test.rb, line 132 def test_grant_privileges_for_normal_user assert_permissions_granted_for("pat") ActiveRecord::Tasks::DatabaseTasks.create @configuration end
test_root_password_is_requested()
click to toggle source
# File activerecord/test/cases/tasks/mysql_rake_test.rb, line 105 def test_root_password_is_requested assert_permissions_granted_for("pat") $stdin.expects(:gets).returns("secret\n") ActiveRecord::Tasks::DatabaseTasks.create @configuration end
test_sends_output_to_stderr_when_other_errors()
click to toggle source
# File activerecord/test/cases/tasks/mysql_rake_test.rb, line 159 def test_sends_output_to_stderr_when_other_errors @error.stubs(:errno).returns(42) $stderr.expects(:puts).at_least_once.returns(nil) ActiveRecord::Tasks::DatabaseTasks.create @configuration end
Private Instance Methods
assert_permissions_granted_for(db_user)
click to toggle source
# File activerecord/test/cases/tasks/mysql_rake_test.rb, line 169 def assert_permissions_granted_for(db_user) db_name = @configuration["database"] db_password = @configuration["password"] @connection.expects(:execute).with("GRANT ALL PRIVILEGES ON `#{db_name}`.* TO '#{db_user}'@'localhost' IDENTIFIED BY '#{db_password}' WITH GRANT OPTION;") end