1
0
Fork 0
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:
Damien Mathieu 2015-03-19 10:06:28 +01:00
parent 7f338b9082
commit d578cbfb5c
16 changed files with 32 additions and 121 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -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]

View file

@ -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.

View file

@ -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?

View file

@ -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

View file

@ -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?

View file

@ -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")

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -27,61 +27,36 @@ 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
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
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 = []
options = Rails::Server::Options.new.parse!(args)
assert_equal true, options[:log_stdout]
args = ["-e", "development"]
options = Rails::Server::Options.new.parse!(args)
assert_equal true, options[:log_stdout]
args = ["-e", "production"]
options = Rails::Server::Options.new.parse!(args)
assert_equal false, options[:log_stdout]
with_rails_env 'development' do
args = [] args = []
options = Rails::Server::Options.new.parse!(args) options = Rails::Server::Options.new.parse!(args)
assert_equal true, options[:log_stdout] assert_equal true, options[:log_stdout]
end
args = ["-e", "development"] with_rails_env 'production' do
options = Rails::Server::Options.new.parse!(args) args = []
assert_equal true, options[:log_stdout]
args = ["-e", "production"]
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
args = []
options = Rails::Server::Options.new.parse!(args)
assert_equal true, options[:log_stdout]
end
with_rails_env 'production' do
args = []
options = Rails::Server::Options.new.parse!(args)
assert_equal false, options[:log_stdout]
end
end end
end end
end end

View file

@ -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