logging 0.5.3 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,8 +14,8 @@ namespace :doc do
14
14
  excl = Regexp.new(PROJ.rdoc_exclude.join('|'))
15
15
  files = PROJ.files.find_all do |fn|
16
16
  case fn
17
- when excl: false
18
- when incl: true
17
+ when excl; false
18
+ when incl; true
19
19
  else false end
20
20
  end
21
21
  rd.rdoc_files.push(*files)
@@ -25,7 +25,7 @@ namespace :gem do
25
25
  s.extensions = PROJ.files.grep %r/extconf\.rb$/
26
26
 
27
27
  s.bindir = 'bin'
28
- dirs = Dir['{lib,ext}']
28
+ dirs = Dir["{#{PROJ.libs.join(',')}}"]
29
29
  s.require_paths = dirs unless dirs.empty?
30
30
 
31
31
  incl = Regexp.new(PROJ.rdoc_include.join('|'))
@@ -33,8 +33,8 @@ namespace :gem do
33
33
  excl = Regexp.new(excl.join('|'))
34
34
  rdoc_files = PROJ.files.find_all do |fn|
35
35
  case fn
36
- when excl: false
37
- when incl: true
36
+ when excl; false
37
+ when incl; true
38
38
  else false end
39
39
  end
40
40
  s.rdoc_options = PROJ.rdoc_opts + ['--main', PROJ.rdoc_main]
File without changes
File without changes
@@ -1,4 +1,4 @@
1
- # $Id: setup.rb 40 2007-10-26 20:25:23Z tim_pease $
1
+ # $Id: setup.rb 63 2007-12-22 20:47:54Z tim_pease $
2
2
 
3
3
  require 'rubygems'
4
4
  require 'rake'
@@ -56,9 +56,6 @@ PROJ.dependencies = []
56
56
  PROJ.need_tar = true
57
57
  PROJ.need_zip = false
58
58
 
59
- # Import the rake tasks
60
- FileList['tasks/*.rake'].each {|task| import task}
61
-
62
59
  # Setup some constants
63
60
  WIN32 = %r/win32/ =~ RUBY_PLATFORM unless defined? WIN32
64
61
 
File without changes
File without changes
@@ -0,0 +1,165 @@
1
+ # $Id: test_email.rb 69 2007-12-26 20:53:33Z tim_pease $
2
+
3
+ require 'test/setup.rb'
4
+ require 'flexmock'
5
+
6
+ module TestLogging
7
+ module TestAppenders
8
+
9
+ class TestEmail < Test::Unit::TestCase
10
+ include FlexMock::TestCase
11
+ include LoggingTestCase
12
+
13
+ def setup
14
+ super
15
+ ::Logging.define_levels %w(debug info warn error fatal)
16
+ @levels = ::Logging::LEVELS
17
+
18
+ flexmock(Net::SMTP).new_instances do |m|
19
+ m.should_receive(:start).at_least.once.with(
20
+ 'test.logging', 'test', 'test', :cram_md5, Proc).and_yield(m)
21
+ m.should_receive(:sendmail).at_least.once.with(String, 'me', ['you'])
22
+ end
23
+
24
+ @appender = ::Logging::Appenders::Email.new('email',
25
+ 'from' => 'me', 'to' => 'you',
26
+ :buffsize => '3', :immediate_at => 'error, fatal',
27
+ :domain => 'test.logging', :acct => 'test', :passwd => 'test'
28
+ )
29
+ end
30
+
31
+ def test_initialize
32
+ assert_raise(ArgumentError, 'Must specify from address') {
33
+ ::Logging::Appenders::Email.new('email')
34
+ }
35
+ assert_raise(ArgumentError, 'Must specify to address') {
36
+ ::Logging::Appenders::Email.new('email', :from => 'me')
37
+ }
38
+ assert_nothing_raised {
39
+ ::Logging::Appenders::Email.new('email', :from => 'me', :to => 'you')
40
+ }
41
+
42
+ appender = ::Logging::Appenders::Email.new('email',
43
+ 'from' => 'me', 'to' => 'you'
44
+ )
45
+
46
+ assert_equal(100, appender.instance_variable_get(:@buffsize))
47
+ assert_equal([], appender.instance_variable_get(:@immediate))
48
+ assert_equal('localhost', appender.server)
49
+ assert_equal(25, appender.port)
50
+ assert_equal(ENV['HOSTNAME'], appender.domain)
51
+ assert_equal(nil, appender.acct)
52
+ assert_equal(:cram_md5, appender.authtype)
53
+ assert_equal("Message of #{$0}", appender.subject)
54
+
55
+ appender = ::Logging::Appenders::Email.new('email',
56
+ 'from' => 'lbrinn@gmail.com', 'to' => 'everyone',
57
+ :buffsize => '1000', :immediate_at => 'error, fatal',
58
+ :server => 'smtp.google.com', :port => '443',
59
+ :domain => 'google.com', :acct => 'lbrinn',
60
+ :passwd => '1234', :authtype => 'tls',
61
+ :subject => "I'm rich and you're not"
62
+ )
63
+
64
+ assert_equal('lbrinn@gmail.com', appender.instance_variable_get(:@from))
65
+ assert_equal(['everyone'], appender.instance_variable_get(:@to))
66
+ assert_equal(1000, appender.instance_variable_get(:@buffsize))
67
+ assert_equal('1234', appender.instance_variable_get(:@passwd))
68
+ assert_equal([nil, nil, nil, true, true],
69
+ appender.instance_variable_get(:@immediate))
70
+ assert_equal('smtp.google.com', appender.server)
71
+ assert_equal(443, appender.port)
72
+ assert_equal('google.com', appender.domain)
73
+ assert_equal('lbrinn', appender.acct)
74
+ assert_equal(:tls, appender.authtype)
75
+ assert_equal("I'm rich and you're not", appender.subject)
76
+ end
77
+
78
+ def test_append
79
+ # with a buffer size of 0, mail will be sent each time a log event
80
+ # occurs
81
+ @appender.instance_variable_set(:@buffsize, 0)
82
+ event = ::Logging::LogEvent.new('TestLogger', @levels['warn'],
83
+ [1, 2, 3, 4], false)
84
+ @appender.append event
85
+ assert_not_equal(@levels.length, @appender.level)
86
+ assert_equal(0, @appender.queued_messages)
87
+
88
+ # increase the buffer size and log a few events
89
+ @appender.instance_variable_set(:@buffsize, 3)
90
+ @appender.append event
91
+ @appender.append event
92
+ assert_equal(2, @appender.queued_messages)
93
+
94
+ @appender.append event
95
+ assert_not_equal(@levels.length, @appender.level)
96
+ assert_equal(0, @appender.queued_messages)
97
+
98
+ # error and fatal messages should be send immediately (no buffering)
99
+ error = ::Logging::LogEvent.new('ErrLogger', @levels['error'],
100
+ 'error message', false)
101
+ fatal = ::Logging::LogEvent.new('FatalLogger', @levels['fatal'],
102
+ 'fatal message', false)
103
+
104
+ @appender.append event
105
+ @appender.append fatal
106
+ assert_not_equal(@levels.length, @appender.level)
107
+ assert_equal(0, @appender.queued_messages)
108
+
109
+ @appender.append error
110
+ assert_not_equal(@levels.length, @appender.level)
111
+ assert_equal(0, @appender.queued_messages)
112
+
113
+ @appender.append event
114
+ assert_equal(1, @appender.queued_messages)
115
+ end
116
+
117
+ def test_concat
118
+ # with a buffer size of 0, mail will be sent each time a log event
119
+ # occurs
120
+ @appender.instance_variable_set(:@buffsize, 0)
121
+ @appender << 'test message'
122
+ assert_not_equal(@levels.length, @appender.level)
123
+ assert_equal(0, @appender.queued_messages)
124
+
125
+ # increase the buffer size and log a few events
126
+ @appender.instance_variable_set(:@buffsize, 3)
127
+ @appender << 'another test message'
128
+ @appender << 'a second test message'
129
+ assert_equal(2, @appender.queued_messages)
130
+
131
+ @appender << 'a third test message'
132
+ assert_not_equal(@levels.length, @appender.level)
133
+ assert_equal(0, @appender.queued_messages)
134
+ end
135
+
136
+ def test_flush
137
+ event = ::Logging::LogEvent.new('TestLogger', @levels['info'],
138
+ [1, 2, 3, 4], false)
139
+ @appender.append event
140
+ @appender << 'test message'
141
+ assert_equal(2, @appender.queued_messages)
142
+
143
+ @appender.flush
144
+ assert_not_equal(@levels.length, @appender.level)
145
+ assert_equal(0, @appender.queued_messages)
146
+ end
147
+
148
+ def test_close
149
+ event = ::Logging::LogEvent.new('TestLogger', @levels['info'],
150
+ [1, 2, 3, 4], false)
151
+ @appender.append event
152
+ @appender << 'test message'
153
+ assert_equal(2, @appender.queued_messages)
154
+
155
+ @appender.close
156
+ assert_not_equal(@levels.length, @appender.level)
157
+ assert_equal(0, @appender.queued_messages)
158
+ assert(@appender.closed?)
159
+ end
160
+
161
+ end # class TestEmail
162
+ end # module TestLogging
163
+ end # module TestAppenders
164
+
165
+ # EOF
@@ -1,4 +1,4 @@
1
- # $Id: test_file.rb 27 2007-02-01 16:58:11Z tim_pease $
1
+ # $Id: test_file.rb 72 2007-12-26 21:59:58Z tim_pease $
2
2
 
3
3
  require 'test/setup.rb'
4
4
  require 'fileutils'
@@ -9,42 +9,41 @@ module TestAppenders
9
9
  class TestFile < Test::Unit::TestCase
10
10
  include LoggingTestCase
11
11
 
12
- TMP = 'tmp'
13
12
  NAME = 'logfile'
14
13
 
15
14
  def setup
16
15
  super
17
- FileUtils.rm_rf TMP if File.exist?(TMP)
18
- FileUtils.mkdir(TMP)
16
+ ::Logging.define_levels %w(debug info warn error fatal)
17
+
19
18
  FileUtils.mkdir [File.join(TMP, 'dir'), File.join(TMP, 'uw_dir')]
20
19
  FileUtils.chmod 0555, File.join(TMP, 'uw_dir')
21
20
  FileUtils.touch File.join(TMP, 'uw_file')
22
21
  FileUtils.chmod 0444, File.join(TMP, 'uw_file')
23
22
  end
24
23
 
25
- def teardown
26
- cleanup
27
- FileUtils.rm_rf TMP
28
- end
29
-
30
- def test_initialize
24
+ def test_class_assert_valid_logfile
31
25
  log = File.join(TMP, 'uw_dir', 'file.log')
32
26
  assert_raise(ArgumentError) do
33
- ::Logging::Appenders::File.new(NAME, :filename => log)
27
+ ::Logging::Appenders::File.assert_valid_logfile(log)
34
28
  end
35
29
 
36
30
  log = File.join(TMP, 'dir')
37
31
  assert_raise(ArgumentError) do
38
- ::Logging::Appenders::File.new(NAME, :filename => log)
32
+ ::Logging::Appenders::File.assert_valid_logfile(log)
39
33
  end
40
34
 
41
35
  log = File.join(TMP, 'uw_file')
42
36
  assert_raise(ArgumentError) do
43
- ::Logging::Appenders::File.new(NAME, :filename => log)
37
+ ::Logging::Appenders::File.assert_valid_logfile(log)
44
38
  end
45
39
 
46
40
  log = File.join(TMP, 'file.log')
47
- appender = ::Logging::Appenders::File.new NAME, 'filename' => log
41
+ assert ::Logging::Appenders::File.assert_valid_logfile(log)
42
+ end
43
+
44
+ def test_initialize
45
+ log = File.join(TMP, 'file.log')
46
+ appender = ::Logging::Appenders::File.new(NAME, 'filename' => log)
48
47
  assert_equal 'logfile', appender.name
49
48
  appender << "This will be the first line\n"
50
49
  appender << "This will be the second line\n"
@@ -0,0 +1,115 @@
1
+ # $Id: test_growl.rb 69 2007-12-26 20:53:33Z tim_pease $
2
+
3
+ require 'test/setup.rb'
4
+ require 'flexmock'
5
+
6
+ module TestLogging
7
+ module TestAppenders
8
+
9
+ class TestGrowl < Test::Unit::TestCase
10
+ include FlexMock::TestCase
11
+ include LoggingTestCase
12
+
13
+ def setup
14
+ super
15
+ ::Logging.define_levels %w(debug info warn error fatal)
16
+ @levels = ::Logging::LEVELS
17
+
18
+ @appender = ::Logging::Appenders::Growl.new('growl',
19
+ :coalesce => true, :separator => "\000",
20
+ :layout => Logging::Layouts::Pattern.new(:pattern => "%5l - Test\000%m")
21
+ )
22
+ @appender.level = :all
23
+ @growl = @appender.instance_variable_get(:@growl).dup
24
+ end
25
+
26
+ def test_initialize
27
+ assert_equal('growlnotify -w -n "growl" -t "%s" -m "%s" -p %d &',
28
+ @appender.instance_variable_get(:@growl))
29
+ assert_equal(true, @appender.instance_variable_get(:@coalesce))
30
+ assert_equal("\000", @appender.instance_variable_get(:@title_sep))
31
+ end
32
+
33
+ def test_append
34
+ info = ::Logging::LogEvent.new('TestLogger', @levels['info'],
35
+ 'info message', false)
36
+ warn = ::Logging::LogEvent.new('TestLogger', @levels['warn'],
37
+ 'warning message', false)
38
+
39
+ flexmock(@appender).should_receive(:system).once.with(
40
+ @growl % ['WARN - Test', "warning message\nwarning message\nwarning message", 0])
41
+
42
+ flexmock(@appender).should_receive(:system).once.with(
43
+ @growl % ['INFO - Test', "info message\ninfo message", -1])
44
+
45
+ flexmock(@appender).should_receive(:system).once.with(
46
+ @growl % ['WARN - Test', "warning message", 0])
47
+
48
+ @appender.append warn
49
+ @appender.append warn
50
+ @appender.append warn
51
+ @appender.append info
52
+ @appender.append info
53
+ @appender.append warn
54
+ sleep 0.7 # give the coalescing thread time to run
55
+ end
56
+
57
+ def test_append_without_coalescing
58
+ @appender.instance_variable_set(:@coalesce, false)
59
+ event = ::Logging::LogEvent.new('TestLogger', @levels['warn'],
60
+ 'warning message', false)
61
+
62
+ flexmock(@appender).should_receive(:system).twice.with(
63
+ @growl % ['WARN - Test', 'warning message', 0])
64
+
65
+ @appender.append event
66
+ @appender.append event
67
+ end
68
+
69
+ def test_concat
70
+ flexmock(@appender).should_receive(:system).once.with(
71
+ @growl % ['', "first message\nsecond message\nthird message", 0])
72
+
73
+ @appender << 'first message'
74
+ @appender << 'second message'
75
+ @appender << 'third message'
76
+ sleep 0.7 # give the coalescing thread time to run
77
+ end
78
+
79
+ def test_concat_without_coalescing
80
+ @appender.instance_variable_set(:@coalesce, false)
81
+
82
+ flexmock(@appender).should_receive(:system).twice.with(
83
+ @growl % ['', 'concat message', 0])
84
+
85
+ @appender << 'concat message'
86
+ @appender << 'concat message'
87
+ end
88
+
89
+ def test_map_eq
90
+ get_map = lambda {@appender.instance_variable_get(:@map)}
91
+ assert_equal([-2,-1,0,1,2], get_map.call)
92
+
93
+ @appender.map = {
94
+ 'fatal' => '0',
95
+ :error => -2,
96
+ :warn => '2',
97
+ 'INFO' => 1,
98
+ 'Debug' => -1
99
+ }
100
+ assert_equal([-1,1,2,-2,0], get_map.call)
101
+
102
+ assert_raise(ArgumentError) do
103
+ @appender.map = {:fatal => 'not a number', :error => 2}
104
+ end
105
+
106
+ assert_raise(ArgumentError) do
107
+ @appender.map = {:fatal => -3, :error => 3}
108
+ end
109
+ end
110
+
111
+ end # class TestGrowl
112
+ end # module TestLogging
113
+ end # module TestAppenders
114
+
115
+ # EOF
@@ -1,4 +1,4 @@
1
- # $Id: test_io.rb 53 2007-11-28 00:21:33Z tim_pease $
1
+ # $Id: test_io.rb 67 2007-12-26 16:27:06Z tim_pease $
2
2
 
3
3
  require 'test/setup.rb'
4
4
  require 'stringio'
@@ -41,7 +41,8 @@ module TestAppenders
41
41
  event = ::Logging::LogEvent.new('TestLogger', @levels['warn'],
42
42
  [1, 2, 3, 4], false)
43
43
  assert_raise(IOError) {@appender.append event}
44
- assert_equal true, @appender.closed?
44
+ assert_equal false, @appender.closed?
45
+ assert_equal 5, @appender.level
45
46
  end
46
47
 
47
48
  def test_close
@@ -78,7 +79,8 @@ module TestAppenders
78
79
  def test_concat_error
79
80
  @sio.close
80
81
  assert_raise(IOError) {@appender << 'oopsy'}
81
- assert_equal true, @appender.closed?
82
+ assert_equal false, @appender.closed?
83
+ assert_equal 5, @appender.level
82
84
  end
83
85
 
84
86
  def test_flush
@@ -1,4 +1,4 @@
1
- # $Id: test_rolling_file.rb 31 2007-02-22 23:16:17Z tim_pease $
1
+ # $Id: test_rolling_file.rb 72 2007-12-26 21:59:58Z tim_pease $
2
2
 
3
3
  require 'test/setup.rb'
4
4
  require 'fileutils'
@@ -9,23 +9,17 @@ module TestAppenders
9
9
  class TestRollingFile < Test::Unit::TestCase
10
10
  include LoggingTestCase
11
11
 
12
- TMP = 'tmp'
13
12
  NAME = 'roller'
14
13
 
15
14
  def setup
16
15
  super
17
- FileUtils.rm_rf TMP if File.exist?(TMP)
18
- FileUtils.mkdir(TMP)
16
+ ::Logging.define_levels %w(debug info warn error fatal)
17
+
19
18
  @fn = File.join(TMP, 'test.log')
20
19
  @fn_fmt = File.join(TMP, 'test.%d.log')
21
20
  @glob = File.join(TMP, '*.log')
22
21
  end
23
22
 
24
- def teardown
25
- cleanup
26
- FileUtils.rm_rf TMP
27
- end
28
-
29
23
  def test_initialize
30
24
  assert_equal [], Dir.glob(@glob)
31
25