Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix test suite #1154

Merged
merged 4 commits into from
Mar 14, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@ module AttributeMethods
private

def attributes_for_update(attribute_names)
return super unless self.class.connection.adapter_name == "SQLServer"
return super unless self.class.lease_connection.adapter_name == "SQLServer"

super.reject do |name|
column = self.class.columns_hash[name]
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@ module SQLServer
module CoreExt
module Calculations
def calculate(operation, column_name)
if klass.connection.sqlserver?
if klass.lease_connection.sqlserver?
_calculate(operation, column_name)
else
super
@@ -54,7 +54,7 @@ def _calculate(operation, column_name)
end

def build_count_subquery(relation, column_name, distinct)
return super unless klass.connection.adapter_name == "SQLServer"
return super unless klass.lease_connection.adapter_name == "SQLServer"

super(relation.unscope(:order), column_name, distinct)
end
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@ module Explain
SQLSERVER_STATEMENT_REGEXP = /N'(.+)', N'(.+)', (.+)/

def exec_explain(queries, options = [])
return super unless connection.adapter_name == "SQLServer"
return super unless lease_connection.adapter_name == "SQLServer"

unprepared_queries = queries.map do |(sql, binds)|
[unprepare_sqlserver_statement(sql, binds), binds]
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@ module FinderMethods
private

def construct_relation_for_exists(conditions)
if klass.connection.sqlserver?
if klass.lease_connection.sqlserver?
_construct_relation_for_exists(conditions)
else
super
3 changes: 2 additions & 1 deletion lib/active_record/connection_adapters/sqlserver_adapter.rb
Original file line number Diff line number Diff line change
@@ -29,12 +29,13 @@
require "active_record/connection_adapters/sqlserver/table_definition"
require "active_record/connection_adapters/sqlserver/quoting"
require "active_record/connection_adapters/sqlserver/utils"
require "active_record/sqlserver_base"
require "active_record/connection_adapters/sqlserver_column"
require "active_record/tasks/sqlserver_database_tasks"

module ActiveRecord
module ConnectionAdapters
register "sqlserver", "ActiveRecord::ConnectionAdapters::SQLServerAdapter", "active_record/connection_adapters/sqlserver_adapter"

class SQLServerAdapter < AbstractAdapter
include SQLServer::Version,
SQLServer::Quoting,
13 changes: 0 additions & 13 deletions lib/active_record/sqlserver_base.rb

This file was deleted.

2 changes: 1 addition & 1 deletion test/cases/adapter_test_sqlserver.rb
Original file line number Diff line number Diff line change
@@ -508,7 +508,7 @@ class AdapterTestSQLServer < ActiveRecord::TestCase

describe "block writes to a database" do
def setup
@conn = ActiveRecord::Base.connection
@conn = ActiveRecord::Base.lease_connection
end

def test_errors_when_an_insert_query_is_called_while_preventing_writes
22 changes: 11 additions & 11 deletions test/cases/coerced_tests.rb
Original file line number Diff line number Diff line change
@@ -197,7 +197,7 @@ class BasicsTest < ActiveRecord::TestCase
# Use square brackets as SQL Server escaped character
coerce_tests! :test_column_names_are_escaped
def test_column_names_are_escaped_coerced
conn = ActiveRecord::Base.connection
conn = ActiveRecord::Base.lease_connection
assert_equal "[t]]]", conn.quote_column_name("t]")
end

@@ -236,7 +236,7 @@ def test_update_date_time_attributes_with_default_timezone_local
ActiveRecord::Base.while_preventing_writes do
assert_queries(1, ignore_none: true) do
Bird.transaction do
ActiveRecord::Base.connection.materialize_transactions
ActiveRecord::Base.lease_connection.materialize_transactions
end
end
end
@@ -1542,9 +1542,9 @@ def test_dump_schema_information_outputs_lexically_reverse_ordered_versions_rega
@schema_migration.create_version(v)
end

schema_info = ActiveRecord::Base.connection.dump_schema_information
schema_info = ActiveRecord::Base.lease_connection.dump_schema_information
expected = <<~STR
INSERT INTO #{ActiveRecord::Base.connection.quote_table_name("schema_migrations")} (version) VALUES
INSERT INTO #{ActiveRecord::Base.lease_connection.quote_table_name("schema_migrations")} (version) VALUES
(N'20100301010101'),
(N'20100201010101'),
(N'20100101010101');
@@ -1602,7 +1602,7 @@ class SchemaDumperDefaultsCoerceTest < ActiveRecord::TestCase
include SchemaDumpingHelper

setup do
@connection = ActiveRecord::Base.connection
@connection = ActiveRecord::Base.lease_connection
@connection.create_table :dump_defaults, force: true do |t|
t.string :string_with_default, default: "Hello!"
t.date :date_with_default, default: "2014-06-05"
@@ -2213,15 +2213,15 @@ def test_insert_all_coerced
Task.cache { Task.insert({ starting: Time.now }) }
end

assert_called(ActiveRecord::Base.connection, :clear_query_cache, times: 2) do
assert_called(ActiveRecord::Base.lease_connection, :clear_query_cache, times: 2) do
Task.cache { Task.insert_all!([{ starting: Time.now }]) }
end

assert_called(ActiveRecord::Base.connection, :clear_query_cache, times: 2) do
assert_called(ActiveRecord::Base.lease_connection, :clear_query_cache, times: 2) do
Task.cache { Task.insert!({ starting: Time.now }) }
end

assert_called(ActiveRecord::Base.connection, :clear_query_cache, times: 2) do
assert_called(ActiveRecord::Base.lease_connection, :clear_query_cache, times: 2) do
Task.cache { Task.insert_all!([{ starting: Time.now }]) }
end

@@ -2287,7 +2287,7 @@ class MarshalSerializationTest < ActiveRecord::TestCase
undef_method :marshal_fixture_path
def marshal_fixture_path(file_name)
File.expand_path(
"support/marshal_compatibility_fixtures/#{ActiveRecord::Base.connection.adapter_name}/#{file_name}.dump",
"support/marshal_compatibility_fixtures/#{ActiveRecord::Base.lease_connection.adapter_name}/#{file_name}.dump",
ARTest::SQLServer.test_root_sqlserver
)
end
@@ -2379,7 +2379,7 @@ class BasePreventWritesTest < ActiveRecord::TestCase
ActiveRecord::Base.while_preventing_writes do
assert_queries(1, ignore_none: true) do
Bird.transaction do
ActiveRecord::Base.connection.materialize_transactions
ActiveRecord::Base.lease_connection.materialize_transactions
end
end
end
@@ -2489,7 +2489,7 @@ def test_sqlcommenter_format_value_string_coercible_coerced
def test_invalid_encoding_query_coerced
ActiveRecord::QueryLogs.tags = [ :application ]
assert_raises ActiveRecord::StatementInvalid do
ActiveRecord::Base.connection.execute "select 1 as '\xFF'"
ActiveRecord::Base.lease_connection.execute "select 1 as '\xFF'"
end
end
end
2 changes: 1 addition & 1 deletion test/cases/disconnected_test_sqlserver.rb
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ class TestDisconnectedAdapter < ActiveRecord::TestCase

undef_method :setup
def setup
@connection = ActiveRecord::Base.connection
@connection = ActiveRecord::Base.lease_connection
end

teardown do
2 changes: 1 addition & 1 deletion test/cases/json_test_sqlserver.rb
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

require "cases/helper_sqlserver"

if ActiveRecord::Base.connection.supports_json?
if ActiveRecord::Base.lease_connection.supports_json?
class JsonTestSQLServer < ActiveRecord::TestCase
before do
@o1 = SSTestDatatypeMigrationJson.create! json_col: { "a" => "a", "b" => "b", "c" => "c" }
4 changes: 2 additions & 2 deletions test/cases/lateral_test_sqlserver.rb
Original file line number Diff line number Diff line change
@@ -16,7 +16,7 @@ class LateralTestSQLServer < ActiveRecord::TestCase
eq = Arel::Nodes::Equality.new(one, one)

sql = author.project(Arel.star).where(author[:name].matches("David")).outer_join(subselect.lateral.as("bar")).on(eq).to_sql
results = ActiveRecord::Base.connection.exec_query sql
results = ActiveRecord::Base.lease_connection.exec_query sql
assert_equal sql, "SELECT * FROM [authors] OUTER APPLY (SELECT * FROM [posts] WHERE [posts].[author_id] = [authors].[id] AND [posts].[id] = 42 ORDER BY [posts].[id] ASC OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY) AS bar WHERE [authors].[name] LIKE N'David'"
assert_equal results.length, 1
end
@@ -27,7 +27,7 @@ class LateralTestSQLServer < ActiveRecord::TestCase
subselect = post.project(Arel.star).take(1).where(post[:author_id].eq(author[:id])).where(post[:id].eq(42))

sql = author.project(Arel.star).where(author[:name].matches("David")).join(subselect.lateral.as("bar")).to_sql
results = ActiveRecord::Base.connection.exec_query sql
results = ActiveRecord::Base.lease_connection.exec_query sql

assert_equal sql, "SELECT * FROM [authors] CROSS APPLY (SELECT * FROM [posts] WHERE [posts].[author_id] = [authors].[id] AND [posts].[id] = 42 ORDER BY [posts].[id] ASC OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY) AS bar WHERE [authors].[name] LIKE N'David'"
assert_equal results.length, 0
4 changes: 2 additions & 2 deletions test/cases/primary_keys_test_sqlserver.rb
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@ class Barcode < ActiveRecord::Base
end

setup do
@connection = ActiveRecord::Base.connection
@connection = ActiveRecord::Base.lease_connection
@connection.create_table(:barcodes, primary_key: "code", id: :uuid, force: true)
end

@@ -50,7 +50,7 @@ class Widget < ActiveRecord::Base
end

setup do
@connection = ActiveRecord::Base.connection
@connection = ActiveRecord::Base.lease_connection
end

teardown do
4 changes: 2 additions & 2 deletions test/cases/schema_dumper_test_sqlserver.rb
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@
class SchemaDumperTestSQLServer < ActiveRecord::TestCase
before { all_tables }

let(:all_tables) { ActiveRecord::Base.connection.tables }
let(:all_tables) { ActiveRecord::Base.lease_connection.tables }
let(:schema) { @generated_schema }

it "sst_datatypes" do
@@ -166,7 +166,7 @@ def generate_schema_for_table(*table_names)

stream = StringIO.new
ActiveRecord::SchemaDumper.ignore_tables = all_tables - table_names
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, stream)
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.lease_connection, stream)
@generated_schema = stream.string
yield @generated_schema if block_given?
@schema_lines = Hash.new
4 changes: 2 additions & 2 deletions test/cases/specific_schema_test_sqlserver.rb
Original file line number Diff line number Diff line change
@@ -159,14 +159,14 @@ def quoted_id

it "returns a new id via connection newid_function" do
acceptable_uuid = ActiveRecord::ConnectionAdapters::SQLServer::Type::Uuid::ACCEPTABLE_UUID
db_uuid = ActiveRecord::Base.connection.newid_function
db_uuid = ActiveRecord::Base.lease_connection.newid_function
_(db_uuid).must_match(acceptable_uuid)
end

# with similar table definition in two schemas

it "returns the correct primary columns" do
connection = ActiveRecord::Base.connection
connection = ActiveRecord::Base.lease_connection
assert_equal "field_1", connection.columns("test.sst_schema_test_mulitple_schema").detect(&:is_primary?).name
assert_equal "field_2", connection.columns("test2.sst_schema_test_mulitple_schema").detect(&:is_primary?).name
end
2 changes: 1 addition & 1 deletion test/cases/view_test_sqlserver.rb
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
require "cases/helper_sqlserver"

class ViewTestSQLServer < ActiveRecord::TestCase
let(:connection) { ActiveRecord::Base.connection }
let(:connection) { ActiveRecord::Base.lease_connection }

describe 'view with default values' do
before do
2 changes: 1 addition & 1 deletion test/support/connection_reflection.rb
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@ module ConnectionReflection
included { extend ConnectionReflection }

def connection
ActiveRecord::Base.connection
ActiveRecord::Base.lease_connection
end

def connection_options
4 changes: 2 additions & 2 deletions test/support/test_in_memory_oltp.rb
Original file line number Diff line number Diff line change
@@ -8,10 +8,10 @@

ARTest.connect

if ActiveRecord::Base.connection.supports_in_memory_oltp?
if ActiveRecord::Base.lease_connection.supports_in_memory_oltp?
puts "Configuring In-Memory OLTP..."
inmem_file = ARTest::SQLServer.test_root_sqlserver, "schema", "enable-in-memory-oltp.sql"
inmem_sql = File.read File.join(inmem_file)
ActiveRecord::Base.connection.execute(inmem_sql)
ActiveRecord::Base.lease_connection.execute(inmem_sql)
end
end