ruport 0.6.0 → 0.6.1

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.
data/test/test_record.rb CHANGED
@@ -72,6 +72,12 @@ class TestRecord < Test::Unit::TestCase
72
72
  assert_equal @record.d, @record["d"]
73
73
  end
74
74
 
75
+ def test_nonexistent_accessor
76
+ assert_raise NoMethodError do
77
+ @record.e
78
+ end
79
+ end
80
+
75
81
  def test_attribute_setting
76
82
  @record.a = 10
77
83
  @record.b = 20
data/test/test_table.rb CHANGED
@@ -139,6 +139,24 @@ class TestTable < Test::Unit::TestCase
139
139
  assert_equal [%w[a b],%w[1 2],%w[3 4]].to_table, t
140
140
  end
141
141
 
142
+ def test_ensure_using_csv_block_mode_works
143
+ expected = [%w[a b],%w[1 2],%w[3 4]]
144
+ t = Ruport::Data::Table.parse("a,b\n1,2\n3,4",:has_names => false) { |s,r|
145
+ assert_equal expected.shift, r
146
+ s << r
147
+ s << r
148
+ }
149
+ assert_equal [%w[a b],%w[a b],%w[1 2], %w[1 2],
150
+ %w[3 4],%w[3 4]].to_table, t
151
+ x = Ruport::Data::Table.load("test/samples/data.csv") { |s,r|
152
+ assert_kind_of Ruport::Data::Table, s
153
+ assert_kind_of Array, r
154
+ s << r
155
+ s << r
156
+ }
157
+ assert_equal 4, x.length
158
+ end
159
+
142
160
 
143
161
  def test_reorder
144
162
  table = Ruport::Data::Table.load("test/samples/data.csv")
@@ -0,0 +1,336 @@
1
+ require "test/unit"
2
+ require "ruport"
3
+ begin; require "rubygems"; rescue LoadError; nil; end
4
+
5
+ class TestTable < Test::Unit::TestCase
6
+ def test_constructors
7
+ table = Ruport::Data::Table.new
8
+ table2 = Ruport::Data::Table.new :column_names => %w[a b c]
9
+ table3 = Ruport::Data::Table.new :data => [[1,2,3]]
10
+ table4 = Ruport::Data::Table.new :column_names => %w[col1 col2 col3],
11
+ :data => [[1,2,3]]
12
+ tables = [table,table2,table3,table4]
13
+ tables.zip([[],%w[a b c], [], %w[col1 col2 col3]]).each do |t,n|
14
+ assert_equal n, t.column_names
15
+
16
+ t = [[1,2,3],[4,5,6]].to_table(%w[a b c])
17
+ t[0].tag :foo
18
+ t[1].tag :bar
19
+ table_from_records = t.data.to_table(t.column_names)
20
+ assert_equal [:foo], table_from_records[0].tags
21
+ assert_equal [:bar], table_from_records[1].tags
22
+ end
23
+
24
+ a = Ruport::Data::Record.new [1,2,3]
25
+ assert a.respond_to?(:[])
26
+ b = a.dup
27
+ b.attributes = %w[col1 col2 col3]
28
+ tables.zip([[],[],[a],[b]]).each { |t,n| assert_equal n, t.data }
29
+ end
30
+
31
+ def test_ensure_table_creation_allows_record_coercion
32
+ table = [[1,2,3],[4,5,6],[7,8,9]].to_table
33
+ table_with_names = [[1,2,3],[4,5,6],[7,8,9]].to_table(%w[a b c])
34
+
35
+ a,b,c = nil
36
+ assert_nothing_raised { a = table.to_a.to_table(%w[a b c]) }
37
+ assert_nothing_raised { b = table.to_a.to_table(%w[d e f]) }
38
+ assert_nothing_raised { c = table_with_names.to_a.to_table }
39
+
40
+ [a,b,c].each { |t| assert_equal(3,t.length) }
41
+ assert_equal %w[a b c], a.column_names
42
+ a.each { |r|
43
+ assert_equal %w[a b c], r.attributes
44
+ assert_nothing_raised { r.a; r.b; r.c }
45
+ [r.a,r.b,r.c].each { |i| assert(i.kind_of?(Numeric)) }
46
+ }
47
+ assert_equal %w[d e f], b.column_names
48
+ b.each { |r|
49
+ assert_equal %w[d e f], r.attributes
50
+ assert_nothing_raised { r.d; r.e; r.f }
51
+ [r.d,r.e,r.f].each { |i| assert(i.kind_of?(Numeric)) }
52
+ }
53
+ c.each { |r|
54
+ assert_nothing_raised { r[0]; r[1]; r[2] }
55
+ [r[0],r[1],r[2]].each { |i| assert(i.kind_of?(Numeric)) }
56
+ }
57
+ end
58
+
59
+ def test_sigma
60
+ table = [[1,2],[3,4],[5,6]].to_table(%w[col1 col2])
61
+ assert table.respond_to?(:sigma)
62
+ assert table.respond_to?(:sum)
63
+ assert_equal(9,table.sigma(0))
64
+ assert_equal(9,table.sigma("col1"))
65
+ assert_equal(21,table.sigma { |r| r.col1 + r.col2 })
66
+ end
67
+
68
+ def test_append_record
69
+ table = Ruport::Data::Table.new :column_names => %w[a b c]
70
+ table << Ruport::Data::Record.new([1,2,3], :attributes => %w[a b c])
71
+ assert_equal([1,2,3],table[0].data)
72
+ assert_equal(%w[a b c],table[0].attributes)
73
+ rec = table[0].dup
74
+ rec.attributes = %w[a b c d]
75
+ assert_raise(ArgumentError) { table << rec }
76
+ assert_raise(ArgumentError) { table << Object.new }
77
+ assert_raise(ArgumentError) { table << [].to_table }
78
+ end
79
+
80
+ def test_append_table
81
+ first = Ruport::Data::Table.new :column_names => %w[a b c],
82
+ :data => [[1,2,3],[4,5,6]]
83
+
84
+ second = Ruport::Data::Table.new :column_names => %w[a b c],
85
+ :data => [[7,8,9],[10,11,12]]
86
+
87
+ combo = first + second
88
+
89
+ assert_equal Ruport::Data::Table.new(:column_names => %w[a b c],
90
+ :data => [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]), combo
91
+ end
92
+
93
+ def test_csv_load
94
+ table = Ruport::Data::Table.load("test/samples/data.csv")
95
+ assert_equal %w[col1 col2 col3], table.column_names
96
+ rows = [%w[a b c],["d",nil,"e"]]
97
+ table.each { |r| assert_equal rows.shift, r.data
98
+ assert_equal %w[col1 col2 col3], r.attributes }
99
+ expected = [%w[1 2 3],%w[4 5 6]].to_table(%w[a b c])
100
+
101
+ # ticket:94
102
+ table = Ruport::Data::Table.load( "test/samples/data.tsv",
103
+ :csv_options => { :col_sep => "\t" } )
104
+ assert_equal expected, table
105
+
106
+ table = Ruport::Data::Table.load("test/samples/data.csv", :has_names => false)
107
+ assert_equal([],table.column_names)
108
+ assert_equal([%w[col1 col2 col3],%w[a b c],["d",nil,"e"]].to_table, table)
109
+
110
+ end
111
+
112
+ # ticket:76
113
+ def test_parse
114
+
115
+ assert_nothing_raised {
116
+ Ruport::Data::Table.parse("a,b,c\n1,2,3\n")
117
+ }
118
+
119
+ table = Ruport::Data::Table.parse("a,b,c\n1,2,3\n4,5,6\n")
120
+ expected = [%w[1 2 3],%w[4 5 6]].to_table(%w[a b c])
121
+
122
+ table = Ruport::Data::Table.parse( "a\tb\tc\n1\t2\t3\n4\t5\t6\n",
123
+ :csv_options => { :col_sep => "\t" } )
124
+ assert_equal expected, table
125
+
126
+ table = Ruport::Data::Table.parse("a,b,c\n1,2,3\n4,5,6\n", :has_names => false)
127
+ assert_equal([],table.column_names)
128
+ assert_equal([%w[a b c],%w[1 2 3], %w[4 5 6]].to_table, table)
129
+
130
+ end
131
+
132
+ def test_csv_block_form
133
+ expected = [%w[a b],%w[1 2],%w[3 4]]
134
+ t = Ruport::Data::Table.send(:get_table_from_csv,
135
+ :parse, "a,b\n1,2\n3,4", :has_names => false) do |s,r|
136
+ assert_equal expected.shift, r
137
+ s << r
138
+ end
139
+ assert_equal [%w[a b],%w[1 2],%w[3 4]].to_table, t
140
+ end
141
+
142
+ def test_ensure_using_csv_block_mode_works
143
+ expected = [%w[a b],%w[1 2],%w[3 4]]
144
+ t = Ruport::Data::Table.parse("a,b\n1,2\n3,4",:has_names => false) { |s,r|
145
+ assert_equal expected.shift, r
146
+ s << r
147
+ }
148
+ assert_equal [%w[a b],%w[1 2],%w[3 4]].to_table, t
149
+ x = Ruport::Data::Table.load("test/samples/data.csv") { |s,r|
150
+ assert_kind_of Ruport::Data::Table, s
151
+ assert_kind_of Array, r
152
+ }
153
+ end
154
+
155
+
156
+ def test_reorder
157
+ table = Ruport::Data::Table.load("test/samples/data.csv")
158
+ table.reorder! *%w[col1 col3]
159
+ assert_equal %w[col1 col3], table.column_names
160
+ rows = [%w[a c], %w[d e]]
161
+ table.each { |r| assert_equal rows.shift, r.data
162
+ assert_equal %w[col1 col3], r.attributes }
163
+ a = [[1,2,3],[4,5,6]].to_table(%w[a b c]).reorder 2,0
164
+ rows = [[3,1],[6,4]]
165
+ a.each { |r| assert_equal rows.shift, r.data
166
+ assert_equal %w[c a], r.attributes }
167
+ assert_equal %w[c a], a.column_names
168
+
169
+ b = [[1,2,3],[4,5,6]].to_table(%w[a b c]).reorder(%w[a c])
170
+ rows = [[1,3],[4,6]]
171
+ b.each { |r|
172
+ assert_equal rows.shift, r.data
173
+ assert_equal %w[a c], r.attributes
174
+ assert_equal b.column_names.object_id,
175
+ r.instance_eval{@attributes}.object_id
176
+ }
177
+ end
178
+
179
+ def test_append_column
180
+ a = [[1,2],[3,4],[5,6]].to_table(%w[a b])
181
+ a.append_column(:name => "c")
182
+ assert_equal [[1,2,nil],[3,4,nil],[5,6,nil]].to_table(%w[a b c]), a
183
+ a = [[1,2],[3,4],[5,6]].to_table
184
+ a.append_column
185
+ assert_equal [[1,2,nil],[3,4,nil],[5,6,nil]].to_table, a
186
+ a = [[1,2],[3,4],[5,6]].to_table(%w[a b])
187
+ a.append_column(:name => "c",:fill => "x")
188
+ assert_equal [[1,2,'x'],[3,4,'x'],[5,6,'x']].to_table(%w[a b c]), a
189
+ a.append_column(:name => "d") { |r| r.to_a.join("|") }
190
+ assert_equal(
191
+ [ [1,2,'x','1|2|x'],
192
+ [3,4,'x',"3|4|x"],
193
+ [5,6,'x','5|6|x']].to_table(%w[a b c d]), a)
194
+
195
+ end
196
+
197
+ def test_remove_column
198
+ a = [[1,2],[3,4],[5,6]].to_table(%w[a b])
199
+ b = a.dup
200
+
201
+ b.remove_column("b")
202
+ assert_equal [[1],[3],[5]].to_table(%w[a]), b
203
+ a.append_column(:name => "c")
204
+ assert_not_equal [[1,2],[3,4],[5,6]].to_table(%w[a b]), a
205
+ a.remove_column(:name => "c")
206
+ assert_equal [[1,2],[3,4],[5,6]].to_table(%w[a b]), a
207
+ assert_raises(ArgumentError){a.remove_column(:name => "frank")}
208
+ a.remove_column(0)
209
+ assert_equal [[2],[4],[6]].to_table(%w[b]), a
210
+ assert_equal %w[b], a.column_names
211
+ a = [[1,2],[3,4],[5,6]].to_table
212
+ a.remove_column(0)
213
+ assert_equal [[2],[4],[6]].to_table, a
214
+ end
215
+
216
+ def test_split
217
+ table = Ruport::Data::Table.new :column_names => %w[c1 c2 c3]
218
+ table << ['a',2,3]
219
+ table << ['d',5,6]
220
+ table << ['a',4,5]
221
+ table << ['b',3,4]
222
+ table << ['d',9,10]
223
+
224
+ group = table.split :group => "c1"
225
+ assert group.respond_to?(:each_group)
226
+ expected = %w[a d b]
227
+
228
+ group.each_group { |g| assert_equal(expected.shift, g) }
229
+
230
+ t = table.reorder("c2","c3")
231
+
232
+ data = [[t[0],t[2]],[t[1],t[4]],[t[3]]]
233
+ c1 = Ruport::Data::Record.new data, :attributes => %w[a d b]
234
+ assert_equal c1.a, group.a.to_a
235
+ assert_equal c1.d, group.d.to_a
236
+ assert_equal c1.b, group.b.to_a
237
+
238
+ table << ['a',2,7]
239
+ table << ['d',9,11]
240
+
241
+ group = table.split :group => %w[c1 c2]
242
+ assert group.respond_to?(:each_group)
243
+ expected = %w[a_2 d_5 a_4 b_3 d_9]
244
+
245
+ group.each_group { |g| assert_equal(expected.shift, g) }
246
+
247
+ t = table.reorder("c3")
248
+ data = [[t[0],t[5]],[t[1]],[t[2]],[t[3]],[t[4],t[6]]]
249
+
250
+ c1 = Ruport::Data::Record.new data, :attributes => %w[a_2 d_5 a_4 b_3 d_9]
251
+
252
+ assert_equal c1.a_2, group.a_2.to_a
253
+ assert_equal c1.d_5, group.d_5.to_a
254
+ assert_equal c1.a_4, group.a_4.to_a
255
+ assert_equal c1.b_3, group.b_3.to_a
256
+ assert_equal c1.d_9, group.d_9.to_a
257
+
258
+ end
259
+
260
+ def test_append_chain
261
+ table = Ruport::Data::Table.new :column_names => %w[a b c]
262
+ table << [1,2,3] << [4,5,6] << [7,8,9]
263
+ assert_equal 3, table.length
264
+ assert_equal 5, table[1].b
265
+ end
266
+
267
+ def test_to_hack
268
+ table = Ruport::Data::Table.new :column_names => %w[a b],
269
+ :data => [[1,2],[3,4],[5,6]]
270
+ assert_equal("a,b\n1,2\n3,4\n5,6\n",table.to_csv)
271
+ end
272
+
273
+ def test_to_set
274
+ table = Ruport::Data::Table.new :column_names => %w[a b],
275
+ :data => [[1,2],[3,4],[5,6]]
276
+ a = table.to_set
277
+ b = Ruport::Data::Set.new :data => [table[1],table[0],table[2]]
278
+
279
+ assert_equal a,b
280
+ end
281
+
282
+ def test_array_hack
283
+ t = [[1,2],[3,4],[5,6]].to_table
284
+ assert_instance_of Ruport::Data::Table, t
285
+ assert_equal [], t.column_names
286
+ assert_equal Ruport::Data::Record.new([3,4]), t[1]
287
+ t = [[1,2],[3,4],[5,6]].to_table :column_names => %w[a b]
288
+ table = Ruport::Data::Table.new :column_names => %w[a b],
289
+ :data => [[1,2],[3,4],[5,6]]
290
+
291
+ assert_equal t, table
292
+
293
+ # test short form
294
+ table2 = [[1,2],[3,4],[5,6]].to_table %w[a b]
295
+
296
+ assert_equal table, table2
297
+
298
+ end
299
+
300
+ def test_ensure_coerce_sum
301
+
302
+ s = [["1"],["3"],["5"] ].to_table
303
+ t = [["1.23"],["1.5"]].to_table
304
+
305
+ assert_equal(9,s.sum(0))
306
+ assert_equal(2.73,t.sum(0))
307
+
308
+ end
309
+
310
+ def test_table_shortcut
311
+ self.class.send(:include,Ruport::Data::TableHelper)
312
+
313
+ a = table(%w[a b c]) do |t|
314
+ [[1,2,3],[4,5,6]].each { |r| t << r }
315
+ end
316
+
317
+ assert_equal([[1,2,3],[4,5,6]].to_table(%w[a b c]),a)
318
+
319
+ end
320
+
321
+ def test_setting_column_names_changes_record_attributes
322
+ table = Ruport::Data::Table.new :column_names => %w[a b c],
323
+ :data => [[1,2,3],[4,5,6]]
324
+
325
+ assert_equal %w[a b c], table.column_names
326
+ assert_equal %w[a b c], table.data[0].attributes
327
+ assert_equal %w[a b c], table.data[1].attributes
328
+
329
+ table.column_names = %w[d e f]
330
+
331
+ assert_equal %w[d e f], table.column_names
332
+ assert_equal %w[d e f], table.data[0].attributes
333
+ assert_equal %w[d e f], table.data[1].attributes
334
+ end
335
+
336
+ end
data/test/unit.log CHANGED
@@ -53,9 +53,183 @@ F, [2006-10-23T15:59:50.619700 #2649] FATAL -- : no block given!
53
53
  W, [2006-10-23T15:59:50.708205 #2649] WARN -- : Error on attempt # 1: ; retrying
54
54
  W, [2006-10-23T15:59:51.707123 #2649] WARN -- : Error on attempt # 2: ; retrying
55
55
  W, [2006-10-23T15:59:53.711857 #2649] WARN -- : Error on attempt # 1: execution expired; retrying
56
- F, [2006-10-23T23:25:14.080864 #2942] FATAL -- : Missing host for mailer bar
57
- F, [2006-10-23T23:25:14.082410 #2942] FATAL -- : Missing DSN for source foo!
58
- F, [2006-10-23T23:25:18.068856 #2942] FATAL -- : no block given!
59
- W, [2006-10-23T23:25:18.162893 #2942] WARN -- : Error on attempt # 1: ; retrying
60
- W, [2006-10-23T23:25:19.162676 #2942] WARN -- : Error on attempt # 2: ; retrying
61
- W, [2006-10-23T23:25:21.167571 #2942] WARN -- : Error on attempt # 1: execution expired; retrying
56
+ F, [2006-11-11T21:55:37.684687 #3060] FATAL -- : Missing host for mailer bar
57
+ F, [2006-11-11T21:55:37.686353 #3060] FATAL -- : Missing DSN for source foo!
58
+ F, [2006-11-11T21:55:40.496372 #3060] FATAL -- : no block given!
59
+ W, [2006-11-11T21:55:40.581269 #3060] WARN -- : Error on attempt # 1: ; retrying
60
+ W, [2006-11-11T21:55:41.578511 #3060] WARN -- : Error on attempt # 2: ; retrying
61
+ W, [2006-11-11T21:55:43.583299 #3060] WARN -- : Error on attempt # 1: execution expired; retrying
62
+ F, [2006-11-11T21:57:58.805526 #3081] FATAL -- : Missing host for mailer bar
63
+ F, [2006-11-11T21:57:58.806863 #3081] FATAL -- : Missing DSN for source foo!
64
+ F, [2006-11-11T21:58:01.597618 #3081] FATAL -- : no block given!
65
+ W, [2006-11-11T21:58:01.680736 #3081] WARN -- : Error on attempt # 1: ; retrying
66
+ W, [2006-11-11T21:58:02.679328 #3081] WARN -- : Error on attempt # 2: ; retrying
67
+ W, [2006-11-11T21:58:04.684120 #3081] WARN -- : Error on attempt # 1: execution expired; retrying
68
+ F, [2006-11-11T21:59:15.099405 #3098] FATAL -- : Missing host for mailer bar
69
+ F, [2006-11-11T21:59:15.100734 #3098] FATAL -- : Missing DSN for source foo!
70
+ F, [2006-11-11T21:59:17.939291 #3098] FATAL -- : no block given!
71
+ W, [2006-11-11T21:59:18.022493 #3098] WARN -- : Error on attempt # 1: ; retrying
72
+ W, [2006-11-11T21:59:19.020086 #3098] WARN -- : Error on attempt # 2: ; retrying
73
+ W, [2006-11-11T21:59:21.024849 #3098] WARN -- : Error on attempt # 1: execution expired; retrying
74
+ F, [2006-11-11T22:00:51.456289 #3135] FATAL -- : Missing host for mailer bar
75
+ F, [2006-11-11T22:00:51.457593 #3135] FATAL -- : Missing DSN for source foo!
76
+ F, [2006-11-11T22:00:54.232791 #3135] FATAL -- : no block given!
77
+ W, [2006-11-11T22:00:54.316715 #3135] WARN -- : Error on attempt # 1: ; retrying
78
+ W, [2006-11-11T22:00:55.314085 #3135] WARN -- : Error on attempt # 2: ; retrying
79
+ W, [2006-11-11T22:00:57.318850 #3135] WARN -- : Error on attempt # 1: execution expired; retrying
80
+ F, [2006-11-11T22:03:59.814424 #3162] FATAL -- : Missing host for mailer bar
81
+ F, [2006-11-11T22:03:59.815744 #3162] FATAL -- : Missing DSN for source foo!
82
+ F, [2006-11-11T22:04:02.664227 #3162] FATAL -- : no block given!
83
+ W, [2006-11-11T22:04:02.749434 #3162] WARN -- : Error on attempt # 1: ; retrying
84
+ W, [2006-11-11T22:04:03.749864 #3162] WARN -- : Error on attempt # 2: ; retrying
85
+ W, [2006-11-11T22:04:05.754666 #3162] WARN -- : Error on attempt # 1: execution expired; retrying
86
+ F, [2006-11-11T22:13:58.933694 #3184] FATAL -- : Missing host for mailer bar
87
+ F, [2006-11-11T22:13:58.935046 #3184] FATAL -- : Missing DSN for source foo!
88
+ F, [2006-11-11T22:14:01.721339 #3184] FATAL -- : no block given!
89
+ W, [2006-11-11T22:14:01.805980 #3184] WARN -- : Error on attempt # 1: ; retrying
90
+ W, [2006-11-11T22:14:02.803320 #3184] WARN -- : Error on attempt # 2: ; retrying
91
+ W, [2006-11-11T22:14:04.808112 #3184] WARN -- : Error on attempt # 1: execution expired; retrying
92
+ F, [2006-11-19T15:49:25.791410 #2743] FATAL -- : Missing host for mailer bar
93
+ F, [2006-11-19T15:49:25.818020 #2743] FATAL -- : Missing DSN for source foo!
94
+ F, [2006-11-19T15:49:28.633291 #2743] FATAL -- : no block given!
95
+ W, [2006-11-19T15:49:28.665078 #2743] WARN -- : Error on attempt # 1: ; retrying
96
+ W, [2006-11-19T15:49:29.662197 #2743] WARN -- : Error on attempt # 2: ; retrying
97
+ W, [2006-11-19T15:49:31.666965 #2743] WARN -- : Error on attempt # 1: execution expired; retrying
98
+ F, [2006-11-20T01:32:57.343827 #3144] FATAL -- : Missing host for mailer bar
99
+ F, [2006-11-20T01:32:57.369353 #3144] FATAL -- : Missing DSN for source foo!
100
+ F, [2006-11-20T01:33:00.225688 #3144] FATAL -- : no block given!
101
+ W, [2006-11-20T01:33:00.313292 #3144] WARN -- : Error on attempt # 1: ; retrying
102
+ W, [2006-11-20T01:33:01.312396 #3144] WARN -- : Error on attempt # 2: ; retrying
103
+ W, [2006-11-20T01:33:03.317163 #3144] WARN -- : Error on attempt # 1: execution expired; retrying
104
+ F, [2006-11-20T01:33:20.300297 #3158] FATAL -- : Missing host for mailer bar
105
+ F, [2006-11-20T01:33:20.301637 #3158] FATAL -- : Missing DSN for source foo!
106
+ F, [2006-11-20T01:33:23.140772 #3158] FATAL -- : no block given!
107
+ W, [2006-11-20T01:33:23.223774 #3158] WARN -- : Error on attempt # 1: ; retrying
108
+ W, [2006-11-20T01:33:24.221831 #3158] WARN -- : Error on attempt # 2: ; retrying
109
+ W, [2006-11-20T01:33:26.226623 #3158] WARN -- : Error on attempt # 1: execution expired; retrying
110
+ F, [2006-11-20T01:34:23.189833 #3177] FATAL -- : Missing host for mailer bar
111
+ F, [2006-11-20T01:34:23.191163 #3177] FATAL -- : Missing DSN for source foo!
112
+ F, [2006-11-20T01:34:26.037259 #3177] FATAL -- : no block given!
113
+ W, [2006-11-20T01:34:26.120651 #3177] WARN -- : Error on attempt # 1: ; retrying
114
+ W, [2006-11-20T01:34:27.117757 #3177] WARN -- : Error on attempt # 2: ; retrying
115
+ W, [2006-11-20T01:34:29.122493 #3177] WARN -- : Error on attempt # 1: execution expired; retrying
116
+ F, [2006-11-20T01:35:41.380929 #3202] FATAL -- : Missing host for mailer bar
117
+ F, [2006-11-20T01:35:41.382278 #3202] FATAL -- : Missing DSN for source foo!
118
+ F, [2006-11-20T01:35:44.227194 #3202] FATAL -- : no block given!
119
+ W, [2006-11-20T01:35:44.310623 #3202] WARN -- : Error on attempt # 1: ; retrying
120
+ W, [2006-11-20T01:35:45.310644 #3202] WARN -- : Error on attempt # 2: ; retrying
121
+ W, [2006-11-20T01:35:47.315391 #3202] WARN -- : Error on attempt # 1: execution expired; retrying
122
+ F, [2006-11-20T01:36:47.177386 #3217] FATAL -- : Missing host for mailer bar
123
+ F, [2006-11-20T01:36:47.178721 #3217] FATAL -- : Missing DSN for source foo!
124
+ F, [2006-11-20T01:36:50.015601 #3217] FATAL -- : no block given!
125
+ W, [2006-11-20T01:36:50.099593 #3217] WARN -- : Error on attempt # 1: ; retrying
126
+ W, [2006-11-20T01:36:51.098757 #3217] WARN -- : Error on attempt # 2: ; retrying
127
+ W, [2006-11-20T01:36:53.103532 #3217] WARN -- : Error on attempt # 1: execution expired; retrying
128
+ F, [2006-11-20T01:38:02.556328 #3231] FATAL -- : Missing host for mailer bar
129
+ F, [2006-11-20T01:38:02.557647 #3231] FATAL -- : Missing DSN for source foo!
130
+ F, [2006-11-20T01:38:05.400303 #3231] FATAL -- : no block given!
131
+ W, [2006-11-20T01:38:05.481028 #3231] WARN -- : Error on attempt # 1: ; retrying
132
+ W, [2006-11-20T01:38:06.479467 #3231] WARN -- : Error on attempt # 2: ; retrying
133
+ W, [2006-11-20T01:38:08.484208 #3231] WARN -- : Error on attempt # 1: execution expired; retrying
134
+ F, [2006-11-20T01:38:23.023827 #3245] FATAL -- : Missing host for mailer bar
135
+ F, [2006-11-20T01:38:23.025199 #3245] FATAL -- : Missing DSN for source foo!
136
+ F, [2006-11-20T01:38:25.901488 #3245] FATAL -- : no block given!
137
+ W, [2006-11-20T01:38:25.982712 #3245] WARN -- : Error on attempt # 1: ; retrying
138
+ W, [2006-11-20T01:38:26.980729 #3245] WARN -- : Error on attempt # 2: ; retrying
139
+ W, [2006-11-20T01:38:28.985494 #3245] WARN -- : Error on attempt # 1: execution expired; retrying
140
+ F, [2006-11-20T01:38:39.849959 #3259] FATAL -- : Missing host for mailer bar
141
+ F, [2006-11-20T01:38:39.851267 #3259] FATAL -- : Missing DSN for source foo!
142
+ F, [2006-11-20T01:38:42.696665 #3259] FATAL -- : no block given!
143
+ W, [2006-11-20T01:38:42.779173 #3259] WARN -- : Error on attempt # 1: ; retrying
144
+ W, [2006-11-20T01:38:43.777807 #3259] WARN -- : Error on attempt # 2: ; retrying
145
+ W, [2006-11-20T01:38:45.782580 #3259] WARN -- : Error on attempt # 1: execution expired; retrying
146
+ F, [2006-11-20T01:40:31.235469 #3285] FATAL -- : Missing host for mailer bar
147
+ F, [2006-11-20T01:40:31.236816 #3285] FATAL -- : Missing DSN for source foo!
148
+ F, [2006-11-20T01:40:34.082419 #3285] FATAL -- : no block given!
149
+ W, [2006-11-20T01:40:34.165649 #3285] WARN -- : Error on attempt # 1: ; retrying
150
+ W, [2006-11-20T01:40:35.164756 #3285] WARN -- : Error on attempt # 2: ; retrying
151
+ W, [2006-11-20T01:40:37.169544 #3285] WARN -- : Error on attempt # 1: execution expired; retrying
152
+ F, [2006-11-20T01:41:51.138227 #3303] FATAL -- : Missing host for mailer bar
153
+ F, [2006-11-20T01:41:51.139558 #3303] FATAL -- : Missing DSN for source foo!
154
+ F, [2006-11-20T01:41:53.984495 #3303] FATAL -- : no block given!
155
+ W, [2006-11-20T01:41:54.067193 #3303] WARN -- : Error on attempt # 1: ; retrying
156
+ W, [2006-11-20T01:41:55.065752 #3303] WARN -- : Error on attempt # 2: ; retrying
157
+ W, [2006-11-20T01:41:57.070500 #3303] WARN -- : Error on attempt # 1: execution expired; retrying
158
+ F, [2006-11-20T01:47:41.306937 #3383] FATAL -- : Missing host for mailer bar
159
+ F, [2006-11-20T01:47:41.308271 #3383] FATAL -- : Missing DSN for source foo!
160
+ F, [2006-11-20T01:47:44.141604 #3383] FATAL -- : no block given!
161
+ W, [2006-11-20T01:47:44.221626 #3383] WARN -- : Error on attempt # 1: ; retrying
162
+ W, [2006-11-20T01:47:45.219637 #3383] WARN -- : Error on attempt # 2: ; retrying
163
+ W, [2006-11-20T01:47:47.224384 #3383] WARN -- : Error on attempt # 1: execution expired; retrying
164
+ F, [2006-11-20T01:48:20.837315 #3397] FATAL -- : Missing host for mailer bar
165
+ F, [2006-11-20T01:48:20.838665 #3397] FATAL -- : Missing DSN for source foo!
166
+ F, [2006-11-20T01:48:23.675073 #3397] FATAL -- : no block given!
167
+ W, [2006-11-20T01:48:23.755309 #3397] WARN -- : Error on attempt # 1: ; retrying
168
+ W, [2006-11-20T01:48:24.754111 #3397] WARN -- : Error on attempt # 2: ; retrying
169
+ W, [2006-11-20T01:48:26.758910 #3397] WARN -- : Error on attempt # 1: execution expired; retrying
170
+ F, [2006-11-20T01:49:12.282179 #3411] FATAL -- : Missing host for mailer bar
171
+ F, [2006-11-20T01:49:12.283474 #3411] FATAL -- : Missing DSN for source foo!
172
+ F, [2006-11-20T01:49:15.171375 #3411] FATAL -- : no block given!
173
+ W, [2006-11-20T01:49:15.202835 #3411] WARN -- : Error on attempt # 1: ; retrying
174
+ W, [2006-11-20T01:49:16.201315 #3411] WARN -- : Error on attempt # 2: ; retrying
175
+ W, [2006-11-20T01:49:18.206036 #3411] WARN -- : Error on attempt # 1: execution expired; retrying
176
+ F, [2006-11-20T01:54:52.478544 #3494] FATAL -- : Missing host for mailer bar
177
+ F, [2006-11-20T01:54:52.479865 #3494] FATAL -- : Missing DSN for source foo!
178
+ F, [2006-11-20T01:54:55.489767 #3494] FATAL -- : no block given!
179
+ W, [2006-11-20T01:54:55.573737 #3494] WARN -- : Error on attempt # 1: ; retrying
180
+ W, [2006-11-20T01:54:56.570597 #3494] WARN -- : Error on attempt # 2: ; retrying
181
+ W, [2006-11-20T01:54:58.575385 #3494] WARN -- : Error on attempt # 1: execution expired; retrying
182
+ F, [2006-11-20T14:09:55.584959 #2761] FATAL -- : Missing host for mailer bar
183
+ F, [2006-11-20T14:09:55.615213 #2761] FATAL -- : Missing DSN for source foo!
184
+ F, [2006-11-20T14:09:58.570047 #2761] FATAL -- : no block given!
185
+ W, [2006-11-20T14:09:58.648723 #2761] WARN -- : Error on attempt # 1: ; retrying
186
+ W, [2006-11-20T14:09:59.647965 #2761] WARN -- : Error on attempt # 2: ; retrying
187
+ W, [2006-11-20T14:10:01.652627 #2761] WARN -- : Error on attempt # 1: execution expired; retrying
188
+ F, [2006-11-20T14:14:19.036244 #2824] FATAL -- : Missing host for mailer bar
189
+ F, [2006-11-20T14:14:19.037782 #2824] FATAL -- : Missing DSN for source foo!
190
+ F, [2006-11-20T14:14:21.589519 #2824] FATAL -- : no block given!
191
+ W, [2006-11-20T14:14:21.627983 #2824] WARN -- : Error on attempt # 1: ; retrying
192
+ W, [2006-11-20T14:14:22.628311 #2824] WARN -- : Error on attempt # 2: ; retrying
193
+ W, [2006-11-20T14:14:24.633048 #2824] WARN -- : Error on attempt # 1: execution expired; retrying
194
+ F, [2006-11-20T14:19:55.649531 #2966] FATAL -- : Missing host for mailer bar
195
+ F, [2006-11-20T14:19:55.651069 #2966] FATAL -- : Missing DSN for source foo!
196
+ F, [2006-11-20T14:19:58.209891 #2966] FATAL -- : no block given!
197
+ W, [2006-11-20T14:19:58.248709 #2966] WARN -- : Error on attempt # 1: ; retrying
198
+ W, [2006-11-20T14:19:59.245344 #2966] WARN -- : Error on attempt # 2: ; retrying
199
+ W, [2006-11-20T14:20:01.250489 #2966] WARN -- : Error on attempt # 1: execution expired; retrying
200
+ F, [2006-11-21T13:03:58.284813 #3083] FATAL -- : Missing host for mailer bar
201
+ F, [2006-11-21T13:03:58.308538 #3083] FATAL -- : Missing DSN for source foo!
202
+ F, [2006-11-21T13:04:02.213809 #3083] FATAL -- : no block given!
203
+ W, [2006-11-21T13:04:02.517349 #3083] WARN -- : Error on attempt # 1: ; retrying
204
+ W, [2006-11-21T13:04:03.515870 #3083] WARN -- : Error on attempt # 2: ; retrying
205
+ W, [2006-11-21T13:04:05.520581 #3083] WARN -- : Error on attempt # 1: execution expired; retrying
206
+ F, [2006-11-21T13:04:50.112488 #3097] FATAL -- : Missing host for mailer bar
207
+ F, [2006-11-21T13:04:50.113790 #3097] FATAL -- : Missing DSN for source foo!
208
+ F, [2006-11-21T13:04:53.109116 #3097] FATAL -- : no block given!
209
+ W, [2006-11-21T13:04:53.192797 #3097] WARN -- : Error on attempt # 1: ; retrying
210
+ W, [2006-11-21T13:04:54.191025 #3097] WARN -- : Error on attempt # 2: ; retrying
211
+ W, [2006-11-21T13:04:56.196862 #3097] WARN -- : Error on attempt # 1: execution expired; retrying
212
+ F, [2006-11-21T13:06:05.151052 #3113] FATAL -- : Missing host for mailer bar
213
+ F, [2006-11-21T13:06:05.152561 #3113] FATAL -- : Missing DSN for source foo!
214
+ F, [2006-11-21T13:06:09.067359 #3113] FATAL -- : no block given!
215
+ W, [2006-11-21T13:06:09.420130 #3113] WARN -- : Error on attempt # 1: ; retrying
216
+ W, [2006-11-21T13:06:10.419806 #3113] WARN -- : Error on attempt # 2: ; retrying
217
+ W, [2006-11-21T13:06:12.424524 #3113] WARN -- : Error on attempt # 1: execution expired; retrying
218
+ F, [2006-11-21T13:06:54.348405 #3127] FATAL -- : Missing host for mailer bar
219
+ F, [2006-11-21T13:06:54.349991 #3127] FATAL -- : Missing DSN for source foo!
220
+ F, [2006-11-21T13:06:57.118296 #3127] FATAL -- : no block given!
221
+ W, [2006-11-21T13:06:57.326251 #3127] WARN -- : Error on attempt # 1: ; retrying
222
+ W, [2006-11-21T13:06:58.322805 #3127] WARN -- : Error on attempt # 2: ; retrying
223
+ W, [2006-11-21T13:07:00.327594 #3127] WARN -- : Error on attempt # 1: execution expired; retrying
224
+ F, [2006-11-21T13:21:55.681748 #3207] FATAL -- : Missing host for mailer bar
225
+ F, [2006-11-21T13:21:55.683385 #3207] FATAL -- : Missing DSN for source foo!
226
+ F, [2006-11-21T13:21:58.510677 #3207] FATAL -- : no block given!
227
+ W, [2006-11-21T13:21:58.718234 #3207] WARN -- : Error on attempt # 1: ; retrying
228
+ W, [2006-11-21T13:21:59.715284 #3207] WARN -- : Error on attempt # 2: ; retrying
229
+ W, [2006-11-21T13:22:01.719990 #3207] WARN -- : Error on attempt # 1: execution expired; retrying
230
+ F, [2006-11-23T13:49:58.485937 #3497] FATAL -- : Missing host for mailer bar
231
+ F, [2006-11-23T13:49:58.511655 #3497] FATAL -- : Missing DSN for source foo!
232
+ F, [2006-11-23T13:50:02.728977 #3497] FATAL -- : no block given!
233
+ W, [2006-11-23T13:50:03.082515 #3497] WARN -- : Error on attempt # 1: ; retrying
234
+ W, [2006-11-23T13:50:04.079439 #3497] WARN -- : Error on attempt # 2: ; retrying
235
+ W, [2006-11-23T13:50:06.084182 #3497] WARN -- : Error on attempt # 1: execution expired; retrying