aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorYasuo Honda <yasuo.honda@gmail.com>2012-09-26 04:29:25 +0900
committerYasuo Honda <yasuo.honda@gmail.com>2012-09-26 04:29:25 +0900
commit5826b5008ff891a8bc9c0dc64a212ed24206245f (patch)
tree4abc683c47ccf55f722ba6b28314a8a462e26621 /activerecord
parent01cef4f3fc04978f283bd87446dab59a2b531e35 (diff)
downloadrails-5826b5008ff891a8bc9c0dc64a212ed24206245f.tar.gz
rails-5826b5008ff891a8bc9c0dc64a212ed24206245f.tar.bz2
rails-5826b5008ff891a8bc9c0dc64a212ed24206245f.zip
Skip tests for non-supported isolation levels
i.e. Oracle database does not support these isolation levels. `:read_uncommitted` `:repeatable_read` This commit also works with other databases which do not support these isolation levels.
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/test/cases/transaction_isolation_test.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/activerecord/test/cases/transaction_isolation_test.rb b/activerecord/test/cases/transaction_isolation_test.rb
index c7f36b53b1..a396da6645 100644
--- a/activerecord/test/cases/transaction_isolation_test.rb
+++ b/activerecord/test/cases/transaction_isolation_test.rb
@@ -44,7 +44,9 @@ class TransactionIsolationTest < ActiveRecord::TestCase
# specifies what must not happen at a certain level, not what must happen. At
# the read uncommitted level, there is nothing that must not happen.
test "read uncommitted" do
- return skip "Oracle does not support read uncommitted" if current_adapter? :OracleAdapter
+ unless ActiveRecord::Base.connection.transaction_isolation_levels.include?(:read_uncommitted)
+ skip "database does not support read uncommitted isolation level"
+ end
Tag.transaction(isolation: :read_uncommitted) do
assert_equal 0, Tag.count
Tag2.create
@@ -68,7 +70,9 @@ class TransactionIsolationTest < ActiveRecord::TestCase
# We are testing that a nonrepeatable read does not happen
test "repeatable read" do
- return skip "Oracle does not support repeatble read" if current_adapter? :OracleAdapter
+ unless ActiveRecord::Base.connection.transaction_isolation_levels.include?(:repeatable_read)
+ skip "database does not support repeatable read isolation level"
+ end
tag = Tag.create(name: 'jon')
Tag.transaction(isolation: :repeatable_read) do