diff --git a/railties/test/application/rake/dbs_test.rb b/railties/test/application/rake/dbs_test.rb index 2fc9718ac0..4cfd1aca47 100644 --- a/railties/test/application/rake/dbs_test.rb +++ b/railties/test/application/rake/dbs_test.rb @@ -1,13 +1,12 @@ # frozen_string_literal: true require "isolation/abstract_unit" -require "chdir_helpers" require "env_helpers" module ApplicationTests module RakeTests class RakeDbsTest < ActiveSupport::TestCase - include ActiveSupport::Testing::Isolation, ChdirHelpers, EnvHelpers + include ActiveSupport::Testing::Isolation, EnvHelpers def setup build_app @@ -29,7 +28,7 @@ def set_database_url end def db_create_and_drop(expected_database, environment_loaded: true) - chdir(app_path) do + Dir.chdir(app_path) do output = rails("db:create") assert_match(/Created database/, output) assert File.exist?(expected_database) @@ -42,7 +41,7 @@ def db_create_and_drop(expected_database, environment_loaded: true) end def db_create_with_warning(expected_database) - chdir(app_path) do + Dir.chdir(app_path) do output = rails("db:create") assert_match(/Rails couldn't infer whether you are using multiple databases/, output) assert_match(/Created database/, output) @@ -208,7 +207,7 @@ def db_create_with_warning(expected_database) end def with_database_existing - chdir(app_path) do + Dir.chdir(app_path) do set_database_url rails "db:create" yield @@ -224,7 +223,7 @@ def with_database_existing end def with_bad_permissions - chdir(app_path) do + Dir.chdir(app_path) do skip "Can't avoid permissions as root" if Process.uid.zero? set_database_url @@ -272,7 +271,7 @@ def with_bad_permissions end test "db:truncate_all truncates all non-internal tables" do - chdir(app_path) do + Dir.chdir(app_path) do rails "generate", "model", "book", "title:string" rails "db:migrate" require "#{app_path}/config/environment" @@ -297,7 +296,7 @@ def with_bad_permissions test "db:truncate_all does not truncate any tables when environment is protected" do with_rails_env "production" do - chdir(app_path) do + Dir.chdir(app_path) do rails "generate", "model", "book", "title:string" rails "db:migrate" require "#{app_path}/config/environment" @@ -345,7 +344,7 @@ def db_migrate_and_status(expected_database) end def db_schema_dump - chdir(app_path) do + Dir.chdir(app_path) do args = ["generate", "model", "book", "title:string"] rails args rails "db:migrate", "db:schema:dump" @@ -363,7 +362,7 @@ def db_schema_dump end def db_schema_cache_dump(filename = "db/schema_cache.yml") - chdir(app_path) do + Dir.chdir(app_path) do rails "db:schema:cache:dump" cache_size = lambda { rails("runner", "p ActiveRecord::Base.connection.schema_cache.size").strip } @@ -381,7 +380,7 @@ def db_schema_cache_dump(filename = "db/schema_cache.yml") end test "db:schema:cache:dump with custom filename" do - chdir(app_path) do + Dir.chdir(app_path) do File.open("#{app_path}/config/database.yml", "w") do |f| f.puts <<-YAML default: &default @@ -414,7 +413,7 @@ def db_schema_cache_dump(filename = "db/schema_cache.yml") end test "db:schema:cache:dump first config wins" do - chdir(app_path) do + Dir.chdir(app_path) do File.open("#{app_path}/config/database.yml", "w") do |f| f.puts <<-YAML default: &default @@ -440,7 +439,7 @@ def db_schema_cache_dump(filename = "db/schema_cache.yml") end def db_fixtures_load(expected_database) - chdir(app_path) do + Dir.chdir(app_path) do rails "generate", "model", "book", "title:string" reload rails "db:migrate", "db:fixtures:load" @@ -473,7 +472,7 @@ def db_fixtures_load(expected_database) end def db_structure_dump_and_load(expected_database) - chdir(app_path) do + Dir.chdir(app_path) do rails "generate", "model", "book", "title:string" rails "db:migrate", "db:structure:dump" structure_dump = File.read("db/structure.sql") @@ -585,7 +584,7 @@ def db_structure_dump_and_load(expected_database) end def db_test_load_structure - chdir(app_path) do + Dir.chdir(app_path) do rails "generate", "model", "book", "title:string" rails "db:migrate", "db:structure:dump", "db:test:load_structure" ActiveRecord::Base.configurations = Rails.application.config.database_configuration @@ -675,7 +674,7 @@ def db_test_load_structure end test "db:seed:replant truncates all non-internal tables and loads the seeds" do - chdir(app_path) do + Dir.chdir(app_path) do rails "generate", "model", "book", "title:string" rails "db:migrate" require "#{app_path}/config/environment" @@ -708,7 +707,7 @@ def db_test_load_structure test "db:seed:replant does not truncate any tables and does not load the seeds when environment is protected" do with_rails_env "production" do - chdir(app_path) do + Dir.chdir(app_path) do rails "generate", "model", "book", "title:string" rails "db:migrate" require "#{app_path}/config/environment" @@ -741,7 +740,7 @@ def db_test_load_structure end test "db:prepare setup the database" do - chdir(app_path) do + Dir.chdir(app_path) do rails "generate", "model", "book", "title:string" output = rails("db:prepare") assert_match(/CreateBooks: migrated/, output) @@ -757,7 +756,7 @@ def db_test_load_structure end test "db:prepare does not touch schema when dumping is disabled" do - chdir(app_path) do + Dir.chdir(app_path) do rails "generate", "model", "book", "title:string" rails "db:create", "db:migrate" diff --git a/railties/test/application/rake/log_test.rb b/railties/test/application/rake/log_test.rb index fae358a052..678f26db26 100644 --- a/railties/test/application/rake/log_test.rb +++ b/railties/test/application/rake/log_test.rb @@ -1,12 +1,11 @@ # frozen_string_literal: true require "isolation/abstract_unit" -require "chdir_helpers" module ApplicationTests module RakeTests class LogTest < ActiveSupport::TestCase - include ActiveSupport::Testing::Isolation, ChdirHelpers + include ActiveSupport::Testing::Isolation def setup build_app @@ -17,7 +16,7 @@ def teardown end test "log:clear clear all environments log files by default" do - chdir(app_path) do + Dir.chdir(app_path) do File.open("config/environments/staging.rb", "w") File.write("log/staging.log", "staging") diff --git a/railties/test/application/rake/migrations_test.rb b/railties/test/application/rake/migrations_test.rb index aac0506e6d..47c5ac105a 100644 --- a/railties/test/application/rake/migrations_test.rb +++ b/railties/test/application/rake/migrations_test.rb @@ -1,13 +1,10 @@ # frozen_string_literal: true require "isolation/abstract_unit" -require "chdir_helpers" module ApplicationTests module RakeTests class RakeMigrationsTest < ActiveSupport::TestCase - include ChdirHelpers - def setup build_app FileUtils.rm_rf("#{app_path}/config/environments") @@ -268,7 +265,7 @@ class TwoMigration < ActiveRecord::Migration::Current end test "raise error on any move when current migration does not exist" do - chdir(app_path) do + Dir.chdir(app_path) do rails "generate", "model", "user", "username:string", "password:string" rails "generate", "migration", "add_email_to_users", "email:string" rails "db:migrate" @@ -414,7 +411,7 @@ class TwoMigration < ActiveRecord::Migration::Current test "schema generation when dump_schema_after_migration is set" do add_to_config("config.active_record.dump_schema_after_migration = false") - chdir(app_path) do + Dir.chdir(app_path) do rails "generate", "model", "book", "title:string" output = rails("generate", "model", "author", "name:string") version = output =~ %r{[^/]+db/migrate/(\d+)_create_authors\.rb} && $1 @@ -425,7 +422,7 @@ class TwoMigration < ActiveRecord::Migration::Current add_to_config("config.active_record.dump_schema_after_migration = true") - chdir(app_path) do + Dir.chdir(app_path) do rails "generate", "model", "reviews", "book_id:integer" rails "db:migrate" @@ -435,7 +432,7 @@ class TwoMigration < ActiveRecord::Migration::Current end test "default schema generation after migration" do - chdir(app_path) do + Dir.chdir(app_path) do rails "generate", "model", "book", "title:string" rails "db:migrate" @@ -445,7 +442,7 @@ class TwoMigration < ActiveRecord::Migration::Current end test "migration status migrated file is deleted" do - chdir(app_path) do + Dir.chdir(app_path) do rails "generate", "model", "user", "username:string", "password:string" rails "generate", "migration", "add_email_to_users", "email:string" rails "db:migrate" diff --git a/railties/test/application/rake/multi_dbs_test.rb b/railties/test/application/rake/multi_dbs_test.rb index ab1d5af5f6..1e485f623a 100644 --- a/railties/test/application/rake/multi_dbs_test.rb +++ b/railties/test/application/rake/multi_dbs_test.rb @@ -1,12 +1,11 @@ # frozen_string_literal: true require "isolation/abstract_unit" -require "chdir_helpers" module ApplicationTests module RakeTests class RakeMultiDbsTest < ActiveSupport::TestCase - include ActiveSupport::Testing::Isolation, ChdirHelpers + include ActiveSupport::Testing::Isolation def setup build_app(multi_db: true) @@ -18,7 +17,7 @@ def teardown end def db_create_and_drop(namespace, expected_database) - chdir(app_path) do + Dir.chdir(app_path) do output = rails("db:create") assert_match(/Created database/, output) assert_match_namespace(namespace, output) @@ -34,7 +33,7 @@ def db_create_and_drop(namespace, expected_database) end def db_create_and_drop_namespace(namespace, expected_database) - chdir(app_path) do + Dir.chdir(app_path) do output = rails("db:create:#{namespace}") assert_match(/Created database/, output) assert_match_namespace(namespace, output) @@ -56,7 +55,7 @@ def assert_match_namespace(namespace, output) end def db_migrate_and_migrate_status - chdir(app_path) do + Dir.chdir(app_path) do generate_models_for_animals rails "db:migrate" output = rails "db:migrate:status" @@ -66,7 +65,7 @@ def db_migrate_and_migrate_status end def db_migrate_and_schema_cache_dump - chdir(app_path) do + Dir.chdir(app_path) do generate_models_for_animals rails "db:migrate" rails "db:schema:cache:dump" @@ -76,7 +75,7 @@ def db_migrate_and_schema_cache_dump end def db_migrate_and_schema_cache_dump_and_schema_cache_clear - chdir(app_path) do + Dir.chdir(app_path) do generate_models_for_animals rails "db:migrate" rails "db:schema:cache:dump" @@ -90,7 +89,7 @@ def db_migrate_and_schema_dump_and_load(schema_format = "ruby") add_to_config "config.active_record.schema_format = :#{schema_format}" require "#{app_path}/config/environment" - chdir(app_path) do + Dir.chdir(app_path) do generate_models_for_animals rails "db:migrate", "db:schema:dump" @@ -117,7 +116,7 @@ def db_migrate_and_schema_dump_and_load(schema_format = "ruby") end def db_migrate_and_schema_dump_and_load_one_database(format, database) - chdir(app_path) do + Dir.chdir(app_path) do generate_models_for_animals rails "db:migrate:#{database}", "db:#{format}:dump:#{database}" @@ -162,7 +161,7 @@ def db_migrate_name_dumps_the_schema(name, schema_format) add_to_config "config.active_record.schema_format = :#{schema_format}" require "#{app_path}/config/environment" - chdir(app_path) do + Dir.chdir(app_path) do generate_models_for_animals assert_not(File.exist?("db/schema.rb")) @@ -200,7 +199,7 @@ def db_test_prepare_name(name, schema_format) add_to_config "config.active_record.schema_format = :#{schema_format}" require "#{app_path}/config/environment" - chdir(app_path) do + Dir.chdir(app_path) do generate_models_for_animals rails("db:migrate:#{name}", "db:schema:dump:#{name}") @@ -222,7 +221,7 @@ def db_test_prepare_name(name, schema_format) end def db_migrate_namespaced(namespace) - chdir(app_path) do + Dir.chdir(app_path) do generate_models_for_animals output = rails("db:migrate:#{namespace}") if namespace == "primary" @@ -234,7 +233,7 @@ def db_migrate_namespaced(namespace) end def db_migrate_status_namespaced(namespace) - chdir(app_path) do + Dir.chdir(app_path) do generate_models_for_animals output = rails("db:migrate:status:#{namespace}") if namespace == "primary" @@ -246,7 +245,7 @@ def db_migrate_status_namespaced(namespace) end def db_up_and_down(version, namespace = nil) - chdir(app_path) do + Dir.chdir(app_path) do generate_models_for_animals rails("db:migrate") @@ -276,7 +275,7 @@ def db_up_and_down(version, namespace = nil) end def db_migrate_and_rollback(namespace = nil) - chdir(app_path) do + Dir.chdir(app_path) do generate_models_for_animals rails("db:migrate") @@ -301,7 +300,7 @@ def db_migrate_and_rollback(namespace = nil) end def db_migrate_redo(namespace = nil) - chdir(app_path) do + Dir.chdir(app_path) do generate_models_for_animals rails("db:migrate") @@ -328,7 +327,7 @@ def db_migrate_redo(namespace = nil) end def db_prepare - chdir(app_path) do + Dir.chdir(app_path) do generate_models_for_animals output = rails("db:prepare") @@ -393,7 +392,7 @@ def generate_models_for_animals end test "db:migrate set back connection to its original state" do - chdir(app_path) do + Dir.chdir(app_path) do dummy_task = <<~RUBY task foo: :environment do Book.first @@ -410,7 +409,7 @@ def generate_models_for_animals end test "db:migrate:name sets the connection back to its original state" do - chdir(app_path) do + Dir.chdir(app_path) do dummy_task = <<~RUBY task foo: :environment do Book.first @@ -669,7 +668,7 @@ class TwoMigration < ActiveRecord::Migration::Current test "db:prepare setups missing database without clearing existing one" do require "#{app_path}/config/environment" - chdir(app_path) do + Dir.chdir(app_path) do # Bug not visible on SQLite3. Can be simplified when https://github.com/rails/rails/issues/36383 resolved use_postgresql(multi_db: true) generate_models_for_animals diff --git a/railties/test/application/rake/restart_test.rb b/railties/test/application/rake/restart_test.rb index c4e737ac9c..8614560bf2 100644 --- a/railties/test/application/rake/restart_test.rb +++ b/railties/test/application/rake/restart_test.rb @@ -1,12 +1,11 @@ # frozen_string_literal: true require "isolation/abstract_unit" -require "chdir_helpers" module ApplicationTests module RakeTests class RakeRestartTest < ActiveSupport::TestCase - include ActiveSupport::Testing::Isolation, ChdirHelpers + include ActiveSupport::Testing::Isolation def setup build_app @@ -17,7 +16,7 @@ def teardown end test "rails restart touches tmp/restart.txt" do - chdir(app_path) do + Dir.chdir(app_path) do rails "restart" assert File.exist?("tmp/restart.txt") @@ -30,7 +29,7 @@ def teardown end test "rails restart should work even if tmp folder does not exist" do - chdir(app_path) do + Dir.chdir(app_path) do FileUtils.remove_dir("tmp") rails "restart" assert File.exist?("tmp/restart.txt") diff --git a/railties/test/application/rake/tmp_test.rb b/railties/test/application/rake/tmp_test.rb index 518ba8f044..048fd7adcc 100644 --- a/railties/test/application/rake/tmp_test.rb +++ b/railties/test/application/rake/tmp_test.rb @@ -1,12 +1,11 @@ # frozen_string_literal: true require "isolation/abstract_unit" -require "chdir_helpers" module ApplicationTests module RakeTests class TmpTest < ActiveSupport::TestCase - include ActiveSupport::Testing::Isolation, ChdirHelpers + include ActiveSupport::Testing::Isolation def setup build_app @@ -17,7 +16,7 @@ def teardown end test "tmp:clear clear cache, socket and screenshot files" do - chdir(app_path) do + Dir.chdir(app_path) do FileUtils.mkdir_p("tmp/cache") FileUtils.touch("tmp/cache/cache_file") diff --git a/railties/test/chdir_helpers.rb b/railties/test/chdir_helpers.rb deleted file mode 100644 index b7c81e3ae7..0000000000 --- a/railties/test/chdir_helpers.rb +++ /dev/null @@ -1,12 +0,0 @@ -# frozen_string_literal: true - -module ChdirHelpers - private - def chdir(dir) - pwd = Dir.pwd - Dir.chdir(dir) - yield - ensure - Dir.chdir(pwd) - end -end