diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2012-05-05 15:12:32 -0700 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2012-05-05 15:12:32 -0700 |
commit | 4d8bc1da8804b81f4c8eb298cd9383160f0a3825 (patch) | |
tree | f92bdfe899e52534fcef3b012de1449a0036ec5a /activerecord/test | |
parent | 3af9e721b46d04512653ec356385bcd9e90c3212 (diff) | |
parent | 2054a17dd8e8be74b906a211d217e3183e2f40d6 (diff) | |
download | rails-4d8bc1da8804b81f4c8eb298cd9383160f0a3825.tar.gz rails-4d8bc1da8804b81f4c8eb298cd9383160f0a3825.tar.bz2 rails-4d8bc1da8804b81f4c8eb298cd9383160f0a3825.zip |
Merge pull request #6069 from mipearson/use_strict_mode_in_mysql
Use strict mode in mysql
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/adapters/mysql/connection_test.rb | 13 | ||||
-rw-r--r-- | activerecord/test/cases/adapters/mysql2/connection_test.rb | 16 | ||||
-rw-r--r-- | activerecord/test/schema/schema.rb | 4 |
3 files changed, 32 insertions, 1 deletions
diff --git a/activerecord/test/cases/adapters/mysql/connection_test.rb b/activerecord/test/cases/adapters/mysql/connection_test.rb index fa2ba8d592..5e1c52c9ba 100644 --- a/activerecord/test/cases/adapters/mysql/connection_test.rb +++ b/activerecord/test/cases/adapters/mysql/connection_test.rb @@ -120,6 +120,19 @@ class MysqlConnectionTest < ActiveRecord::TestCase end end + def test_mysql_default_in_strict_mode + result = @connection.exec_query "SELECT @@SESSION.sql_mode" + assert_equal [["STRICT_ALL_TABLES"]], result.rows + end + + def test_mysql_strict_mode_disabled + run_without_connection do |orig_connection| + ActiveRecord::Model.establish_connection(orig_connection.merge({:strict => false})) + result = ActiveRecord::Model.connection.exec_query "SELECT @@SESSION.sql_mode" + assert_equal [['']], result.rows + end + end + private def run_without_connection diff --git a/activerecord/test/cases/adapters/mysql2/connection_test.rb b/activerecord/test/cases/adapters/mysql2/connection_test.rb index 8e2b9ca9a5..684c7f5929 100644 --- a/activerecord/test/cases/adapters/mysql2/connection_test.rb +++ b/activerecord/test/cases/adapters/mysql2/connection_test.rb @@ -29,6 +29,22 @@ class MysqlConnectionTest < ActiveRecord::TestCase assert @connection.active? end + # TODO: Below is a straight up copy/paste from mysql/connection_test.rb + # I'm not sure what the correct way is to share these tests between + # adapters in minitest. + def test_mysql_default_in_strict_mode + result = @connection.exec_query "SELECT @@SESSION.sql_mode" + assert_equal [["STRICT_ALL_TABLES"]], result.rows + end + + def test_mysql_strict_mode_disabled + run_without_connection do |orig_connection| + ActiveRecord::Model.establish_connection(orig_connection.merge({:strict => false})) + result = ActiveRecord::Model.connection.exec_query "SELECT @@SESSION.sql_mode" + assert_equal [['']], result.rows + end + end + private def run_without_connection diff --git a/activerecord/test/schema/schema.rb b/activerecord/test/schema/schema.rb index 7082d5dc86..cef08cd99c 100644 --- a/activerecord/test/schema/schema.rb +++ b/activerecord/test/schema/schema.rb @@ -38,7 +38,9 @@ ActiveRecord::Schema.define do create_table :admin_users, :force => true do |t| t.string :name t.text :settings, :null => true - t.text :preferences, :null => false, :default => "" + # MySQL does not allow default values for blobs. Fake it out with a + # big varchar below. + t.string :preferences, :null => false, :default => '', :limit => 1024 t.references :account end |