mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
don't fallback to RACK_ENV when RAILS_ENV is not present
This commit is contained in:
parent
7f338b9082
commit
d578cbfb5c
16 changed files with 32 additions and 121 deletions
|
@ -36,7 +36,7 @@ require 'pp' # require 'pp' early to prevent hidden_methods from not picking up
|
||||||
module Rails
|
module Rails
|
||||||
class << self
|
class << self
|
||||||
def env
|
def env
|
||||||
@_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "test")
|
@_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || "test")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -28,7 +28,7 @@ require 'pp' # require 'pp' early to prevent hidden_methods from not picking up
|
||||||
module Rails
|
module Rails
|
||||||
class << self
|
class << self
|
||||||
def env
|
def env
|
||||||
@_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "test")
|
@_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || "test")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
module ActiveRecord
|
module ActiveRecord
|
||||||
module ConnectionHandling
|
module ConnectionHandling
|
||||||
RAILS_ENV = -> { (Rails.env if defined?(Rails.env)) || ENV["RAILS_ENV"] || ENV["RACK_ENV"] }
|
RAILS_ENV = -> { (Rails.env if defined?(Rails.env)) || ENV["RAILS_ENV"] }
|
||||||
DEFAULT_ENV = -> { RAILS_ENV.call || "default_env" }
|
DEFAULT_ENV = -> { RAILS_ENV.call || "default_env" }
|
||||||
|
|
||||||
# Establishes the connection to the database. Accepts a hash as input where
|
# Establishes the connection to the database. Accepts a hash as input where
|
||||||
|
|
|
@ -5,13 +5,11 @@ module ActiveRecord
|
||||||
class MergeAndResolveDefaultUrlConfigTest < ActiveRecord::TestCase
|
class MergeAndResolveDefaultUrlConfigTest < ActiveRecord::TestCase
|
||||||
def setup
|
def setup
|
||||||
@previous_database_url = ENV.delete("DATABASE_URL")
|
@previous_database_url = ENV.delete("DATABASE_URL")
|
||||||
@previous_rack_env = ENV.delete("RACK_ENV")
|
|
||||||
@previous_rails_env = ENV.delete("RAILS_ENV")
|
@previous_rails_env = ENV.delete("RAILS_ENV")
|
||||||
end
|
end
|
||||||
|
|
||||||
teardown do
|
teardown do
|
||||||
ENV["DATABASE_URL"] = @previous_database_url
|
ENV["DATABASE_URL"] = @previous_database_url
|
||||||
ENV["RACK_ENV"] = @previous_rack_env
|
|
||||||
ENV["RAILS_ENV"] = @previous_rails_env
|
ENV["RAILS_ENV"] = @previous_rails_env
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -41,16 +39,6 @@ module ActiveRecord
|
||||||
assert_equal expected, actual
|
assert_equal expected, actual
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_resolver_with_database_uri_and_current_env_symbol_key_and_rack_env
|
|
||||||
ENV['DATABASE_URL'] = "postgres://localhost/foo"
|
|
||||||
ENV['RACK_ENV'] = "foo"
|
|
||||||
|
|
||||||
config = { "not_production" => { "adapter" => "not_postgres", "database" => "not_foo" } }
|
|
||||||
actual = resolve_spec(:foo, config)
|
|
||||||
expected = { "adapter" => "postgresql", "database" => "foo", "host" => "localhost" }
|
|
||||||
assert_equal expected, actual
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_resolver_with_database_uri_and_known_key
|
def test_resolver_with_database_uri_and_known_key
|
||||||
ENV['DATABASE_URL'] = "postgres://localhost/foo"
|
ENV['DATABASE_URL'] = "postgres://localhost/foo"
|
||||||
config = { "production" => { "adapter" => "not_postgres", "database" => "not_foo", "host" => "localhost" } }
|
config = { "production" => { "adapter" => "not_postgres", "database" => "not_foo", "host" => "localhost" } }
|
||||||
|
@ -173,28 +161,6 @@ module ActiveRecord
|
||||||
assert_equal nil, actual[:test]
|
assert_equal nil, actual[:test]
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_blank_with_database_url_with_rack_env
|
|
||||||
ENV['RACK_ENV'] = "not_production"
|
|
||||||
ENV['DATABASE_URL'] = "postgres://localhost/foo"
|
|
||||||
|
|
||||||
config = {}
|
|
||||||
actual = resolve_config(config)
|
|
||||||
expected = { "adapter" => "postgresql",
|
|
||||||
"database" => "foo",
|
|
||||||
"host" => "localhost" }
|
|
||||||
|
|
||||||
assert_equal expected, actual["not_production"]
|
|
||||||
assert_equal nil, actual["production"]
|
|
||||||
assert_equal nil, actual["default_env"]
|
|
||||||
assert_equal nil, actual["development"]
|
|
||||||
assert_equal nil, actual["test"]
|
|
||||||
assert_equal nil, actual[:default_env]
|
|
||||||
assert_equal nil, actual[:not_production]
|
|
||||||
assert_equal nil, actual[:production]
|
|
||||||
assert_equal nil, actual[:development]
|
|
||||||
assert_equal nil, actual[:test]
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_database_url_with_ipv6_host_and_port
|
def test_database_url_with_ipv6_host_and_port
|
||||||
ENV['DATABASE_URL'] = "postgres://[::1]:5454/foo"
|
ENV['DATABASE_URL'] = "postgres://[::1]:5454/foo"
|
||||||
|
|
||||||
|
|
|
@ -278,7 +278,7 @@ def parse_options(args)
|
||||||
|
|
||||||
options.merge! opt_parser.parse!(args)
|
options.merge! opt_parser.parse!(args)
|
||||||
options[:config] = ::File.expand_path(options[:config])
|
options[:config] = ::File.expand_path(options[:config])
|
||||||
ENV["RACK_ENV"] = options[:environment]
|
ENV["RAILS_ENV"] = options[:environment]
|
||||||
options
|
options
|
||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
@ -287,7 +287,7 @@ With the `default_options` set to this:
|
||||||
|
|
||||||
```ruby
|
```ruby
|
||||||
def default_options
|
def default_options
|
||||||
environment = ENV['RACK_ENV'] || 'development'
|
environment = ENV['RAILS_ENV'] || 'development'
|
||||||
default_host = environment == 'development' ? 'localhost' : '0.0.0.0'
|
default_host = environment == 'development' ? 'localhost' : '0.0.0.0'
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -669,7 +669,7 @@ def self.run(app, options = {})
|
||||||
end
|
end
|
||||||
|
|
||||||
if options[:environment]
|
if options[:environment]
|
||||||
ENV['RACK_ENV'] = options[:environment].to_s
|
ENV['RAILS_ENV'] = options[:environment].to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
server = ::Puma::Server.new(app)
|
server = ::Puma::Server.new(app)
|
||||||
|
@ -677,7 +677,7 @@ def self.run(app, options = {})
|
||||||
|
|
||||||
puts "Puma #{::Puma::Const::PUMA_VERSION} starting..."
|
puts "Puma #{::Puma::Const::PUMA_VERSION} starting..."
|
||||||
puts "* Min threads: #{min}, max threads: #{max}"
|
puts "* Min threads: #{min}, max threads: #{max}"
|
||||||
puts "* Environment: #{ENV['RACK_ENV']}"
|
puts "* Environment: #{ENV['RAILS_ENV']}"
|
||||||
puts "* Listening on tcp://#{options[:Host]}:#{options[:Port]}"
|
puts "* Listening on tcp://#{options[:Host]}:#{options[:Port]}"
|
||||||
|
|
||||||
server.add_tcp_listener options[:Host], options[:Port]
|
server.add_tcp_listener options[:Host], options[:Port]
|
||||||
|
|
|
@ -62,7 +62,7 @@ module Rails
|
||||||
# Rails.env.development? # => true
|
# Rails.env.development? # => true
|
||||||
# Rails.env.production? # => false
|
# Rails.env.production? # => false
|
||||||
def env
|
def env
|
||||||
@_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development")
|
@_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || "development")
|
||||||
end
|
end
|
||||||
|
|
||||||
# Sets the Rails environment.
|
# Sets the Rails environment.
|
||||||
|
|
|
@ -57,7 +57,7 @@ module Rails
|
||||||
end
|
end
|
||||||
|
|
||||||
def environment
|
def environment
|
||||||
options[:environment] ||= ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'development'
|
options[:environment] ||= ENV['RAILS_ENV'] || 'development'
|
||||||
end
|
end
|
||||||
|
|
||||||
def environment?
|
def environment?
|
||||||
|
|
|
@ -107,7 +107,7 @@ module Rails
|
||||||
if Rails.respond_to?(:env)
|
if Rails.respond_to?(:env)
|
||||||
Rails.env
|
Rails.env
|
||||||
else
|
else
|
||||||
ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development"
|
ENV["RAILS_ENV"] || "development"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
require 'optparse'
|
require 'optparse'
|
||||||
|
|
||||||
options = { environment: (ENV['RAILS_ENV'] || ENV['RACK_ENV'] || "development").dup }
|
options = { environment: (ENV['RAILS_ENV'] || "development").dup }
|
||||||
code_or_file = nil
|
code_or_file = nil
|
||||||
|
|
||||||
if ARGV.first.nil?
|
if ARGV.first.nil?
|
||||||
|
|
|
@ -95,7 +95,7 @@ module Rails
|
||||||
super.merge({
|
super.merge({
|
||||||
Port: 3000,
|
Port: 3000,
|
||||||
DoNotReverseLookup: true,
|
DoNotReverseLookup: true,
|
||||||
environment: (ENV['RAILS_ENV'] || ENV['RACK_ENV'] || "development").dup,
|
environment: (ENV['RAILS_ENV'] || "development").dup,
|
||||||
daemonize: false,
|
daemonize: false,
|
||||||
pid: File.expand_path("tmp/pids/server.pid"),
|
pid: File.expand_path("tmp/pids/server.pid"),
|
||||||
config: File.expand_path("config.ru")
|
config: File.expand_path("config.ru")
|
||||||
|
|
|
@ -203,9 +203,7 @@ module ApplicationTests
|
||||||
test 'db:setup loads schema and seeds database' do
|
test 'db:setup loads schema and seeds database' do
|
||||||
begin
|
begin
|
||||||
@old_rails_env = ENV["RAILS_ENV"]
|
@old_rails_env = ENV["RAILS_ENV"]
|
||||||
@old_rack_env = ENV["RACK_ENV"]
|
|
||||||
ENV.delete "RAILS_ENV"
|
ENV.delete "RAILS_ENV"
|
||||||
ENV.delete "RACK_ENV"
|
|
||||||
|
|
||||||
app_file 'db/schema.rb', <<-RUBY
|
app_file 'db/schema.rb', <<-RUBY
|
||||||
ActiveRecord::Schema.define(version: "1") do
|
ActiveRecord::Schema.define(version: "1") do
|
||||||
|
@ -225,7 +223,6 @@ module ApplicationTests
|
||||||
end
|
end
|
||||||
ensure
|
ensure
|
||||||
ENV["RAILS_ENV"] = @old_rails_env
|
ENV["RAILS_ENV"] = @old_rails_env
|
||||||
ENV["RACK_ENV"] = @old_rack_env
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -79,11 +79,5 @@ module ApplicationTests
|
||||||
assert_match "production", Dir.chdir(app_path) { `bundle exec rails runner "puts Rails.env"` }
|
assert_match "production", Dir.chdir(app_path) { `bundle exec rails runner "puts Rails.env"` }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_environment_with_rack_env
|
|
||||||
with_rack_env "production" do
|
|
||||||
assert_match "production", Dir.chdir(app_path) { `bundle exec rails runner "puts Rails.env"` }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -70,13 +70,6 @@ class Rails::ConsoleTest < ActiveSupport::TestCase
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_default_environment_with_rack_env
|
|
||||||
with_rack_env 'production' do
|
|
||||||
start
|
|
||||||
assert_match(/\sproduction\s/, output)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_e_option
|
def test_e_option
|
||||||
start ['-e', 'special-production']
|
start ['-e', 'special-production']
|
||||||
assert_match(/\sspecial-production\s/, output)
|
assert_match(/\sspecial-production\s/, output)
|
||||||
|
|
|
@ -82,20 +82,15 @@ class Rails::DBConsoleTest < ActiveSupport::TestCase
|
||||||
assert_equal "test", Rails::DBConsole.new.environment
|
assert_equal "test", Rails::DBConsole.new.environment
|
||||||
|
|
||||||
ENV['RAILS_ENV'] = nil
|
ENV['RAILS_ENV'] = nil
|
||||||
ENV['RACK_ENV'] = nil
|
|
||||||
|
|
||||||
Rails.stub(:respond_to?, false) do
|
Rails.stub(:respond_to?, false) do
|
||||||
assert_equal "development", Rails::DBConsole.new.environment
|
assert_equal "development", Rails::DBConsole.new.environment
|
||||||
|
|
||||||
ENV['RACK_ENV'] = "rack_env"
|
|
||||||
assert_equal "rack_env", Rails::DBConsole.new.environment
|
|
||||||
|
|
||||||
ENV['RAILS_ENV'] = "rails_env"
|
ENV['RAILS_ENV'] = "rails_env"
|
||||||
assert_equal "rails_env", Rails::DBConsole.new.environment
|
assert_equal "rails_env", Rails::DBConsole.new.environment
|
||||||
end
|
end
|
||||||
ensure
|
ensure
|
||||||
ENV['RAILS_ENV'] = "test"
|
ENV['RAILS_ENV'] = "test"
|
||||||
ENV['RACK_ENV'] = nil
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_rails_env_is_development_when_argument_is_dev
|
def test_rails_env_is_development_when_argument_is_dev
|
||||||
|
|
|
@ -27,25 +27,13 @@ class Rails::ServerTest < ActiveSupport::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_environment_with_rails_env
|
def test_environment_with_rails_env
|
||||||
with_rack_env nil do
|
|
||||||
with_rails_env 'production' do
|
with_rails_env 'production' do
|
||||||
server = Rails::Server.new
|
server = Rails::Server.new
|
||||||
assert_equal 'production', server.options[:environment]
|
assert_equal 'production', server.options[:environment]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
def test_environment_with_rack_env
|
|
||||||
with_rails_env nil do
|
|
||||||
with_rack_env 'production' do
|
|
||||||
server = Rails::Server.new
|
|
||||||
assert_equal 'production', server.options[:environment]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_log_stdout
|
def test_log_stdout
|
||||||
with_rack_env nil do
|
|
||||||
with_rails_env nil do
|
with_rails_env nil do
|
||||||
args = []
|
args = []
|
||||||
options = Rails::Server::Options.new.parse!(args)
|
options = Rails::Server::Options.new.parse!(args)
|
||||||
|
@ -59,18 +47,6 @@ class Rails::ServerTest < ActiveSupport::TestCase
|
||||||
options = Rails::Server::Options.new.parse!(args)
|
options = Rails::Server::Options.new.parse!(args)
|
||||||
assert_equal false, options[:log_stdout]
|
assert_equal false, options[:log_stdout]
|
||||||
|
|
||||||
with_rack_env 'development' do
|
|
||||||
args = []
|
|
||||||
options = Rails::Server::Options.new.parse!(args)
|
|
||||||
assert_equal true, options[:log_stdout]
|
|
||||||
end
|
|
||||||
|
|
||||||
with_rack_env 'production' do
|
|
||||||
args = []
|
|
||||||
options = Rails::Server::Options.new.parse!(args)
|
|
||||||
assert_equal false, options[:log_stdout]
|
|
||||||
end
|
|
||||||
|
|
||||||
with_rails_env 'development' do
|
with_rails_env 'development' do
|
||||||
args = []
|
args = []
|
||||||
options = Rails::Server::Options.new.parse!(args)
|
options = Rails::Server::Options.new.parse!(args)
|
||||||
|
@ -85,4 +61,3 @@ class Rails::ServerTest < ActiveSupport::TestCase
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
|
@ -12,15 +12,6 @@ module EnvHelpers
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def with_rack_env(env)
|
|
||||||
Rails.instance_variable_set :@_env, nil
|
|
||||||
switch_env 'RACK_ENV', env do
|
|
||||||
switch_env 'RAILS_ENV', nil do
|
|
||||||
yield
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def switch_env(key, value)
|
def switch_env(key, value)
|
||||||
old, ENV[key] = ENV[key], value
|
old, ENV[key] = ENV[key], value
|
||||||
yield
|
yield
|
||||||
|
|
Loading…
Reference in a new issue