logging 0.5.3 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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