bookie_accounting 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -18,8 +18,7 @@ describe Bookie::Database::JobSummary do
18
18
  :command_name => command_name,
19
19
  :date => date,
20
20
  :cpu_time => 0,
21
- :memory_time => 0,
22
- :successful => 0
21
+ :memory_time => 0
23
22
  )
24
23
  end
25
24
  end
@@ -39,79 +38,79 @@ describe Bookie::Database::JobSummary do
39
38
  it "correctly filters by date range" do
40
39
  d = Date.new(2012)
41
40
  sums = JobSummary
42
- sums.by_date_range(d .. d).count.should eql sums.by_date(d).count
43
- sums.by_date_range(d ... d).count.should eql 0
44
- sums.by_date_range(d + 1 .. d).count.should eql 0
45
- sums.by_date_range(d .. d + 1).count.should eql sums.by_date(d).count + sums.by_date(d + 1).count
46
- sums.by_date_range(d ... d + 1).count.should eql sums.by_date(d).count
41
+ expect(sums.by_date_range(d .. d).count).to eql sums.by_date(d).count
42
+ expect(sums.by_date_range(d ... d).count).to eql 0
43
+ expect(sums.by_date_range(d + 1 .. d).count).to eql 0
44
+ expect(sums.by_date_range(d .. d + 1).count).to eql sums.by_date(d).count + sums.by_date(d + 1).count
45
+ expect(sums.by_date_range(d ... d + 1).count).to eql sums.by_date(d).count
47
46
  end
48
-
47
+
49
48
  it "correctly filters by user" do
50
49
  u = User.first
51
50
  sums = JobSummary.by_user(u).to_a
52
- sums.length.should eql 16
51
+ expect(sums.length).to eql 16
53
52
  sums.each do |sum|
54
- sum.user.should eql u
53
+ expect(sum.user).to eql u
55
54
  end
56
55
  end
57
-
56
+
58
57
  it "correctly filters by user name" do
59
58
  sums = JobSummary.by_user_name('test').to_a
60
- sums.length.should eql 32
59
+ expect(sums.length).to eql 32
61
60
  sums.each do |sum|
62
- sum.user.name.should eql 'test'
61
+ expect(sum.user.name).to eql 'test'
63
62
  end
64
63
  end
65
-
64
+
66
65
  it "correctly filters by group" do
67
- g = Group.find_by_name('admin')
66
+ g = Group.find_by(name: 'admin')
68
67
  sums = JobSummary.by_group(g).to_a
69
- sums.length.should eql 32
68
+ expect(sums.length).to eql 32
70
69
  sums.each do |sum|
71
- sum.user.group.should eql g
70
+ expect(sum.user.group).to eql g
72
71
  end
73
72
  end
74
-
73
+
75
74
  it "correctly filters by group name" do
76
75
  sums = JobSummary.by_group_name('admin').to_a
77
- sums.length.should eql 32
76
+ expect(sums.length).to eql 32
78
77
  sums.each do |sum|
79
- sum.user.group.name.should eql 'admin'
78
+ expect(sum.user.group.name).to eql 'admin'
80
79
  end
81
- JobSummary.by_group_name('fake_group').count.should eql 0
80
+ expect(JobSummary.by_group_name('fake_group').count).to eql 0
82
81
  end
83
-
82
+
84
83
  it "correctly filters by system" do
85
84
  s = System.first
86
85
  sums = JobSummary.by_system(s).to_a
87
- sums.length.should eql 16
86
+ expect(sums.length).to eql 16
88
87
  sums.each do |sum|
89
- sum.system.should eql s
88
+ expect(sum.system).to eql s
90
89
  end
91
90
  end
92
-
91
+
93
92
  it "correctly filters by system name" do
94
93
  sums = JobSummary.by_system_name('test1').to_a
95
- sums.length.should eql 32
94
+ expect(sums.length).to eql 32
96
95
  sums.each do |sum|
97
- sum.system.name.should eql 'test1'
96
+ expect(sum.system.name).to eql 'test1'
98
97
  end
99
98
  end
100
-
99
+
101
100
  it "correctly filters by system type" do
102
101
  s = SystemType.first
103
102
  sums = JobSummary.by_system_type(s).to_a
104
- sums.length.should eql 32
103
+ expect(sums.length).to eql 32
105
104
  sums.each do |sum|
106
- sum.system.system_type.should eql s
105
+ expect(sum.system.system_type).to eql s
107
106
  end
108
107
  end
109
-
108
+
110
109
  it "correctly filters by command name" do
111
110
  sums = JobSummary.by_command_name('vi').to_a
112
- sums.length.should eql 32
111
+ expect(sums.length).to eql 32
113
112
  sums.each do |sum|
114
- sum.command_name.should eql 'vi'
113
+ expect(sum.command_name).to eql 'vi'
115
114
  end
116
115
  end
117
116
 
@@ -119,7 +118,7 @@ describe Bookie::Database::JobSummary do
119
118
  before(:each) do
120
119
  JobSummary.delete_all
121
120
  end
122
-
121
+
123
122
  it "produces correct summaries" do
124
123
  d = Date.new(2012)
125
124
  range = base_time ... base_time + 1.days
@@ -127,7 +126,7 @@ describe Bookie::Database::JobSummary do
127
126
  sums = JobSummary.all.to_a
128
127
  found_sums = Set.new
129
128
  sums.each do |sum|
130
- sum.date.should eql Date.new(2012)
129
+ expect(sum.date).to eql Date.new(2012)
131
130
  jobs = Job.by_user(sum.user).by_system(sum.system).by_command_name(sum.command_name)
132
131
  sum_2 = jobs.summary(range)
133
132
  [:cpu_time, :memory_time].each do |field|
@@ -136,20 +135,19 @@ describe Bookie::Database::JobSummary do
136
135
  found_sums.add([sum.user.id, sum.system.id, sum.command_name])
137
136
  end
138
137
  #Is it catching all of the combinations of categories?
139
- Job.by_time_range(range).select('user_id, system_id, command_name').uniq.find_each do |values|
140
- values = [values.user_id, values.system_id, values.command_name]
141
- found_sums.include?(values).should eql true
138
+ Job.by_time_range(range).uniq.pluck(:user_id, :system_id, :command_name).each do |values|
139
+ expect(found_sums.include?(values)).to eql true
142
140
  end
143
141
  end
144
-
142
+
145
143
  it "creates dummy summaries when there are no jobs" do
146
144
  d = Date.new(2012) + 5
147
145
  JobSummary.summarize(d)
148
146
  sums = JobSummary.by_date(d).to_a
149
- sums.length.should eql 1
147
+ expect(sums.length).to eql 1
150
148
  sum = sums[0]
151
- sum.cpu_time.should eql 0
152
- sum.memory_time.should eql 0
149
+ expect(sum.cpu_time).to eql 0
150
+ expect(sum.memory_time).to eql 0
153
151
 
154
152
  #Check the case where there are no users or no systems:
155
153
  JobSummary.delete_all
@@ -157,7 +155,7 @@ describe Bookie::Database::JobSummary do
157
155
  JobSummary.transaction(:requires_new => true) do
158
156
  klass.delete_all
159
157
  JobSummary.summarize(d)
160
- JobSummary.by_date(d).count.should eql 0
158
+ expect(JobSummary.by_date(d).count).to eql 0
161
159
  raise ActiveRecord::Rollback
162
160
  end
163
161
  end
@@ -176,7 +174,7 @@ describe Bookie::Database::JobSummary do
176
174
  :memory_time => 0,
177
175
  }
178
176
  end
179
-
177
+
180
178
  it "produces correct summaries" do
181
179
  1.upto(3) do |num_days|
182
180
  [0, -2.hours, 2.hours, 3.minutes].each do |offset_begin|
@@ -196,11 +194,11 @@ describe Bookie::Database::JobSummary do
196
194
  it "distinguishes between inclusive and exclusive ranges" do
197
195
  Summary = JobSummary
198
196
  sum = Summary.summary(:range => (base_time ... base_time + 1.days + 2.hours))
199
- sum[:num_jobs].should eql 26
200
- sum[:successful].should eql 13
197
+ expect(sum[:num_jobs]).to eql 26
198
+ expect(sum[:successful]).to eql 13
201
199
  sum = Summary.summary(:range => (base_time .. base_time + 1.days + 2.hours))
202
- sum[:num_jobs].should eql 27
203
- sum[:successful].should eql 14
200
+ expect(sum[:num_jobs]).to eql 27
201
+ expect(sum[:successful]).to eql 14
204
202
  end
205
203
 
206
204
  def check_time_bounds
@@ -208,7 +206,7 @@ describe Bookie::Database::JobSummary do
208
206
  expect(JobSummary.minimum(:date)).to eql(base_time.to_date)
209
207
  expect(JobSummary.maximum(:date)).to eql(Time.now.utc.to_date - 1)
210
208
  end
211
-
209
+
212
210
  it "correctly finds the default time bounds" do
213
211
  Time.expects(:now).at_least(0).returns(base_time + 2.days)
214
212
  job = Job.order('end_time DESC').first
@@ -216,7 +214,7 @@ describe Bookie::Database::JobSummary do
216
214
  job.save!
217
215
  check_time_bounds
218
216
  JobSummary.delete_all
219
-
217
+
220
218
  #Check the case where all systems are decommissioned.
221
219
  #TODO: split into a context?
222
220
  JobSummary.transaction(:requires_new => true) do
@@ -232,10 +230,10 @@ describe Bookie::Database::JobSummary do
232
230
  #TODO: split into a context?
233
231
  Job.delete_all
234
232
  sum = JobSummary.summary
235
- sum.should eql(@empty_summary)
236
- JobSummary.any?.should eql false
233
+ expect(sum).to eql(@empty_summary)
234
+ expect(JobSummary.any?).to eql false
237
235
  end
238
-
236
+
239
237
  it "correctly handles filtered summaries" do
240
238
  filters = {
241
239
  :user_name => 'test',
@@ -250,12 +248,12 @@ describe Bookie::Database::JobSummary do
250
248
  expect(sum1).to eql(sum2)
251
249
  end
252
250
  end
253
-
251
+
254
252
  it "correctly handles inverted ranges" do
255
253
  t = base_time
256
- JobSummary.summary(:range => t .. t - 1).should eql(@empty_summary)
254
+ expect(JobSummary.summary(:range => t .. t - 1)).to eql(@empty_summary)
257
255
  end
258
-
256
+
259
257
  it "caches summaries" do
260
258
  JobSummary.expects(:summarize)
261
259
  range = base_time ... base_time + 1.days
@@ -281,21 +279,21 @@ describe Bookie::Database::JobSummary do
281
279
  }
282
280
 
283
281
  sum = JobSummary.new(fields)
284
- sum.valid?.should eql true
285
-
282
+ expect(sum.valid?).to eql true
283
+
286
284
  fields.each_key do |field|
287
285
  job = JobSummary.new(fields)
288
286
  job.method("#{field}=".intern).call(nil)
289
- job.valid?.should eql false
287
+ expect(job.valid?).to eql false
290
288
  end
291
-
289
+
292
290
  [:cpu_time, :memory_time].each do |field|
293
291
  job = JobSummary.new(fields)
294
292
  method = job.method("#{field}=".intern)
295
293
  method.call(-1)
296
- job.valid?.should eql false
294
+ expect(job.valid?).to eql false
297
295
  method.call(0)
298
- job.valid?.should eql true
296
+ expect(job.valid?).to eql true
299
297
  end
300
298
  end
301
299
  end
@@ -3,13 +3,13 @@ require 'spec_helper'
3
3
  describe Bookie::Database::Lock do
4
4
  it "finds locks" do
5
5
  Lock = Bookie::Database::Lock
6
- Lock[:users].should_not eql nil
7
- Lock[:users].name.should eql 'users'
8
- Lock[:groups].should_not eql nil
9
- Lock[:groups].name.should eql 'groups'
10
- expect { Lock[:dummy] }.to raise_error("Unable to find lock 'dummy'")
6
+ expect(Lock[:users]).to_not eql nil
7
+ expect(Lock[:users].name).to eql 'users'
8
+ expect(Lock[:groups]).to_not eql nil
9
+ expect(Lock[:groups].name).to eql 'groups'
10
+ expect { Lock[:dummy] }.to raise_error(ActiveRecord::RecordNotFound)
11
11
  end
12
-
12
+
13
13
  it "locks records (will probably fail if the testing DB doesn't support row locks)" #do
14
14
  #lock = Bookie::Database::Lock[:users]
15
15
  #thread = nil
@@ -21,21 +21,20 @@ describe Bookie::Database::Lock do
21
21
  # Bookie::Database::User.first
22
22
  # end
23
23
  # end
24
- # (Time.now - t).should >= 0.5
24
+ # expect(Time.now - t).to >= 0.5
25
25
  # }
26
26
  # sleep(1)
27
27
  #end
28
28
  #thread.join
29
29
  #end
30
-
30
+
31
31
  it "validates fields" do
32
32
  lock = Bookie::Database::Lock.new
33
33
  lock.name = nil
34
- lock.valid?.should eql false
34
+ expect(lock.valid?).to eql false
35
35
  lock.name = ''
36
- lock.valid?.should eql false
36
+ expect(lock.valid?).to eql false
37
37
  lock.name = 'test'
38
- lock.valid?.should eql true
38
+ expect(lock.valid?).to eql true
39
39
  end
40
40
  end
41
-
@@ -4,43 +4,43 @@ include Bookie::Database
4
4
 
5
5
  describe Bookie::Database::System do
6
6
  describe "#active" do
7
- it { System.active.length.should eql 3 }
7
+ it { expect(System.active.length).to eql 3 }
8
8
  end
9
-
9
+
10
10
  it "correctly filters by name" do
11
- System.by_name('test1').length.should eql 2
12
- System.by_name('test2').length.should eql 1
13
- System.by_name('test3').length.should eql 1
11
+ expect(System.by_name('test1').length).to eql 2
12
+ expect(System.by_name('test2').length).to eql 1
13
+ expect(System.by_name('test3').length).to eql 1
14
14
  end
15
-
15
+
16
16
  it "correctly filters by system type" do
17
17
  ['Standalone', 'TORQUE cluster'].each do |type|
18
- t = SystemType.find_by_name(type)
19
- System.by_system_type(t).length.should eql 2
18
+ t = SystemType.find_by(name: type)
19
+ expect(System.by_system_type(t).length).to eql 2
20
20
  end
21
21
  end
22
22
 
23
23
  #TODO: create a common example.
24
24
  describe "#by_time_range" do
25
25
  it "correctly filters by time range" do
26
- systems = System.by_time_range(base_time ... base_time + 36000 * 2 + 1)
27
- systems.count.should eql 3
28
- systems = System.by_time_range(base_time + 1 ... base_time + 36000 * 2)
29
- systems.count.should eql 2
26
+ systems = System.by_time_range(base_time ... base_time + 20.hours + 1)
27
+ expect(systems.count).to eql 3
28
+ systems = System.by_time_range(base_time + 1 ... base_time + 20.hours)
29
+ expect(systems.count).to eql 2
30
30
  systems = System.by_time_range(base_time ... base_time)
31
- systems.length.should eql 0
32
- systems = System.by_time_range(base_time .. base_time + 36000 * 2)
33
- systems.count.should eql 3
31
+ expect(systems.length).to eql 0
32
+ systems = System.by_time_range(base_time .. base_time + 20.hours)
33
+ expect(systems.count).to eql 3
34
34
  systems = System.by_time_range(base_time .. base_time)
35
- systems.count.should eql 1
35
+ expect(systems.count).to eql 1
36
36
  end
37
37
 
38
38
  #TODO: split inclusive/exclusive range tests
39
-
39
+
40
40
  it "correctly handles empty/inverted ranges" do
41
41
  (-1 .. 0).each do |offset|
42
42
  systems = System.by_time_range(base_time ... base_time + offset)
43
- systems.count.should eql 0
43
+ expect(systems.count).to eql 0
44
44
  end
45
45
  end
46
46
  end
@@ -54,7 +54,7 @@ describe Bookie::Database::System do
54
54
 
55
55
  let(:summary) { create_summaries(System, base_time) }
56
56
  let(:summary_wide) { System.summary(base_time - 1.hours ... Time.now + 1.hours) }
57
-
57
+
58
58
  #All systems should have the same amount of memory.
59
59
  let(:memory_per_system) { System.first.memory }
60
60
  let(:cores_per_system) { System.first.cores }
@@ -110,44 +110,44 @@ describe Bookie::Database::System do
110
110
  end
111
111
 
112
112
  s1 = System.summary()
113
- s1.should eql summary[:all]
113
+ expect(s1).to eql summary[:all]
114
114
 
115
115
  s1 = System.summary(base_time ... Time.now + 1.hour)
116
116
  s2 = summary[:all].dup
117
117
  s2[:avail_memory_avg] = Float(total_memory_time) / 41.hours
118
- s1.should eql s2
118
+ expect(s1).to eql s2
119
119
  end
120
120
  end
121
-
121
+
122
122
  it "correctly handles inverted ranges" do
123
123
  t = base_time
124
- System.summary(t ... t - 1).should eql summary[:empty]
125
- System.summary(t .. t - 1).should eql summary[:empty]
124
+ expect(System.summary(t ... t - 1)).to eql summary[:empty]
125
+ expect(System.summary(t .. t - 1)).to eql summary[:empty]
126
126
  end
127
127
  end
128
128
 
129
129
  describe "#find_current" do
130
130
  before(:all) do
131
131
  @config_t1 = test_config.clone
132
-
132
+
133
133
  @config_t1.hostname = 'test1'
134
134
  @config_t1.system_type = 'standalone'
135
135
  @config_t1.cores = 2
136
136
  @config_t1.memory = 1000000
137
-
137
+
138
138
  @config_t2 = @config_t1.clone
139
139
  @config_t2.system_type = 'torque_cluster'
140
-
140
+
141
141
  @sender_1 = Bookie::Sender.new(@config_t1)
142
142
  @sender_2 = Bookie::Sender.new(@config_t2)
143
143
  end
144
144
 
145
145
  it "finds the correct system" do
146
- System.find_current(@sender_2).id.should eql 2
147
- System.find_current(@sender_2, Time.now).id.should eql 2
148
- System.find_current(@sender_1, base_time).id.should eql 1
146
+ expect(System.find_current(@sender_2).id).to eql 2
147
+ expect(System.find_current(@sender_2, Time.now).id).to eql 2
148
+ expect(System.find_current(@sender_1, base_time).id).to eql 1
149
149
  end
150
-
150
+
151
151
  it "correctly detects the lack of a matching system" do
152
152
  expect {
153
153
  System.find_current(@sender_1, base_time - 1.years)
@@ -157,7 +157,7 @@ describe Bookie::Database::System do
157
157
  System.find_current(@sender_1, base_time)
158
158
  }.to raise_error(/^There is no system with hostname 'test1000' that was recorded as active at /)
159
159
  end
160
-
160
+
161
161
  it "correctly detects conflicts" do
162
162
  config = test_config.clone
163
163
  config.hostname = 'test1'
@@ -172,7 +172,7 @@ describe Bookie::Database::System do
172
172
  }.to raise_error(System::SystemConflictError)
173
173
  config.unstub(field)
174
174
  end
175
- sender.expects(:system_type).returns(SystemType.find_by_name("Standalone"))
175
+ sender.expects(:system_type).returns(SystemType.find_by(name: "Standalone"))
176
176
  expect {
177
177
  System.find_current(sender)
178
178
  }.to raise_error(System::SystemConflictError)
@@ -180,16 +180,16 @@ describe Bookie::Database::System do
180
180
  end
181
181
 
182
182
  it "correctly decommissions" do
183
- sys = System.active.find_by_name('test1')
183
+ sys = System.active.find_by(name: 'test1')
184
184
  begin
185
185
  sys.decommission(sys.start_time + 3)
186
- sys.end_time.should eql sys.start_time + 3
186
+ expect(sys.end_time).to eql sys.start_time + 3
187
187
  ensure
188
188
  sys.end_time = nil
189
189
  sys.save!
190
190
  end
191
191
  end
192
-
192
+
193
193
  it "validates fields" do
194
194
  fields = {
195
195
  :name => 'test',
@@ -198,35 +198,34 @@ describe Bookie::Database::System do
198
198
  :system_type => SystemType.first,
199
199
  :start_time => base_time
200
200
  }
201
-
202
- System.new(fields).valid?.should eql true
203
-
201
+
202
+ expect(System.new(fields).valid?).to eql true
203
+
204
204
  fields.each_key do |field|
205
205
  system = System.new(fields)
206
206
  system.method("#{field}=".intern).call(nil)
207
- system.valid?.should eql false
207
+ expect(system.valid?).to eql false
208
208
  end
209
-
209
+
210
210
  system = System.new(fields)
211
211
  system.name = ''
212
- system.valid?.should eql false
213
-
212
+ expect(system.valid?).to eql false
213
+
214
214
  [:cores, :memory].each do |field|
215
215
  system = System.new(fields)
216
216
  m = system.method("#{field}=".intern)
217
217
  m.call(-1)
218
- system.valid?.should eql false
218
+ expect(system.valid?).to eql false
219
219
  m.call(0)
220
- system.valid?.should eql true
220
+ expect(system.valid?).to eql true
221
221
  end
222
-
222
+
223
223
  system = System.new(fields)
224
224
  system.end_time = base_time
225
- system.valid?.should eql true
225
+ expect(system.valid?).to eql true
226
226
  system.end_time += 5
227
- system.valid?.should eql true
227
+ expect(system.valid?).to eql true
228
228
  system.end_time -= 10
229
- system.valid?.should eql false
229
+ expect(system.valid?).to eql false
230
230
  end
231
231
  end
232
-