diff options
author | Federico Ravasio <ravasio.federico@gmail.com> | 2013-10-07 10:15:23 +0200 |
---|---|---|
committer | Federico Ravasio <ravasio.federico@gmail.com> | 2013-10-07 10:15:23 +0200 |
commit | afd0a8ab5f690b9bcc5f49371abd82d41a364f58 (patch) | |
tree | 47edbc7b5852683c84dc699642a2c560464bfba1 | |
parent | 21a71cd5d8f266252278a63316a99cc403a32cad (diff) | |
download | rails-afd0a8ab5f690b9bcc5f49371abd82d41a364f58.tar.gz rails-afd0a8ab5f690b9bcc5f49371abd82d41a364f58.tar.bz2 rails-afd0a8ab5f690b9bcc5f49371abd82d41a364f58.zip |
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.
-rw-r--r-- | activerecord/test/cases/fixtures_test.rb | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/activerecord/test/cases/fixtures_test.rb b/activerecord/test/cases/fixtures_test.rb index e61deb1080..bffff07089 100644 --- a/activerecord/test/cases/fixtures_test.rb +++ b/activerecord/test/cases/fixtures_test.rb @@ -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 |