mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Just change ENV and restore it afterwards.
Stubbing ENV[] is not safe outside MRI. At some point after the stubbing has occurred a backtrace is printed to the ActiveSupport warning log: there Rubinius accesses ENV['RBX_NOCOLOR'] to determine if it should print the backtrace with colors or not, causing the stub to fail. Other implementations might access ENV in a different way too, we just can't predict it. The only thing we can do here is to actually set the ENV with what we want and restore it afterwards.
This commit is contained in:
parent
21a71cd5d8
commit
afd0a8ab5f
1 changed files with 4 additions and 1 deletions
|
@ -253,7 +253,8 @@ class FixturesTest < ActiveRecord::TestCase
|
|||
end
|
||||
|
||||
def test_fixtures_are_set_up_with_database_env_variable
|
||||
ENV.stubs(:[]).with("DATABASE_URL").returns("sqlite3:///:memory:")
|
||||
db_url_tmp = ENV['DATABASE_URL']
|
||||
ENV['DATABASE_URL'] = "sqlite3:///:memory:"
|
||||
ActiveRecord::Base.stubs(:configurations).returns({})
|
||||
test_case = Class.new(ActiveRecord::TestCase) do
|
||||
fixtures :accounts
|
||||
|
@ -266,6 +267,8 @@ class FixturesTest < ActiveRecord::TestCase
|
|||
result = test_case.new(:test_fixtures).run
|
||||
|
||||
assert result.passed?, "Expected #{result.name} to pass:\n#{result}"
|
||||
ensure
|
||||
ENV['DATABASE_URL'] = db_url_tmp
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue