aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFederico Ravasio <ravasio.federico@gmail.com>2013-10-07 10:15:23 +0200
committerFederico Ravasio <ravasio.federico@gmail.com>2013-10-07 10:15:23 +0200
commitafd0a8ab5f690b9bcc5f49371abd82d41a364f58 (patch)
tree47edbc7b5852683c84dc699642a2c560464bfba1
parent21a71cd5d8f266252278a63316a99cc403a32cad (diff)
downloadrails-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.rb5
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