Sha256: d6e1d36357bcf8352ccee1e78fdd493ea0ced7a5b739ab166fccf82e35eb48cf

Contents?: true

Size: 1.13 KB

Versions: 6

Compression:

Stored size: 1.13 KB

Contents

require "isolate"
require "minitest/autorun"

ENV.delete "RUBYOPT" # Rakefile uses isolate, so we don't want this

module Isolate
  Sandbox::DEFAULT_PATH.replace "tmp/test" # change isolate dir for testing

  class Test < MiniTest::Unit::TestCase
    def setup
      Isolate.refresh

      @env = ENV.to_hash
      @lp  = $LOAD_PATH.dup
      @lf  = $LOADED_FEATURES.dup
    end

    def teardown
      Gem::DependencyInstaller.reset_value
      Gem::Uninstaller.reset_value

      ENV.replace @env
      $LOAD_PATH.replace @lp
      $LOADED_FEATURES.replace @lf

      FileUtils.rm_rf "tmp/test"
    end
  end
end

module BrutalStub
  @@value = []
  def value; @@value end
  def reset_value; value.clear end
end

class Gem::DependencyInstaller
  extend BrutalStub

  alias old_install install
  def install name, requirement
    self.class.value << [name, requirement]
  end
end

class Gem::Uninstaller
  extend BrutalStub

  attr_reader :gem, :version
  alias old_uninstall uninstall

  def uninstall
    self.class.value << [self.gem,
                         self.version.to_s,
                         self.gem_home.sub(Dir.pwd + "/", '')]
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
isolate-3.2.2 test/isolate/test.rb
isolate-3.2.1 test/isolate/test.rb
isolate-3.2.0 test/isolate/test.rb
isolate-3.1.2 test/isolate/test.rb
isolate-3.1.1 test/isolate/test.rb
isolate-3.1.0 test/isolate/test.rb