ralf 0.1.1 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/spec/ralf_spec.rb +54 -14
  2. metadata +12 -2
data/spec/ralf_spec.rb CHANGED
@@ -5,7 +5,11 @@ require 'ralf'
5
5
  describe Ralf do
6
6
 
7
7
  before(:each) do
8
- @default_params = {:config => File.dirname(__FILE__) + '/fixtures/config.yaml', :date => '2010-02-10'}
8
+ @default_params = {
9
+ :config => File.dirname(__FILE__) + '/fixtures/config.yaml',
10
+ :out_seperator => ':year/:month/:day',
11
+ :date => '2010-02-10'
12
+ }
9
13
  end
10
14
 
11
15
  it "should initialize properly" do
@@ -62,7 +66,7 @@ describe Ralf do
62
66
  describe "Date handling" do
63
67
 
64
68
  it "should set the date to today" do
65
- ralf = Ralf.new(@default_params)
69
+ ralf = Ralf.new()
66
70
  date = Date.today
67
71
  ralf.date.should eql("%4d-%02d-%02d" % [date.year, date.month, date.day])
68
72
  end
@@ -74,11 +78,21 @@ describe Ralf do
74
78
 
75
79
  it "should raise error when invalid date given" do
76
80
  lambda {
77
- ralf = Ralf.new(@default_params.merge(:date => 'now'))
81
+ ralf = Ralf.new(@default_params.merge(:date => 'someday'))
78
82
  ralf.date.should be_nil
79
83
  }.should raise_error(ArgumentError, "invalid date")
80
84
  end
81
85
 
86
+ xit "should accept a range of dates" do
87
+ ralf = Ralf.new(@default_params.merge(:date => 'now'))
88
+ ralf.date.should be_nil
89
+ end
90
+
91
+ xit "should accept a month and convert it to a date" do
92
+ ralf = Ralf.new(@default_params.merge(:date => 'januari'))
93
+ ralf.date.should be_nil
94
+ end
95
+
82
96
  end
83
97
 
84
98
  describe "Handle Buckets" do
@@ -86,10 +100,11 @@ describe Ralf do
86
100
  before(:each) do
87
101
  @ralf = Ralf.new(@default_params)
88
102
  @bucket1 = {:name => 'bucket1'}
89
- @bucket1.should_receive(:logging_info).any_number_of_times.and_return({ :enabled => true, :targetprefix => "log/" })
103
+ @bucket1.should_receive(:logging_info).any_number_of_times.and_return({ :enabled => true, :targetprefix => "log/access_log-" })
90
104
  @bucket1.should_receive(:name).any_number_of_times.and_return('media.kerdienstgemist.nl')
91
105
  @bucket2 = {:name => 'bucket2'}
92
106
  @bucket2.should_receive(:logging_info).any_number_of_times.and_return({ :enabled => false, :targetprefix => "log/" })
107
+ @bucket2.should_receive(:name).any_number_of_times.and_return('media.kerdienstgemist.nl')
93
108
  end
94
109
 
95
110
  it "should find buckets with logging enabled" do
@@ -100,16 +115,17 @@ describe Ralf do
100
115
  end
101
116
 
102
117
  it "should save logging to disk" do
103
- @key1 = {:name => 'log/2010-02-10-00-05-32-ZDRFGTCKUYVJCT', :data => 'This is content'}
104
- @key2 = {:name => 'log/2010-02-10-00-07-28-EFREUTERGRSGDH', :data => 'This is content'}
118
+ @key1 = {:name => 'log/access_log-2010-02-10-00-05-32-ZDRFGTCKUYVJCT', :data => 'This is content'}
119
+ @key2 = {:name => 'log/access_log-2010-02-10-00-07-28-EFREUTERGRSGDH', :data => 'This is content'}
105
120
  @bucket1.should_receive(:keys).any_number_of_times.and_return([@key1, @key2])
106
121
  @key1.should_receive(:name).any_number_of_times.and_return(@key1[:name])
107
122
  @key2.should_receive(:name).any_number_of_times.and_return(@key2[:name])
108
123
  @key1.should_receive(:data).any_number_of_times.and_return(@key1[:data])
109
124
  @key2.should_receive(:data).any_number_of_times.and_return(@key2[:data])
110
- File.should_receive(:makedirs).twice.and_return(true)
111
- File.should_receive(:exists?).twice.and_return(false, true)
112
- File.should_receive(:open).once.and_return(true)
125
+ File.should_receive(:makedirs).twice.with('/Users/berl/S3/media.kerdienstgemist.nl/log/2010/02/10').and_return(true)
126
+ File.should_receive(:exists?).once.with( '/Users/berl/S3/media.kerdienstgemist.nl/log/2010/02/10/access_log-2010-02-10-00-07-28-EFREUTERGRSGDH').and_return(true)
127
+ File.should_receive(:exists?).once.with( '/Users/berl/S3/media.kerdienstgemist.nl/log/2010/02/10/access_log-2010-02-10-00-05-32-ZDRFGTCKUYVJCT').and_return(false)
128
+ File.should_receive(:open).once.with( '/Users/berl/S3/media.kerdienstgemist.nl/log/2010/02/10/access_log-2010-02-10-00-05-32-ZDRFGTCKUYVJCT', "w").and_return(true)
113
129
 
114
130
  @ralf.save_logging_to_disk(@bucket1).should eql([@key1, @key2])
115
131
  end
@@ -117,16 +133,16 @@ describe Ralf do
117
133
  it "should merge all logs" do
118
134
  out_string = StringIO.new
119
135
 
120
- Dir.should_receive(:glob).with('/Users/berl/S3/media.kerdienstgemist.nl/log/2010-02-10*').and_return(
121
- ['/Users/berl/S3/media.kerdienstgemist.nl/log/2010-02-10-00-05-32-ZDRFGTCKUYVJCT',
122
- '/Users/berl/S3/media.kerdienstgemist.nl/log/2010-02-10-00-07-28-EFREUTERGRSGDH'])
136
+ Dir.should_receive(:glob).with('/Users/berl/S3/media.kerdienstgemist.nl/log/2010/02/10/access_log-2010-02-10*').and_return(
137
+ ['/Users/berl/S3/media.kerdienstgemist.nl/log/2010/02/10/access_log-2010-02-10-00-05-32-ZDRFGTCKUYVJCT',
138
+ '/Users/berl/S3/media.kerdienstgemist.nl/log/2010/02/10/access_log-2010-02-10-00-07-28-EFREUTERGRSGDH'])
123
139
 
124
140
  File.should_receive(:open).with('/Users/berl/S3/s3_combined_media.kerdienstgemist.nl_2010-02-10.alf', "w").and_yield(out_string)
125
141
 
126
142
  LogMerge::Merger.should_receive(:merge).with(
127
143
  out_string,
128
- '/Users/berl/S3/media.kerdienstgemist.nl/log/2010-02-10-00-05-32-ZDRFGTCKUYVJCT',
129
- '/Users/berl/S3/media.kerdienstgemist.nl/log/2010-02-10-00-07-28-EFREUTERGRSGDH'
144
+ '/Users/berl/S3/media.kerdienstgemist.nl/log/2010/02/10/access_log-2010-02-10-00-05-32-ZDRFGTCKUYVJCT',
145
+ '/Users/berl/S3/media.kerdienstgemist.nl/log/2010/02/10/access_log-2010-02-10-00-07-28-EFREUTERGRSGDH'
130
146
  )
131
147
 
132
148
  @ralf.merge_to_combined(@bucket1)
@@ -134,6 +150,30 @@ describe Ralf do
134
150
  out_string.string.should eql('')
135
151
  end
136
152
 
153
+ it "should save logs which have a targetprefix containing a '/'" do
154
+ @ralf.local_log_dirname(@bucket1).should eql('/Users/berl/S3/media.kerdienstgemist.nl/log/2010/02/10')
155
+ @ralf.local_log_dirname(@bucket2).should eql('/Users/berl/S3/media.kerdienstgemist.nl/log/2010/02/10')
156
+ end
157
+
158
+ it "should save to a subdir when a out_seperator is given" do
159
+ @ralf.local_log_dirname(@bucket1).should eql('/Users/berl/S3/media.kerdienstgemist.nl/log/2010/02/10')
160
+
161
+ @ralf.out_seperator = ':year/w:week'
162
+ @ralf.local_log_dirname(@bucket1).should eql('/Users/berl/S3/media.kerdienstgemist.nl/log/2010/w06')
163
+ end
164
+
165
+ it "should get the proper directories" do
166
+ @key.should_receive(:name).and_return('log/access_log-2010-02-10-00-05-32-ZDRFGTCKUYVJCT')
167
+ @ralf.local_log_file_basename_prefix(@bucket1).should eql('access_log-')
168
+ @ralf.local_log_file_basename(@bucket1, @key).should eql('access_log-2010-02-10-00-05-32-ZDRFGTCKUYVJCT')
169
+ @ralf.local_log_dirname(@bucket1).should eql('/Users/berl/S3/media.kerdienstgemist.nl/log/2010/02/10')
170
+
171
+ @key.should_receive(:name).and_return('log/2010-02-10-00-05-32-ZDRFGTCKUYVJCT')
172
+ @ralf.local_log_file_basename_prefix(@bucket2).should eql('')
173
+ @ralf.local_log_file_basename(@bucket2, @key).should eql('2010-02-10-00-05-32-ZDRFGTCKUYVJCT')
174
+ @ralf.local_log_dirname(@bucket2).should eql('/Users/berl/S3/media.kerdienstgemist.nl/log/2010/02/10')
175
+ end
176
+
137
177
  end
138
178
 
139
179
  describe "Conversion" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ralf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Klaas Jan Wierenga
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2010-02-10 00:00:00 +01:00
13
+ date: 2010-02-17 00:00:00 +01:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -33,6 +33,16 @@ dependencies:
33
33
  - !ruby/object:Gem::Version
34
34
  version: 1.0.0
35
35
  version:
36
+ - !ruby/object:Gem::Dependency
37
+ name: chronic
38
+ type: :runtime
39
+ version_requirement:
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: 0.2.3
45
+ version:
36
46
  description: " Download logfiles from Amazon S3 buckets to local disk and combine them in one Apache CLF per bucket\n"
37
47
  email:
38
48
  executables: []