tests, no every adapter supports "connection.version"
This solves the following issue: ``` $ bin/test Using sqlite3 /Users/senny/Projects/rails/activerecord/test/cases/adapters/mysql2/sp_test.rb:16:in `<class:Mysql2StoredProcedureTest>': undefined method `version' for #<ActiveRecord::ConnectionAdapters::SQLite3Adapter:0x007f8bab4b5b70> (NoMethodError) from /Users/senny/Projects/rails/activerecord/test/cases/adapters/mysql2/sp_test.rb:5:in `<top (required)>' from /Users/senny/Projects/rails/activesupport/lib/active_support/dependencies.rb:302:in `require' from /Users/senny/Projects/rails/activesupport/lib/active_support/dependencies.rb:302:in `block in require' from /Users/senny/Projects/rails/activesupport/lib/active_support/dependencies.rb:268:in `load_dependency' from /Users/senny/Projects/rails/activesupport/lib/active_support/dependencies.rb:302:in `require' from /Users/senny/Projects/rails/railties/lib/rails/test_unit/test_requirer.rb:11:in `block in require_files' from /Users/senny/Projects/rails/railties/lib/rails/test_unit/test_requirer.rb:10:in `each' from /Users/senny/Projects/rails/railties/lib/rails/test_unit/test_requirer.rb:10:in `require_files' from /Users/senny/Projects/rails/railties/lib/rails/test_unit/minitest_plugin.rb:69:in `plugin_rails_init' from /Users/senny/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/minitest-5.3.3/lib/minitest.rb:73:in `block in init_plugins' from /Users/senny/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/minitest-5.3.3/lib/minitest.rb:71:in `each' from /Users/senny/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/minitest-5.3.3/lib/minitest.rb:71:in `init_plugins' from /Users/senny/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/minitest-5.3.3/lib/minitest.rb:122:in `run' from bin/test:19:in `<main>' ```
This commit is contained in:
parent
8732b8b301
commit
59ec8a592d
@ -7,23 +7,24 @@ class MysqlStoredProcedureTest < ActiveRecord::MysqlTestCase
|
||||
|
||||
def setup
|
||||
@connection = ActiveRecord::Base.connection
|
||||
unless ActiveRecord::Base.connection.version >= '5.6.0' || Mysql.const_defined?(:CLIENT_MULTI_RESULTS)
|
||||
skip("no stored procedure support")
|
||||
end
|
||||
end
|
||||
|
||||
# Test that MySQL allows multiple results for stored procedures
|
||||
#
|
||||
# In MySQL 5.6, CLIENT_MULTI_RESULTS is enabled by default.
|
||||
# http://dev.mysql.com/doc/refman/5.6/en/call.html
|
||||
if ActiveRecord::Base.connection.version >= '5.6.0' || Mysql.const_defined?(:CLIENT_MULTI_RESULTS)
|
||||
def test_multi_results
|
||||
rows = @connection.select_rows('CALL ten();')
|
||||
assert_equal 10, rows[0][0].to_i, "ten() did not return 10 as expected: #{rows.inspect}"
|
||||
assert @connection.active?, "Bad connection use by 'MysqlAdapter.select_rows'"
|
||||
end
|
||||
def test_multi_results
|
||||
rows = @connection.select_rows('CALL ten();')
|
||||
assert_equal 10, rows[0][0].to_i, "ten() did not return 10 as expected: #{rows.inspect}"
|
||||
assert @connection.active?, "Bad connection use by 'MysqlAdapter.select_rows'"
|
||||
end
|
||||
|
||||
def test_multi_results_from_find_by_sql
|
||||
topics = Topic.find_by_sql 'CALL topics(3);'
|
||||
assert_equal 3, topics.size
|
||||
assert @connection.active?, "Bad connection use by 'MysqlAdapter.select'"
|
||||
end
|
||||
def test_multi_results_from_find_by_sql
|
||||
topics = Topic.find_by_sql 'CALL topics(3);'
|
||||
assert_equal 3, topics.size
|
||||
assert @connection.active?, "Bad connection use by 'MysqlAdapter.select'"
|
||||
end
|
||||
end
|
||||
|
@ -7,23 +7,24 @@ class Mysql2StoredProcedureTest < ActiveRecord::Mysql2TestCase
|
||||
|
||||
def setup
|
||||
@connection = ActiveRecord::Base.connection
|
||||
unless ActiveRecord::Base.connection.version >= '5.6.0'
|
||||
skip("no stored procedure support")
|
||||
end
|
||||
end
|
||||
|
||||
# Test that MySQL allows multiple results for stored procedures
|
||||
#
|
||||
# In MySQL 5.6, CLIENT_MULTI_RESULTS is enabled by default.
|
||||
# http://dev.mysql.com/doc/refman/5.6/en/call.html
|
||||
if ActiveRecord::Base.connection.version >= '5.6.0'
|
||||
def test_multi_results
|
||||
rows = @connection.select_rows('CALL ten();')
|
||||
assert_equal 10, rows[0][0].to_i, "ten() did not return 10 as expected: #{rows.inspect}"
|
||||
assert @connection.active?, "Bad connection use by 'Mysql2Adapter.select_rows'"
|
||||
end
|
||||
def test_multi_results
|
||||
rows = @connection.select_rows('CALL ten();')
|
||||
assert_equal 10, rows[0][0].to_i, "ten() did not return 10 as expected: #{rows.inspect}"
|
||||
assert @connection.active?, "Bad connection use by 'Mysql2Adapter.select_rows'"
|
||||
end
|
||||
|
||||
def test_multi_results_from_find_by_sql
|
||||
topics = Topic.find_by_sql 'CALL topics(3);'
|
||||
assert_equal 3, topics.size
|
||||
assert @connection.active?, "Bad connection use by 'Mysql2Adapter.select'"
|
||||
end
|
||||
def test_multi_results_from_find_by_sql
|
||||
topics = Topic.find_by_sql 'CALL topics(3);'
|
||||
assert_equal 3, topics.size
|
||||
assert @connection.active?, "Bad connection use by 'Mysql2Adapter.select'"
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user