Sha256: 1f6bd49e75f3d085b436db2895a03eb7453c6eb1102f5722dd5f6d598a004fc6

Contents?: true

Size: 1.56 KB

Versions: 3

Compression:

Stored size: 1.56 KB

Contents

# $Id: setup.rb 88 2008-02-08 18:47:36Z tim_pease $

# Equivalent to a header guard in C/C++
# Used to prevent the class/module from being loaded more than once
unless defined? LOGGING_TEST_SETUP
LOGGING_TEST_SETUP = true

require 'test/unit'
require 'fileutils'
require 'stringio'

# This line is needed for Ruby 1.9 -- hashes throw a "KeyError" in 1.9
# whereas they throw an "IndexError" in 1.8
#
KeyError = IndexError if not defined? KeyError

require File.join(File.dirname(__FILE__), %w[.. lib logging])

begin
  require 'turn'
rescue LoadError
  require 'rubygems'
  begin; require 'turn'; rescue LoadError; end
end


module TestLogging
module LoggingTestCase

  TMP = 'tmp'

  def setup
    super

    FileUtils.rm_rf TMP
    FileUtils.mkdir TMP

    ::Logging.module_eval do
      ::Logging::LEVELS.clear
      ::Logging::LNAMES.clear
      remove_const :MAX_LEVEL_LENGTH if const_defined? :MAX_LEVEL_LENGTH
      remove_const :OBJ_FORMAT if const_defined? :OBJ_FORMAT
    end

    ::Logging::Repository.class_eval do
      if defined?(@singleton__instance__)
        @singleton__instance__ = nil
      else
        @__instance__ = nil
        class << self
          nonce = class << Singleton; self; end
          define_method(:instance, nonce::FirstInstanceCall)
        end
      end
    end
  end
    
  def teardown
    super
    h = ::Logging::Appender.instance_variable_get(:@appenders)
    h.each_value {|a| a.close(false) unless a.nil? || a.closed?}
    h.clear
    FileUtils.rm_rf TMP
  end

end  # module LoggingTestCase
end  # module TestLogging

end  # unless defined?

# EOF

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
logging-0.6.3 test/setup.rb
logging-0.7.0 test/setup.rb
logging-0.7.1 test/setup.rb