aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2014-04-02 08:44:00 +0200
committerYves Senn <yves.senn@gmail.com>2014-04-02 08:44:00 +0200
commit793412418489f85758cc60229b95e8508cf7b776 (patch)
treec4c7913f8777098300556087eae12781bedc691a /activerecord/test
parent442d722b0844d65f388373951ccbccdbaa79a03f (diff)
parent9896c5fba9686524600d58e703e2aae80105043b (diff)
downloadrails-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.
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/adapters/postgresql/domain_test.rb8
-rw-r--r--activerecord/test/cases/adapters/postgresql/enum_test.rb14
-rw-r--r--activerecord/test/support/postgresql_helper.rb8
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