From 53e016557299b6705626cd921ee70f1f6002ed06 Mon Sep 17 00:00:00 2001 From: Yasuo Honda Date: Thu, 7 May 2026 18:35:07 +0900 Subject: [PATCH] Validate RSpec 4 compatibility via disable_monkey_patching! RSpec 4 is expected to remove the globally-exposed DSL (top-level describe/context/etc.), equivalent to RSpec 3's config.expose_dsl_globally = false. Enabling config.disable_monkey_patching! now under RSpec 3 lets us see whether the suite is portable to RSpec 4. Set config.disable_monkey_patching! in spec/spec_helper.rb. With the global DSL disabled, every spec file's outermost describe must be qualified, so convert the 29 top-level describe calls across spec/plsql/*.rb to RSpec.describe. Nested describe/context/ shared_examples calls are unaffected. The suite already uses expect(...).to and allow(...).to receive(...) syntax, so the expect_with / mock_with portions of disable_monkey_patching! are no-ops here. bundle exec rspec spec --dry-run reports 461 examples, 0 failures, confirming every spec file loads under the new configuration. Co-Authored-By: Claude Opus 4.7 (1M context) --- spec/plsql/connection_spec.rb | 2 +- spec/plsql/package_spec.rb | 6 +++--- spec/plsql/procedure_spec.rb | 22 +++++++++++----------- spec/plsql/schema_spec.rb | 14 +++++++------- spec/plsql/sequence_spec.rb | 2 +- spec/plsql/sql_statements_spec.rb | 2 +- spec/plsql/table_spec.rb | 2 +- spec/plsql/type_spec.rb | 2 +- spec/plsql/variable_spec.rb | 2 +- spec/plsql/version_spec.rb | 2 +- spec/plsql/view_spec.rb | 2 +- spec/spec_helper.rb | 1 + 12 files changed, 30 insertions(+), 29 deletions(-) diff --git a/spec/plsql/connection_spec.rb b/spec/plsql/connection_spec.rb index d03e6653..56fef0ba 100644 --- a/spec/plsql/connection_spec.rb +++ b/spec/plsql/connection_spec.rb @@ -2,7 +2,7 @@ require "spec_helper" -describe "Connection" do +RSpec.describe "Connection" do before(:all) do @raw_conn = get_connection diff --git a/spec/plsql/package_spec.rb b/spec/plsql/package_spec.rb index 602322fc..71e0978c 100644 --- a/spec/plsql/package_spec.rb +++ b/spec/plsql/package_spec.rb @@ -1,6 +1,6 @@ require "spec_helper" -describe "Package" do +RSpec.describe "Package" do before(:all) do plsql.connection = get_connection plsql.execute <<-SQL @@ -113,7 +113,7 @@ end -describe "Synonym to package" do +RSpec.describe "Synonym to package" do before(:all) do plsql.connection = get_connection @@ -151,7 +151,7 @@ end -describe "Public synonym to package" do +RSpec.describe "Public synonym to package" do before(:all) do plsql.connection = get_connection diff --git a/spec/plsql/procedure_spec.rb b/spec/plsql/procedure_spec.rb index 4cee3b94..9d49d9a3 100644 --- a/spec/plsql/procedure_spec.rb +++ b/spec/plsql/procedure_spec.rb @@ -2,7 +2,7 @@ require "spec_helper" -describe "Parameter type mapping /" do +RSpec.describe "Parameter type mapping /" do shared_examples "Function with string parameters" do |datatype| before(:all) do @@ -1997,7 +1997,7 @@ def new_candidate(status) end -describe "Synonyms /" do +RSpec.describe "Synonyms /" do before(:all) do plsql.connect! CONNECTION_PARAMS end @@ -2177,7 +2177,7 @@ def new_candidate(status) end -describe "SYS.STANDARD procedures /" do +RSpec.describe "SYS.STANDARD procedures /" do before(:all) do plsql.connect! CONNECTION_PARAMS @@ -2210,7 +2210,7 @@ def new_candidate(status) end -describe "PLS_INTEGER/SIMPLE_INTEGER should be nullable" do +RSpec.describe "PLS_INTEGER/SIMPLE_INTEGER should be nullable" do before(:all) do plsql.connect! CONNECTION_PARAMS @@ -2309,7 +2309,7 @@ def new_candidate(status) end -describe "#get_argument_metadata" do +RSpec.describe "#get_argument_metadata" do before(:all) do plsql.connect! CONNECTION_PARAMS end @@ -2363,7 +2363,7 @@ def new_candidate(status) end end -describe "case-insensitive params" do +RSpec.describe "case-insensitive params" do before(:all) do plsql.connect! CONNECTION_PARAMS plsql.execute <<-SQL @@ -2387,7 +2387,7 @@ def new_candidate(status) end end -describe "Procedure with %ROWTYPE parameter on table that has hidden columns" do +RSpec.describe "Procedure with %ROWTYPE parameter on table that has hidden columns" do before(:all) do plsql.connect! CONNECTION_PARAMS plsql.execute "DROP PACKAGE test_hidden_cols_pkg" rescue nil @@ -2428,7 +2428,7 @@ def new_candidate(status) end end -describe "Function with TIMESTAMP columns in %ROWTYPE" do +RSpec.describe "Function with TIMESTAMP columns in %ROWTYPE" do before(:all) do plsql.connect! CONNECTION_PARAMS plsql.execute "DROP FUNCTION test_timestamp_fn" rescue nil @@ -2466,7 +2466,7 @@ def new_candidate(status) end end -describe "Function with TABLE OF %ROWTYPE parameter defined in package" do +RSpec.describe "Function with TABLE OF %ROWTYPE parameter defined in package" do before(:all) do plsql.connect! CONNECTION_PARAMS plsql.execute "DROP PACKAGE test_rowtype_pkg" rescue nil @@ -2500,7 +2500,7 @@ def new_candidate(status) end end -describe "Function with TABLE OF RECORD parameter defined in package (workaround for %ROWTYPE)" do +RSpec.describe "Function with TABLE OF RECORD parameter defined in package (workaround for %ROWTYPE)" do before(:all) do plsql.connect! CONNECTION_PARAMS plsql.execute "DROP PACKAGE test_record_pkg" rescue nil @@ -2532,7 +2532,7 @@ def new_candidate(status) end end -describe "Function with cross-schema type reference" do +RSpec.describe "Function with cross-schema type reference" do before(:all) do primary_user, _ = DATABASE_USERS_AND_PASSWORDS[0] second_user, second_password = DATABASE_USERS_AND_PASSWORDS[1] diff --git a/spec/plsql/schema_spec.rb b/spec/plsql/schema_spec.rb index 0c5760d4..5df95a43 100644 --- a/spec/plsql/schema_spec.rb +++ b/spec/plsql/schema_spec.rb @@ -1,6 +1,6 @@ require "spec_helper" -describe "Schema" do +RSpec.describe "Schema" do it "should create Schema object" do expect(plsql.class).to eq(PLSQL::Schema) @@ -8,7 +8,7 @@ end -describe "Schema connection" do +RSpec.describe "Schema connection" do before(:each) do @conn = get_connection @@ -57,7 +57,7 @@ end -describe "Connection with connect!" do +RSpec.describe "Connection with connect!" do before(:all) do @username, @password = DATABASE_USERS_AND_PASSWORDS[0] @@ -114,7 +114,7 @@ end -describe "Named Schema" do +RSpec.describe "Named Schema" do before(:all) do plsql.connection = @conn = get_connection end @@ -141,7 +141,7 @@ end -describe "Schema commit and rollback" do +RSpec.describe "Schema commit and rollback" do before(:all) do plsql.connection = @conn = get_connection plsql.connection.autocommit = false @@ -183,7 +183,7 @@ end -describe "ActiveRecord connection" do +RSpec.describe "ActiveRecord connection" do before(:all) do ActiveRecord::Base.establish_connection(CONNECTION_PARAMS) class TestBaseModel < ActiveRecord::Base @@ -274,7 +274,7 @@ class TestModel < TestBaseModel end if defined?(ActiveRecord) -describe "DBMS_OUTPUT logging" do +RSpec.describe "DBMS_OUTPUT logging" do before(:all) do plsql.connection = get_connection diff --git a/spec/plsql/sequence_spec.rb b/spec/plsql/sequence_spec.rb index 953ccfd4..9702e168 100644 --- a/spec/plsql/sequence_spec.rb +++ b/spec/plsql/sequence_spec.rb @@ -1,6 +1,6 @@ require "spec_helper" -describe "Table" do +RSpec.describe "Table" do before(:all) do plsql.connection = get_connection plsql.connection.autocommit = false diff --git a/spec/plsql/sql_statements_spec.rb b/spec/plsql/sql_statements_spec.rb index 9b71738c..d5fd49d8 100644 --- a/spec/plsql/sql_statements_spec.rb +++ b/spec/plsql/sql_statements_spec.rb @@ -1,6 +1,6 @@ require "spec_helper" -describe "SQL statements /" do +RSpec.describe "SQL statements /" do before(:all) do plsql.connect! CONNECTION_PARAMS plsql.connection.autocommit = false diff --git a/spec/plsql/table_spec.rb b/spec/plsql/table_spec.rb index 9e8c952a..da636f53 100644 --- a/spec/plsql/table_spec.rb +++ b/spec/plsql/table_spec.rb @@ -1,6 +1,6 @@ require "spec_helper" -describe "Table" do +RSpec.describe "Table" do before(:all) do plsql.connect! CONNECTION_PARAMS plsql.connection.autocommit = false diff --git a/spec/plsql/type_spec.rb b/spec/plsql/type_spec.rb index 56020045..b837371f 100644 --- a/spec/plsql/type_spec.rb +++ b/spec/plsql/type_spec.rb @@ -1,6 +1,6 @@ require "spec_helper" -describe "Type" do +RSpec.describe "Type" do before(:all) do plsql.connection = get_connection plsql.execute "DROP TYPE t_employee" rescue nil diff --git a/spec/plsql/variable_spec.rb b/spec/plsql/variable_spec.rb index 98ba2c82..d4c6b46c 100644 --- a/spec/plsql/variable_spec.rb +++ b/spec/plsql/variable_spec.rb @@ -2,7 +2,7 @@ require "spec_helper" -describe "Package variables /" do +RSpec.describe "Package variables /" do describe "String" do before(:all) do diff --git a/spec/plsql/version_spec.rb b/spec/plsql/version_spec.rb index c31007a5..476053ed 100644 --- a/spec/plsql/version_spec.rb +++ b/spec/plsql/version_spec.rb @@ -1,6 +1,6 @@ require "spec_helper" -describe "Version" do +RSpec.describe "Version" do it "should return ruby-plsql version" do expect(PLSQL::VERSION).to eq(File.read(File.dirname(__FILE__) + "/../../VERSION").chomp) end diff --git a/spec/plsql/view_spec.rb b/spec/plsql/view_spec.rb index 93dbc60d..dc40f421 100644 --- a/spec/plsql/view_spec.rb +++ b/spec/plsql/view_spec.rb @@ -1,6 +1,6 @@ require "spec_helper" -describe "View" do +RSpec.describe "View" do before(:all) do plsql.connect! CONNECTION_PARAMS plsql.connection.autocommit = false diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 0eec81a9..65cb0aec 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -122,6 +122,7 @@ def only(*whitelist) end RSpec.configure do |config| + config.disable_monkey_patching! config.order = :random Kernel.srand config.seed end