PageRenderTime 46ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/vendor/rails/activesupport/test/clean_logger_test.rb

https://github.com/bricooke/my-biz-expenses
Ruby | 80 lines | 64 code | 10 blank | 6 comment | 2 complexity | 5fd8220b95243baa83310e51d51ad769 MD5 | raw file
Possible License(s): CC-BY-SA-3.0, BSD-3-Clause
  1. require File.dirname(__FILE__) + '/abstract_unit'
  2. require 'stringio'
  3. class CleanLoggerTest < Test::Unit::TestCase
  4. def setup
  5. @out = StringIO.new
  6. @logger = Logger.new(@out)
  7. end
  8. def test_format_message
  9. @logger.error 'error'
  10. assert_equal "error\n", @out.string
  11. end
  12. def test_silence
  13. # Without yielding self.
  14. @logger.silence do
  15. @logger.debug 'debug'
  16. @logger.info 'info'
  17. @logger.warn 'warn'
  18. @logger.error 'error'
  19. @logger.fatal 'fatal'
  20. end
  21. # Yielding self.
  22. @logger.silence do |logger|
  23. logger.debug 'debug'
  24. logger.info 'info'
  25. logger.warn 'warn'
  26. logger.error 'error'
  27. logger.fatal 'fatal'
  28. end
  29. # Silencer off.
  30. Logger.silencer = false
  31. @logger.silence do |logger|
  32. logger.warn 'unsilenced'
  33. end
  34. Logger.silencer = true
  35. assert_equal "error\nfatal\nerror\nfatal\nunsilenced\n", @out.string
  36. end
  37. end
  38. class CleanLogger_182_to_183_Test < Test::Unit::TestCase
  39. def setup
  40. silence_warnings do
  41. if Logger.method_defined?(:formatter=)
  42. Logger.send(:alias_method, :hide_formatter=, :formatter=)
  43. Logger.send(:undef_method, :formatter=)
  44. else
  45. Logger.send(:define_method, :formatter=) { }
  46. end
  47. load File.dirname(__FILE__) + '/../lib/active_support/clean_logger.rb'
  48. end
  49. @out = StringIO.new
  50. @logger = Logger.new(@out)
  51. @logger.progname = 'CLEAN LOGGER TEST'
  52. end
  53. def teardown
  54. silence_warnings do
  55. if Logger.method_defined?(:hide_formatter=)
  56. Logger.send(:alias_method, :formatter=, :hide_formatter=)
  57. else
  58. Logger.send(:undef_method, :formatter=)
  59. end
  60. load File.dirname(__FILE__) + '/../lib/active_support/clean_logger.rb'
  61. end
  62. end
  63. # Since we've fooled Logger into thinking we're on 1.8.2 if we're on 1.8.3
  64. # and on 1.8.3 if we're on 1.8.2, it'll define format_message with the
  65. # wrong order of arguments and therefore print progname instead of msg.
  66. def test_format_message_with_faked_version
  67. @logger.error 'error'
  68. assert_equal "CLEAN LOGGER TEST\n", @out.string
  69. end
  70. end