diff options
author | Yves Senn <yves.senn@gmail.com> | 2014-04-02 08:44:00 +0200 |
---|---|---|
committer | Yves Senn <yves.senn@gmail.com> | 2014-04-02 08:44:00 +0200 |
commit | 793412418489f85758cc60229b95e8508cf7b776 (patch) | |
tree | c4c7913f8777098300556087eae12781bedc691a | |
parent | 442d722b0844d65f388373951ccbccdbaa79a03f (diff) | |
parent | 9896c5fba9686524600d58e703e2aae80105043b (diff) | |
download | rails-793412418489f85758cc60229b95e8508cf7b776.tar.gz rails-793412418489f85758cc60229b95e8508cf7b776.tar.bz2 rails-793412418489f85758cc60229b95e8508cf7b776.zip |
Merge pull request #14550 from tgxworld/fix_failing_enum_test_random_order
Allow postgresql enum_test to be run in random order.
-rw-r--r-- | activerecord/test/cases/adapters/postgresql/domain_test.rb | 8 | ||||
-rw-r--r-- | activerecord/test/cases/adapters/postgresql/enum_test.rb | 14 | ||||
-rw-r--r-- | activerecord/test/support/postgresql_helper.rb | 8 |
3 files changed, 21 insertions, 9 deletions
diff --git a/activerecord/test/cases/adapters/postgresql/domain_test.rb b/activerecord/test/cases/adapters/postgresql/domain_test.rb index fdf5ce974d..ba25a64fac 100644 --- a/activerecord/test/cases/adapters/postgresql/domain_test.rb +++ b/activerecord/test/cases/adapters/postgresql/domain_test.rb @@ -1,18 +1,17 @@ # -*- coding: utf-8 -*- require "cases/helper" +require 'support/postgresql_helper' require 'active_record/base' require 'active_record/connection_adapters/postgresql_adapter' class PostgresqlDomainTest < ActiveRecord::TestCase + include PostgresqlHelper + class PostgresqlDomain < ActiveRecord::Base self.table_name = "postgresql_domains" end def setup - # reset connection to bust all cached statement plans - connection_spec = ActiveRecord::Base.remove_connection - ActiveRecord::Base.establish_connection(connection_spec) - @connection = ActiveRecord::Base.connection @connection.transaction do @connection.execute "CREATE DOMAIN custom_money as numeric(8,2)" @@ -28,6 +27,7 @@ class PostgresqlDomainTest < ActiveRecord::TestCase teardown do @connection.execute 'DROP TABLE IF EXISTS postgresql_domains' @connection.execute 'DROP DOMAIN IF EXISTS custom_money' + reset_pg_session end def test_column diff --git a/activerecord/test/cases/adapters/postgresql/enum_test.rb b/activerecord/test/cases/adapters/postgresql/enum_test.rb index ac78c2426e..fde01314a5 100644 --- a/activerecord/test/cases/adapters/postgresql/enum_test.rb +++ b/activerecord/test/cases/adapters/postgresql/enum_test.rb @@ -1,18 +1,16 @@ # -*- coding: utf-8 -*- require "cases/helper" +require 'support/postgresql_helper' require 'active_record/base' require 'active_record/connection_adapters/postgresql_adapter' class PostgresqlEnumTest < ActiveRecord::TestCase + include PostgresqlHelper + class PostgresqlEnum < ActiveRecord::Base self.table_name = "postgresql_enums" end - teardown do - @connection.execute 'DROP TABLE IF EXISTS postgresql_enums' - @connection.execute 'DROP TYPE IF EXISTS mood' - end - def setup @connection = ActiveRecord::Base.connection @connection.transaction do @@ -27,6 +25,12 @@ class PostgresqlEnumTest < ActiveRecord::TestCase @connection.send(:reload_type_map) end + teardown do + @connection.execute 'DROP TABLE IF EXISTS postgresql_enums' + @connection.execute 'DROP TYPE IF EXISTS mood' + reset_pg_session + end + def test_column column = PostgresqlEnum.columns_hash["current_mood"] assert_equal :enum, column.type diff --git a/activerecord/test/support/postgresql_helper.rb b/activerecord/test/support/postgresql_helper.rb new file mode 100644 index 0000000000..fa40a46499 --- /dev/null +++ b/activerecord/test/support/postgresql_helper.rb @@ -0,0 +1,8 @@ +module PostgresqlHelper + # Make sure to drop all cached query plans to prevent invalid reference errors like: + # cache lookup failed for type XYZ + def reset_pg_session + original_connection = ActiveRecord::Base.remove_connection + ActiveRecord::Base.establish_connection(original_connection) + end +end |