aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/tasks
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2019-04-04 02:17:33 +0900
committerRyuta Kamizono <kamipo@gmail.com>2019-04-04 04:16:24 +0900
commitfe0145c58008d286e53486d94ceeff74dc2407ef (patch)
treeb103353e16622fa3aa37304ee3a94bff97603769 /activerecord/test/cases/tasks
parent9bccf4604ff007f5a2474b91a10a285b1849b746 (diff)
downloadrails-fe0145c58008d286e53486d94ceeff74dc2407ef.tar.gz
rails-fe0145c58008d286e53486d94ceeff74dc2407ef.tar.bz2
rails-fe0145c58008d286e53486d94ceeff74dc2407ef.zip
Respect table name prefix/suffix for `truncate_all`
Diffstat (limited to 'activerecord/test/cases/tasks')
-rw-r--r--activerecord/test/cases/tasks/database_tasks_test.rb58
1 files changed, 58 insertions, 0 deletions
diff --git a/activerecord/test/cases/tasks/database_tasks_test.rb b/activerecord/test/cases/tasks/database_tasks_test.rb
index 06f11108f9..86f3e3bf23 100644
--- a/activerecord/test/cases/tasks/database_tasks_test.rb
+++ b/activerecord/test/cases/tasks/database_tasks_test.rb
@@ -50,6 +50,8 @@ module ActiveRecord
protected_environments = ActiveRecord::Base.protected_environments
current_env = ActiveRecord::Base.connection.migration_context.current_environment
+ InternalMetadata[:environment] = current_env
+
assert_called_on_instance_of(
ActiveRecord::MigrationContext,
:current_version,
@@ -73,6 +75,9 @@ module ActiveRecord
def test_raises_an_error_when_called_with_protected_environment_which_name_is_a_symbol
protected_environments = ActiveRecord::Base.protected_environments
current_env = ActiveRecord::Base.connection.migration_context.current_environment
+
+ InternalMetadata[:environment] = current_env
+
assert_called_on_instance_of(
ActiveRecord::MigrationContext,
:current_version,
@@ -951,11 +956,22 @@ module ActiveRecord
fixtures :authors, :author_addresses
+ def setup
+ SchemaMigration.create_table
+ SchemaMigration.create!(version: "foo")
+ InternalMetadata.create_table
+ InternalMetadata.create!(key: "foo", value: "bar")
+ end
+
def teardown
+ SchemaMigration.drop_table
+ InternalMetadata.drop_table
ActiveRecord::Base.connection_handlers = { writing: ActiveRecord::Base.default_connection_handler }
end
def test_truncate_tables
+ assert_operator SchemaMigration.count, :>, 0
+ assert_operator InternalMetadata.count, :>, 0
assert_operator Author.count, :>, 0
assert_operator AuthorAddress.count, :>, 0
@@ -969,12 +985,54 @@ module ActiveRecord
)
end
+ assert_operator SchemaMigration.count, :>, 0
+ assert_operator InternalMetadata.count, :>, 0
assert_equal 0, Author.count
assert_equal 0, AuthorAddress.count
ensure
ActiveRecord::Base.configurations = old_configurations
end
end
+
+ class DatabaseTasksTruncateAllWithPrefixTest < DatabaseTasksTruncateAllTest
+ setup do
+ 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
+
+ class DatabaseTasksTruncateAllWithSuffixTest < DatabaseTasksTruncateAllTest
+ setup do
+ 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
class DatabaseTasksTruncateAllWithMultipleDatabasesTest < ActiveRecord::TestCase