From 2ca056be6f38e20add62bc3d370ae06a8263318b Mon Sep 17 00:00:00 2001
From: Ryuta Kamizono <kamipo@gmail.com>
Date: Thu, 4 Apr 2019 06:28:59 +0900
Subject: Ensure `reset_table_name` when table name prefix/suffix is changed

Also, `reset_column_information` is unnecessary since `reset_table_name`
does that too.
---
 .../cases/adapters/postgresql/extension_migration_test.rb   | 13 ++++++++-----
 activerecord/test/cases/ar_schema_test.rb                   |  9 +++++----
 activerecord/test/cases/migration_test.rb                   |  2 ++
 activerecord/test/cases/tasks/database_tasks_test.rb        |  8 --------
 4 files changed, 15 insertions(+), 17 deletions(-)

(limited to 'activerecord/test')

diff --git a/activerecord/test/cases/adapters/postgresql/extension_migration_test.rb b/activerecord/test/cases/adapters/postgresql/extension_migration_test.rb
index df97ab11e7..0fd7b2c6ed 100644
--- a/activerecord/test/cases/adapters/postgresql/extension_migration_test.rb
+++ b/activerecord/test/cases/adapters/postgresql/extension_migration_test.rb
@@ -22,23 +22,26 @@ class PostgresqlExtensionMigrationTest < ActiveRecord::PostgreSQLTestCase
 
     @connection = ActiveRecord::Base.connection
 
-    @old_schema_migration_table_name = ActiveRecord::SchemaMigration.table_name
     @old_table_name_prefix = ActiveRecord::Base.table_name_prefix
     @old_table_name_suffix = ActiveRecord::Base.table_name_suffix
 
     ActiveRecord::Base.table_name_prefix = "p_"
     ActiveRecord::Base.table_name_suffix = "_s"
+    ActiveRecord::SchemaMigration.reset_table_name
+    ActiveRecord::InternalMetadata.reset_table_name
+
     ActiveRecord::SchemaMigration.delete_all rescue nil
-    ActiveRecord::SchemaMigration.table_name = "p_schema_migrations_s"
     ActiveRecord::Migration.verbose = false
   end
 
   def teardown
-    ActiveRecord::Base.table_name_prefix = @old_table_name_prefix
-    ActiveRecord::Base.table_name_suffix = @old_table_name_suffix
     ActiveRecord::SchemaMigration.delete_all rescue nil
     ActiveRecord::Migration.verbose = true
-    ActiveRecord::SchemaMigration.table_name = @old_schema_migration_table_name
+
+    ActiveRecord::Base.table_name_prefix = @old_table_name_prefix
+    ActiveRecord::Base.table_name_suffix = @old_table_name_suffix
+    ActiveRecord::SchemaMigration.reset_table_name
+    ActiveRecord::InternalMetadata.reset_table_name
 
     super
   end
diff --git a/activerecord/test/cases/ar_schema_test.rb b/activerecord/test/cases/ar_schema_test.rb
index 9d88b14dab..9027cc582a 100644
--- a/activerecord/test/cases/ar_schema_test.rb
+++ b/activerecord/test/cases/ar_schema_test.rb
@@ -51,11 +51,11 @@ class ActiveRecordSchemaTest < ActiveRecord::TestCase
     assert_equal 7, @connection.migration_context.current_version
   end
 
-  def test_schema_define_w_table_name_prefix
-    table_name = ActiveRecord::SchemaMigration.table_name
+  def test_schema_define_with_table_name_prefix
     old_table_name_prefix = ActiveRecord::Base.table_name_prefix
     ActiveRecord::Base.table_name_prefix = "nep_"
-    ActiveRecord::SchemaMigration.table_name = "nep_#{table_name}"
+    ActiveRecord::SchemaMigration.reset_table_name
+    ActiveRecord::InternalMetadata.reset_table_name
     ActiveRecord::Schema.define(version: 7) do
       create_table :fruits do |t|
         t.column :color, :string
@@ -67,7 +67,8 @@ class ActiveRecordSchemaTest < ActiveRecord::TestCase
     assert_equal 7, @connection.migration_context.current_version
   ensure
     ActiveRecord::Base.table_name_prefix = old_table_name_prefix
-    ActiveRecord::SchemaMigration.table_name = table_name
+    ActiveRecord::SchemaMigration.reset_table_name
+    ActiveRecord::InternalMetadata.reset_table_name
   end
 
   def test_schema_raises_an_error_for_invalid_column_type
diff --git a/activerecord/test/cases/migration_test.rb b/activerecord/test/cases/migration_test.rb
index 788c8c36b8..f10c26c308 100644
--- a/activerecord/test/cases/migration_test.rb
+++ b/activerecord/test/cases/migration_test.rb
@@ -385,6 +385,7 @@ class MigrationTest < ActiveRecord::TestCase
     assert_equal "changed", ActiveRecord::SchemaMigration.table_name
   ensure
     ActiveRecord::Base.schema_migrations_table_name = original_schema_migrations_table_name
+    ActiveRecord::SchemaMigration.reset_table_name
     Reminder.reset_table_name
   end
 
@@ -405,6 +406,7 @@ class MigrationTest < ActiveRecord::TestCase
     assert_equal "changed", ActiveRecord::InternalMetadata.table_name
   ensure
     ActiveRecord::Base.internal_metadata_table_name = original_internal_metadata_table_name
+    ActiveRecord::InternalMetadata.reset_table_name
     Reminder.reset_table_name
   end
 
diff --git a/activerecord/test/cases/tasks/database_tasks_test.rb b/activerecord/test/cases/tasks/database_tasks_test.rb
index 4b27512fa1..d6147dfe5f 100644
--- a/activerecord/test/cases/tasks/database_tasks_test.rb
+++ b/activerecord/test/cases/tasks/database_tasks_test.rb
@@ -1001,18 +1001,14 @@ module ActiveRecord
         ActiveRecord::Base.table_name_prefix = "p_"
 
         SchemaMigration.reset_table_name
-        SchemaMigration.reset_column_information
         InternalMetadata.reset_table_name
-        InternalMetadata.reset_column_information
       end
 
       teardown do
         ActiveRecord::Base.table_name_prefix = nil
 
         SchemaMigration.reset_table_name
-        SchemaMigration.reset_column_information
         InternalMetadata.reset_table_name
-        InternalMetadata.reset_column_information
       end
     end
 
@@ -1021,18 +1017,14 @@ module ActiveRecord
         ActiveRecord::Base.table_name_suffix = "_s"
 
         SchemaMigration.reset_table_name
-        SchemaMigration.reset_column_information
         InternalMetadata.reset_table_name
-        InternalMetadata.reset_column_information
       end
 
       teardown do
         ActiveRecord::Base.table_name_suffix = nil
 
         SchemaMigration.reset_table_name
-        SchemaMigration.reset_column_information
         InternalMetadata.reset_table_name
-        InternalMetadata.reset_column_information
       end
     end
   end
-- 
cgit v1.2.3