aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/adapters
diff options
context:
space:
mode:
authorTimur Alperovich <timur@maginatics.com>2014-01-08 15:08:25 -0800
committerTimur Alperovich <timur@maginatics.com>2014-01-15 10:35:21 -0800
commit6f16513b587a0805a23eab99d5f283476b1d6687 (patch)
tree5140b1d17ebd2764af7e7bd9a2434cf70360d8db /activerecord/test/cases/adapters
parent8d146c8bec3a33052116ca5730151dc44d766222 (diff)
downloadrails-6f16513b587a0805a23eab99d5f283476b1d6687.tar.gz
rails-6f16513b587a0805a23eab99d5f283476b1d6687.tar.bz2
rails-6f16513b587a0805a23eab99d5f283476b1d6687.zip
SQLite3: Always close statements.
SQLite3 adapter must make sure to close statements after queries. Fixes: #13631
Diffstat (limited to 'activerecord/test/cases/adapters')
-rw-r--r--activerecord/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/activerecord/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb b/activerecord/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb
index 02834edf7b..1a5c3e7aba 100644
--- a/activerecord/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb
+++ b/activerecord/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb
@@ -401,6 +401,21 @@ module ActiveRecord
assert @conn.respond_to?(:disable_extension)
end
+ def test_statement_closed
+ db = SQLite3::Database.new(ActiveRecord::Base.
+ configurations['arunit']['database'])
+ statement = SQLite3::Statement.new(db,
+ 'CREATE TABLE statement_test (number integer not null)')
+ statement.stubs(:step).raises(SQLite3::BusyException, 'busy')
+ statement.stubs(:columns).once.returns([])
+ statement.expects(:close).once
+ SQLite3::Statement.stubs(:new).returns(statement)
+
+ assert_raise ActiveRecord::StatementInvalid do
+ @conn.exec_query 'select * from statement_test'
+ end
+ end
+
private
def assert_logged logs