diff options
Diffstat (limited to 'lib/rubygems/test_case.rb')
-rw-r--r-- | lib/rubygems/test_case.rb | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/rubygems/test_case.rb b/lib/rubygems/test_case.rb index bde4ed6713..f7ae97cd8d 100644 --- a/lib/rubygems/test_case.rb +++ b/lib/rubygems/test_case.rb @@ -223,6 +223,10 @@ class Gem::TestCase < MiniTest::Unit::TestCase @orig_gem_spec_cache = ENV['GEM_SPEC_CACHE'] @orig_rubygems_gemdeps = ENV['RUBYGEMS_GEMDEPS'] @orig_rubygems_host = ENV['RUBYGEMS_HOST'] + ENV.keys.find_all { |k| k.start_with?('GEM_REQUIREMENT_') }.each do |k| + ENV.delete k + end + @orig_gem_env_requirements = ENV.to_hash ENV['GEM_VENDOR'] = nil @@ -288,6 +292,7 @@ class Gem::TestCase < MiniTest::Unit::TestCase ENV['HOME'] = @userhome Gem.instance_variable_set :@user_home, nil Gem.instance_variable_set :@gemdeps, nil + Gem.instance_variable_set :@env_requirements_by_name, nil Gem.send :remove_instance_variable, :@ruby_version if Gem.instance_variables.include? :@ruby_version @@ -379,6 +384,11 @@ class Gem::TestCase < MiniTest::Unit::TestCase FileUtils.rm_rf @tempdir unless ENV['KEEP_FILES'] + ENV.clear + @orig_gem_env_requirements.each do |k,v| + ENV[k] = v + end + ENV['GEM_HOME'] = @orig_gem_home ENV['GEM_PATH'] = @orig_gem_path ENV['GEM_VENDOR'] = @orig_gem_vendor @@ -1504,4 +1514,3 @@ tmpdirs << (ENV['GEM_PATH'] = Dir.mktmpdir("path")) pid = $$ END {tmpdirs.each {|dir| Dir.rmdir(dir)} if $$ == pid} Gem.clear_paths - |