rocketjob 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 75e6c5434b4b1968db94743e4b81fcc0a68cabc3
4
- data.tar.gz: 735b0996986532d05ee46c546df4033a2b0d3c95
3
+ metadata.gz: 0791ec0844d63115ea5d7b5a1205fe21e72a635c
4
+ data.tar.gz: 1898e2c267dce737cfa546796d700c72a06bcad7
5
5
  SHA512:
6
- metadata.gz: 0556e6e99fa676eaa9eea871b5c32ffa372794ad5358a16f1daa11f28e0739bfc7954760d00a1d1d358ad135dfcf88e08823cdd22957fc41a5fbeb47b71fd0bd
7
- data.tar.gz: f780fa752304a93234e9dee155ab47a1949011c20d4a7cd2a949b068e0c65e195296a6edf7469d95af695d9c83d2f8041bcc3d53964fe2e71814d2a28dafeb5c
6
+ metadata.gz: 14da955ecac4f0b1316c343de006c53d1df296c24c9982c72c48e4ca12631d1283e89e64b999d488a26907503e7b46801c5ace72096dd4b0d3f02c6631f4e001
7
+ data.tar.gz: f97236b79cfab5ade58b30afebbd8ef05e462ef3f264c70860ab9cc8c2061257f6789bbc3b8d339f80a7d9ca1b17c7e6834678ca1b44958296683543e8adb32f
@@ -51,13 +51,13 @@ module RocketJob
51
51
  # Regular Expression
52
52
  #
53
53
  # Note: Date is not supported, convert it to a UTC time
54
- key :arguments, Array, default: []
54
+ key :arguments, Array
55
55
 
56
56
  # Any job properties to set
57
57
  #
58
58
  # Example, override the default job priority:
59
59
  # { priority: 45 }
60
- key :properties, Hash, default: {}
60
+ key :properties, Hash
61
61
 
62
62
  # Archive directory to move files to when processed to prevent processing the
63
63
  # file again.
@@ -65,7 +65,7 @@ module RocketJob
65
65
  # Regular Expression
66
66
  #
67
67
  # Note: Date is not supported, convert it to a UTC time
68
- key :arguments, Array, default: []
68
+ key :arguments, Array
69
69
 
70
70
  # Whether to store the results from this job
71
71
  key :collect_output, Boolean, default: false
@@ -382,6 +382,7 @@ module RocketJob
382
382
 
383
383
  def before_retry
384
384
  self.completed_at = nil
385
+ self.exception = nil
385
386
  end
386
387
 
387
388
  def before_pause
@@ -14,7 +14,7 @@ module RocketJob
14
14
  key :message, String
15
15
 
16
16
  # Exception Backtrace [Array<String>]
17
- key :backtrace, Array, default: []
17
+ key :backtrace, Array
18
18
 
19
19
  # Name of the worker on which this exception occurred
20
20
  key :worker_name, String
@@ -1,4 +1,4 @@
1
1
  # encoding: UTF-8
2
2
  module RocketJob #:nodoc
3
- VERSION = '1.1.2'
3
+ VERSION = '1.1.3'
4
4
  end
@@ -3,54 +3,56 @@ require_relative 'jobs/test_job'
3
3
 
4
4
  # Unit Test for RocketJob::Job
5
5
  class DirmonEntryTest < Minitest::Test
6
- context RocketJob::DirmonEntry do
7
- context '.config' do
8
- should 'support multiple databases' do
6
+ describe RocketJob::DirmonEntry do
7
+ describe '.config' do
8
+ it 'support multiple databases' do
9
9
  assert_equal 'test_rocketjob', RocketJob::DirmonEntry.collection.db.name
10
10
  end
11
11
  end
12
12
 
13
- context '#job_class' do
14
- context 'with a nil job_class_name' do
15
- should 'return nil' do
13
+ describe '#job_class' do
14
+ describe 'with a nil job_class_name' do
15
+ it 'return nil' do
16
16
  entry = RocketJob::DirmonEntry.new
17
17
  assert_equal(nil, entry.job_class)
18
18
  end
19
19
  end
20
20
 
21
- context 'with an unknown job_class_name' do
22
- should 'return nil' do
21
+ describe 'with an unknown job_class_name' do
22
+ it 'return nil' do
23
23
  entry = RocketJob::DirmonEntry.new(job_class_name: 'FakeJobThatDoesNotExistAnyWhereIPromise')
24
24
  assert_equal(nil, entry.job_class)
25
25
  end
26
26
  end
27
27
 
28
- context 'with a valid job_class_name' do
29
- should 'return job class' do
28
+ describe 'with a valid job_class_name' do
29
+ it 'return job class' do
30
30
  entry = RocketJob::DirmonEntry.new(job_class_name: 'RocketJob::Job')
31
31
  assert_equal(RocketJob::Job, entry.job_class)
32
+ assert_equal 0, entry.arguments.size
33
+ assert_equal 0, entry.properties.size
32
34
  end
33
35
  end
34
36
  end
35
37
 
36
- context '.whitelist_paths' do
37
- should 'default to []' do
38
+ describe '.whitelist_paths' do
39
+ it 'default to []' do
38
40
  assert_equal [], RocketJob::DirmonEntry.whitelist_paths
39
41
  end
40
42
  end
41
43
 
42
- context '.add_whitelist_path' do
43
- teardown do
44
+ describe '.add_whitelist_path' do
45
+ after do
44
46
  RocketJob::DirmonEntry.whitelist_paths.each { |path| RocketJob::DirmonEntry.delete_whitelist_path(path) }
45
47
  end
46
48
 
47
- should 'convert relative path to an absolute one' do
49
+ it 'convert relative path to an absolute one' do
48
50
  path = Pathname('test/jobs').realpath.to_s
49
51
  assert_equal path, RocketJob::DirmonEntry.add_whitelist_path('test/jobs')
50
52
  assert_equal [path], RocketJob::DirmonEntry.whitelist_paths
51
53
  end
52
54
 
53
- should 'prevent duplicates' do
55
+ it 'prevent duplicates' do
54
56
  path = Pathname('test/jobs').realpath.to_s
55
57
  assert_equal path, RocketJob::DirmonEntry.add_whitelist_path('test/jobs')
56
58
  assert_equal path, RocketJob::DirmonEntry.add_whitelist_path('test/jobs')
@@ -59,23 +61,23 @@ class DirmonEntryTest < Minitest::Test
59
61
  end
60
62
  end
61
63
 
62
- context '#fail_with_exception!' do
63
- setup do
64
+ describe '#fail_with_exception!' do
65
+ before do
64
66
  @dirmon_entry = RocketJob::DirmonEntry.new(job_class_name: 'Jobs::TestJob', pattern: '/abc/**', arguments: [1])
65
67
  @dirmon_entry.enable!
66
68
  end
67
- teardown do
69
+ after do
68
70
  @dirmon_entry.destroy if @dirmon_entry && @dirmon_entry.new_record?
69
71
  end
70
72
 
71
- should 'fail with message' do
73
+ it 'fail with message' do
72
74
  @dirmon_entry.fail_with_exception!('myworker:2323', 'oh no')
73
75
  assert_equal true, @dirmon_entry.failed?
74
76
  assert_equal 'RocketJob::DirmonEntryException', @dirmon_entry.exception.class_name
75
77
  assert_equal 'oh no', @dirmon_entry.exception.message
76
78
  end
77
79
 
78
- should 'fail with exception' do
80
+ it 'fail with exception' do
79
81
  exception = nil
80
82
  begin
81
83
  blah
@@ -90,16 +92,16 @@ class DirmonEntryTest < Minitest::Test
90
92
  end
91
93
  end
92
94
 
93
- context '#validate' do
94
- should 'existance' do
95
+ describe '#validate' do
96
+ it 'existance' do
95
97
  assert entry = RocketJob::DirmonEntry.new(job_class_name: 'Jobs::TestJob')
96
98
  assert_equal false, entry.valid?
97
99
  assert_equal ["can't be blank"], entry.errors[:pattern], entry.errors.inspect
98
100
  end
99
101
 
100
- context 'perform_method' do
101
- context 'with an invalid method' do
102
- should 'add errors to the entry' do
102
+ describe 'perform_method' do
103
+ describe 'with an invalid method' do
104
+ it 'add errors to the entry' do
103
105
  entry = RocketJob::DirmonEntry.new(job_class_name: 'Jobs::TestJob', perform_method: :missing_perform_method)
104
106
  assert_equal false, entry.valid?
105
107
  assert_equal ['Method not implemented by Jobs::TestJob'], entry.errors[:perform_method], entry.errors.inspect
@@ -107,16 +109,16 @@ class DirmonEntryTest < Minitest::Test
107
109
  end
108
110
  end
109
111
 
110
- context 'job_class_name' do
111
- should 'ensure presence' do
112
+ describe 'job_class_name' do
113
+ it 'ensure presence' do
112
114
  assert entry = RocketJob::DirmonEntry.new(pattern: '/abc/**')
113
115
  assert_equal false, entry.valid?
114
116
  assert_equal ["can't be blank", 'job_class_name must be defined and must be derived from RocketJob::Job'], entry.errors[:job_class_name], entry.errors.inspect
115
117
  end
116
118
  end
117
119
 
118
- context 'arguments' do
119
- should 'allow no arguments' do
120
+ describe 'arguments' do
121
+ it 'allow no arguments' do
120
122
  assert entry = RocketJob::DirmonEntry.new(
121
123
  job_class_name: 'Jobs::TestJob',
122
124
  pattern: '/abc/**',
@@ -126,7 +128,7 @@ class DirmonEntryTest < Minitest::Test
126
128
  assert_equal [], entry.errors[:arguments], entry.errors.inspect
127
129
  end
128
130
 
129
- should 'ensure correct number of arguments' do
131
+ it 'ensure correct number of arguments' do
130
132
  assert entry = RocketJob::DirmonEntry.new(
131
133
  job_class_name: 'Jobs::TestJob',
132
134
  pattern: '/abc/**'
@@ -135,7 +137,7 @@ class DirmonEntryTest < Minitest::Test
135
137
  assert_equal ['There must be 1 argument(s)'], entry.errors[:arguments], entry.errors.inspect
136
138
  end
137
139
 
138
- should 'return false if the job name is bad' do
140
+ it 'return false if the job name is bad' do
139
141
  assert entry = RocketJob::DirmonEntry.new(
140
142
  job_class_name: 'Jobs::Tests::Names::Things',
141
143
  pattern: '/abc/**'
@@ -145,7 +147,7 @@ class DirmonEntryTest < Minitest::Test
145
147
  end
146
148
  end
147
149
 
148
- should 'arguments with perform_method' do
150
+ it 'arguments with perform_method' do
149
151
  assert entry = RocketJob::DirmonEntry.new(
150
152
  job_class_name: 'Jobs::TestJob',
151
153
  pattern: '/abc/**',
@@ -155,7 +157,7 @@ class DirmonEntryTest < Minitest::Test
155
157
  assert_equal ['There must be 2 argument(s)'], entry.errors[:arguments], entry.errors.inspect
156
158
  end
157
159
 
158
- should 'valid' do
160
+ it 'valid' do
159
161
  assert entry = RocketJob::DirmonEntry.new(
160
162
  job_class_name: 'Jobs::TestJob',
161
163
  pattern: '/abc/**',
@@ -164,7 +166,7 @@ class DirmonEntryTest < Minitest::Test
164
166
  assert entry.valid?, entry.errors.inspect
165
167
  end
166
168
 
167
- should 'valid with perform_method' do
169
+ it 'valid with perform_method' do
168
170
  assert entry = RocketJob::DirmonEntry.new(
169
171
  job_class_name: 'Jobs::TestJob',
170
172
  pattern: '/abc/**',
@@ -175,8 +177,8 @@ class DirmonEntryTest < Minitest::Test
175
177
  end
176
178
  end
177
179
 
178
- context 'with valid entry' do
179
- setup do
180
+ describe 'with valid entry' do
181
+ before do
180
182
  @archive_directory = '/tmp/archive_directory'
181
183
  @entry = RocketJob::DirmonEntry.new(
182
184
  pattern: 'abc/*',
@@ -194,37 +196,37 @@ class DirmonEntryTest < Minitest::Test
194
196
  @archive_file_name = File.join(@archive_directory, "#{@job.id}_#{File.basename(@file_name)}")
195
197
  end
196
198
 
197
- teardown do
199
+ after do
198
200
  @file.delete if @file
199
201
  end
200
202
 
201
- context '#archive_pathname' do
202
- should 'with archive directory' do
203
+ describe '#archive_pathname' do
204
+ it 'with archive directory' do
203
205
  assert_equal @archive_directory.to_s, @entry.archive_pathname.to_s
204
206
  end
205
207
 
206
- should 'without archive directory' do
208
+ it 'without archive directory' do
207
209
  @entry.archive_directory = nil
208
210
  assert_equal '_archive', @entry.archive_pathname.to_s
209
211
  end
210
212
  end
211
213
 
212
- context '#archive_file' do
213
- should 'archive file' do
214
+ describe '#archive_file' do
215
+ it 'archive file' do
214
216
  assert_equal @archive_file_name, @entry.send(:archive_file, @job, Pathname.new(@file_name))
215
217
  assert File.exists?(@archive_file_name), @archive_file_name
216
218
  end
217
219
  end
218
220
 
219
- context '#upload_default' do
220
- should 'upload' do
221
+ describe '#upload_default' do
222
+ it 'upload' do
221
223
  @entry.send(:upload_default, @job, @pathname)
222
224
  assert_equal File.absolute_path(@archive_file_name), @job.arguments.first[:full_file_name], @job.arguments
223
225
  end
224
226
  end
225
227
 
226
- context '#upload_file' do
227
- should 'upload using #file_store_upload' do
228
+ describe '#upload_file' do
229
+ it 'upload using #file_store_upload' do
228
230
  @job.define_singleton_method(:file_store_upload) do |file_name|
229
231
  self.description = "FILE:#{file_name}"
230
232
  end
@@ -232,7 +234,7 @@ class DirmonEntryTest < Minitest::Test
232
234
  assert_equal "FILE:#{@file_name}", @job.description
233
235
  end
234
236
 
235
- should 'upload using #upload' do
237
+ it 'upload using #upload' do
236
238
  @job.define_singleton_method(:upload) do |file_name|
237
239
  self.description = "FILE:#{file_name}"
238
240
  end
@@ -241,8 +243,8 @@ class DirmonEntryTest < Minitest::Test
241
243
  end
242
244
  end
243
245
 
244
- context '#later' do
245
- should 'enqueue job' do
246
+ describe '#later' do
247
+ it 'enqueue job' do
246
248
  @entry.arguments = [{}]
247
249
  @entry.perform_method = :event
248
250
  job = @entry.later(@pathname)
@@ -3,8 +3,8 @@ require_relative 'jobs/test_job'
3
3
 
4
4
  # Unit Test for RocketJob::Job
5
5
  class DirmonJobTest < Minitest::Test
6
- context RocketJob::Jobs::DirmonJob do
7
- setup do
6
+ describe RocketJob::Jobs::DirmonJob do
7
+ before do
8
8
  @dirmon_job = RocketJob::Jobs::DirmonJob.new
9
9
  @directory = '/tmp/directory'
10
10
  @archive_directory = '/tmp/archive_directory'
@@ -19,14 +19,14 @@ class DirmonJobTest < Minitest::Test
19
19
  FileUtils.makedirs(@archive_directory)
20
20
  end
21
21
 
22
- teardown do
22
+ after do
23
23
  @dirmon_job.destroy if @dirmon_job && !@dirmon_job.new_record?
24
24
  FileUtils.remove_dir(@archive_directory, true) if Dir.exist?(@archive_directory)
25
25
  FileUtils.remove_dir(@directory, true) if Dir.exist?(@directory)
26
26
  end
27
27
 
28
- context '#check_file' do
29
- should 'check growing file' do
28
+ describe '#check_file' do
29
+ it 'check growing file' do
30
30
  previous_size = 5
31
31
  new_size = 10
32
32
  file = Tempfile.new('check_file')
@@ -39,7 +39,7 @@ class DirmonJobTest < Minitest::Test
39
39
  assert_equal new_size, result
40
40
  end
41
41
 
42
- should 'check completed file' do
42
+ it 'check completed file' do
43
43
  previous_size = 10
44
44
  new_size = 10
45
45
  file = Tempfile.new('check_file')
@@ -54,7 +54,7 @@ class DirmonJobTest < Minitest::Test
54
54
  assert started
55
55
  end
56
56
 
57
- should 'check deleted file' do
57
+ it 'check deleted file' do
58
58
  previous_size = 5
59
59
  file_name = Pathname.new('blah')
60
60
  result = @dirmon_job.send(:check_file, @entry, file_name, previous_size)
@@ -62,23 +62,23 @@ class DirmonJobTest < Minitest::Test
62
62
  end
63
63
  end
64
64
 
65
- context '#check_directories' do
66
- setup do
65
+ describe '#check_directories' do
66
+ before do
67
67
  RocketJob::DirmonEntry.destroy_all
68
68
  @entry.enable!
69
69
  end
70
70
 
71
- teardown do
71
+ after do
72
72
  @entry.destroy if @entry
73
73
  end
74
74
 
75
- should 'no files' do
75
+ it 'no files' do
76
76
  previous_file_names = {}
77
77
  result = @dirmon_job.send(:check_directories, previous_file_names)
78
78
  assert_equal 0, result.count
79
79
  end
80
80
 
81
- should 'collect new files without enqueuing them' do
81
+ it 'collect new files without enqueuing them' do
82
82
  create_file("#{@directory}/abc/file1", 5)
83
83
  create_file("#{@directory}/abc/file2", 10)
84
84
 
@@ -89,7 +89,7 @@ class DirmonJobTest < Minitest::Test
89
89
  assert_equal 10, result.values.second, result.inspect
90
90
  end
91
91
 
92
- should 'allow files to grow' do
92
+ it 'allow files to grow' do
93
93
  create_file("#{@directory}/abc/file1", 5)
94
94
  create_file("#{@directory}/abc/file2", 10)
95
95
  previous_file_names = {}
@@ -102,7 +102,7 @@ class DirmonJobTest < Minitest::Test
102
102
  assert_equal 15, result.values.second, result.inspect
103
103
  end
104
104
 
105
- should 'start all files' do
105
+ it 'start all files' do
106
106
  create_file("#{@directory}/abc/file1", 5)
107
107
  create_file("#{@directory}/abc/file2", 10)
108
108
  previous_file_names = @dirmon_job.send(:check_directories, {})
@@ -115,7 +115,7 @@ class DirmonJobTest < Minitest::Test
115
115
  assert_equal 0, result.count, result.inspect
116
116
  end
117
117
 
118
- should 'skip files in archive directory' do
118
+ it 'skip files in archive directory' do
119
119
  @entry.archive_directory = nil
120
120
  @entry.pattern = "#{@directory}/abc/**/*"
121
121
 
@@ -132,8 +132,8 @@ class DirmonJobTest < Minitest::Test
132
132
  end
133
133
  end
134
134
 
135
- context '#perform' do
136
- should 'check directories and reschedule' do
135
+ describe '#perform' do
136
+ it 'check directories and reschedule' do
137
137
  dirmon_job = nil
138
138
  previous_file_names = {
139
139
  "#{@directory}/abc/file1" => 5,
@@ -153,7 +153,7 @@ class DirmonJobTest < Minitest::Test
153
153
  end
154
154
  assert dirmon_job.completed?, dirmon_job.status.inspect
155
155
 
156
- # It should have enqueued another instance to run in the future
156
+ # It it have enqueued another instance to run in the future
157
157
  assert_equal 1, RocketJob::Jobs::DirmonJob.count
158
158
  assert new_dirmon_job = RocketJob::Jobs::DirmonJob.last
159
159
  assert_equal false, dirmon_job.id == new_dirmon_job.id
@@ -165,7 +165,7 @@ class DirmonJobTest < Minitest::Test
165
165
  new_dirmon_job.destroy
166
166
  end
167
167
 
168
- should 'check directories and reschedule even on exception' do
168
+ it 'check directories and reschedule even on exception' do
169
169
  dirmon_job = nil
170
170
  RocketJob::Jobs::DirmonJob.destroy_all
171
171
  RocketJob::Jobs::DirmonJob.stub_any_instance(:check_directories, -> previous { raise RuntimeError.new("Oh no") }) do
@@ -177,7 +177,7 @@ class DirmonJobTest < Minitest::Test
177
177
  end
178
178
  assert dirmon_job.failed?, dirmon_job.status.inspect
179
179
 
180
- # It should have enqueued another instance to run in the future
180
+ # It it have enqueued another instance to run in the future
181
181
  assert_equal 2, RocketJob::Jobs::DirmonJob.count
182
182
  assert new_dirmon_job = RocketJob::Jobs::DirmonJob.last
183
183
  assert new_dirmon_job.run_at
@@ -188,9 +188,9 @@ class DirmonJobTest < Minitest::Test
188
188
  new_dirmon_job.destroy
189
189
  end
190
190
  end
191
- end
192
191
 
193
- def create_file(file_name, size)
194
- File.open(file_name, 'w') { |file| file.write('*' * size) }
192
+ def create_file(file_name, size)
193
+ File.open(file_name, 'w') { |file| file.write('*' * size) }
194
+ end
195
195
  end
196
196
  end
data/test/job_test.rb CHANGED
@@ -3,8 +3,8 @@ require_relative 'jobs/test_job'
3
3
 
4
4
  # Unit Test for RocketJob::Job
5
5
  class JobTest < Minitest::Test
6
- context RocketJob::Job do
7
- setup do
6
+ describe RocketJob::Job do
7
+ before do
8
8
  @worker = RocketJob::Worker.new
9
9
  @worker.started
10
10
  @description = 'Hello World'
@@ -21,19 +21,19 @@ class JobTest < Minitest::Test
21
21
  )
22
22
  end
23
23
 
24
- teardown do
24
+ after do
25
25
  @job.destroy if @job && !@job.new_record?
26
26
  @job2.destroy if @job2 && !@job2.new_record?
27
27
  end
28
28
 
29
- context '.config' do
30
- should 'support multiple databases' do
29
+ describe '.config' do
30
+ it 'support multiple databases' do
31
31
  assert_equal 'test_rocketjob', RocketJob::Job.collection.db.name
32
32
  end
33
33
  end
34
34
 
35
- context '#reload' do
36
- should 'handle hash' do
35
+ describe '#reload' do
36
+ it 'handle hash' do
37
37
  @job = Jobs::TestJob.new(
38
38
  description: @description,
39
39
  arguments: [{key: 'value'}],
@@ -53,8 +53,8 @@ class JobTest < Minitest::Test
53
53
  end
54
54
  end
55
55
 
56
- context '#save!' do
57
- should 'save a blank job' do
56
+ describe '#save!' do
57
+ it 'save a blank job' do
58
58
  @job.save!
59
59
  assert_nil @job.worker_name
60
60
  assert_nil @job.completed_at
@@ -72,15 +72,15 @@ class JobTest < Minitest::Test
72
72
  end
73
73
  end
74
74
 
75
- context '#status' do
76
- should 'return status for a queued job' do
75
+ describe '#status' do
76
+ it 'return status for a queued job' do
77
77
  assert_equal true, @job.queued?
78
78
  h = @job.status
79
79
  assert_equal :queued, h['state']
80
80
  assert_equal @description, h['description']
81
81
  end
82
82
 
83
- should 'return status for a failed job' do
83
+ it 'return status for a failed job' do
84
84
  @job.start!
85
85
  @job.fail!('worker:1234', 'oh no')
86
86
  assert_equal true, @job.failed?
@@ -91,7 +91,7 @@ class JobTest < Minitest::Test
91
91
  assert_equal 'oh no', h['exception']['message'], h
92
92
  end
93
93
 
94
- should 'mark user as reason for failure when not supplied' do
94
+ it 'mark user as reason for failure when not supplied' do
95
95
  @job.start!
96
96
  @job.fail!
97
97
  assert_equal true, @job.failed?
@@ -102,8 +102,8 @@ class JobTest < Minitest::Test
102
102
  end
103
103
  end
104
104
 
105
- context '#fail_with_exception!' do
106
- should 'fail with message' do
105
+ describe '#fail_with_exception!' do
106
+ it 'fail with message' do
107
107
  @job.start!
108
108
  @job.fail!('myworker:2323', 'oh no')
109
109
  assert_equal true, @job.failed?
@@ -114,7 +114,7 @@ class JobTest < Minitest::Test
114
114
  assert_equal 'oh no', h['exception']['message'], h
115
115
  end
116
116
 
117
- should 'fail with exception' do
117
+ it 'fail with exception' do
118
118
  @job.start!
119
119
  exception = nil
120
120
  begin
@@ -132,15 +132,15 @@ class JobTest < Minitest::Test
132
132
  end
133
133
  end
134
134
 
135
- context '#work' do
136
- should 'call default perform method' do
135
+ describe '#work' do
136
+ it 'call default perform method' do
137
137
  @job.start!
138
138
  assert_equal false, @job.work(@worker)
139
139
  assert_equal true, @job.completed?, @job.state
140
140
  assert_equal 2, Jobs::TestJob.result
141
141
  end
142
142
 
143
- should 'call specific method' do
143
+ it 'call specific method' do
144
144
  @job.perform_method = :sum
145
145
  @job.arguments = [23, 45]
146
146
  @job.start!
@@ -149,14 +149,14 @@ class JobTest < Minitest::Test
149
149
  assert_equal 68, Jobs::TestJob.result
150
150
  end
151
151
 
152
- should 'destroy on complete' do
152
+ it 'destroy on complete' do
153
153
  @job.destroy_on_complete = true
154
154
  @job.start!
155
155
  assert_equal false, @job.work(@worker)
156
156
  assert_equal nil, RocketJob::Job.find_by_id(@job.id)
157
157
  end
158
158
 
159
- should 'silence logging when log_level is set' do
159
+ it 'silence logging when log_level is set' do
160
160
  @job.destroy_on_complete = true
161
161
  @job.log_level = :warn
162
162
  @job.perform_method = :noisy_logger
@@ -169,7 +169,7 @@ class JobTest < Minitest::Test
169
169
  assert_equal false, logged
170
170
  end
171
171
 
172
- should 'raise logging when log_level is set' do
172
+ it 'raise logging when log_level is set' do
173
173
  @job.destroy_on_complete = true
174
174
  @job.log_level = :trace
175
175
  @job.perform_method = :debug_logging
@@ -185,7 +185,7 @@ class JobTest < Minitest::Test
185
185
  assert_equal false, logged
186
186
  end
187
187
 
188
- should 'call before and after' do
188
+ it 'call before and after' do
189
189
  named_parameters = {'counter' => 23}
190
190
  @job.perform_method = :event
191
191
  @job.arguments = [named_parameters]
@@ -197,35 +197,35 @@ class JobTest < Minitest::Test
197
197
 
198
198
  end
199
199
 
200
- context '.next_job' do
201
- setup do
200
+ describe '.next_job' do
201
+ before do
202
202
  RocketJob::Job.destroy_all
203
203
  end
204
204
 
205
- should 'return nil when no jobs available' do
205
+ it 'return nil when no jobs available' do
206
206
  assert_equal nil, RocketJob::Job.next_job(@worker.name)
207
207
  end
208
208
 
209
- should 'return the first job' do
209
+ it 'return the first job' do
210
210
  @job.save!
211
211
  assert job = RocketJob::Job.next_job(@worker.name), 'Failed to find job'
212
212
  assert_equal @job.id, job.id
213
213
  end
214
214
 
215
- should 'Ignore future dated jobs' do
215
+ it 'Ignore future dated jobs' do
216
216
  @job.run_at = Time.now + 1.hour
217
217
  @job.save!
218
218
  assert_equal nil, RocketJob::Job.next_job(@worker.name)
219
219
  end
220
220
 
221
- should 'Process future dated jobs when time is now' do
221
+ it 'Process future dated jobs when time is now' do
222
222
  @job.run_at = Time.now
223
223
  @job.save!
224
224
  assert job = RocketJob::Job.next_job(@worker.name), 'Failed to find future job'
225
225
  assert_equal @job.id, job.id
226
226
  end
227
227
 
228
- should 'Skip expired jobs' do
228
+ it 'Skip expired jobs' do
229
229
  count = RocketJob::Job.count
230
230
  @job.expires_at = Time.now - 100
231
231
  @job.save!
@@ -234,8 +234,8 @@ class JobTest < Minitest::Test
234
234
  end
235
235
  end
236
236
 
237
- context '#requeue!' do
238
- should 'requeue jobs from dead workers' do
237
+ describe '#requeue!' do
238
+ it 'requeue jobs from dead workers' do
239
239
  worker_name = 'server:12345'
240
240
  @job.worker_name = worker_name
241
241
  @job.start!
@@ -249,8 +249,8 @@ class JobTest < Minitest::Test
249
249
  end
250
250
  end
251
251
 
252
- context '#requeue' do
253
- should 'requeue jobs from dead workers' do
252
+ describe '#requeue' do
253
+ it 'requeue jobs from dead workers' do
254
254
  worker_name = 'server:12345'
255
255
  @job.worker_name = worker_name
256
256
  @job.start!
@@ -266,8 +266,8 @@ class JobTest < Minitest::Test
266
266
  end
267
267
  end
268
268
 
269
- context '.requeue_dead_worker' do
270
- should 'requeue jobs from dead workers' do
269
+ describe '.requeue_dead_worker' do
270
+ it 'requeue jobs from dead workers' do
271
271
  worker_name = 'server:12345'
272
272
  @job.worker_name = worker_name
273
273
  @job.start!
@@ -289,8 +289,8 @@ class JobTest < Minitest::Test
289
289
  end
290
290
  end
291
291
 
292
- context '#retry!' do
293
- should 'retry failed jobs' do
292
+ describe '#retry!' do
293
+ it 'retry failed jobs' do
294
294
  worker_name = 'server:12345'
295
295
  @job.worker_name = worker_name
296
296
  @job.start!
@@ -299,10 +299,12 @@ class JobTest < Minitest::Test
299
299
 
300
300
  @job.fail!(worker_name, 'oh no')
301
301
  assert @job.failed?
302
+ assert_equal 'oh no', @job.exception.message
302
303
 
303
304
  @job.retry!
304
305
  assert @job.queued?
305
306
  assert_equal nil, @job.worker_name
307
+ assert_equal nil, @job.exception
306
308
  end
307
309
  end
308
310
 
@@ -3,22 +3,22 @@ require_relative 'jobs/test_job'
3
3
 
4
4
  # Unit Test for RocketJob::Job
5
5
  class WorkerTest < Minitest::Test
6
- context RocketJob::Job do
6
+ describe RocketJob::Job do
7
7
  [true, false].each do |inline_mode|
8
- setup do
8
+ before do
9
9
  RocketJob::Config.inline_mode = inline_mode
10
10
 
11
11
  @worker = RocketJob::Worker.new
12
12
  @worker.started
13
13
  end
14
14
 
15
- teardown do
15
+ after do
16
16
  @job.destroy if @job && !@job.new_record?
17
17
  RocketJob::Config.inline_mode = false
18
18
  end
19
19
 
20
- context '.perform_later' do
21
- should "process single request (inline_mode=#{inline_mode})" do
20
+ describe '.perform_later' do
21
+ it "process single request (inline_mode=#{inline_mode})" do
22
22
  @job = Jobs::TestJob.perform_later(1) do |job|
23
23
  job.destroy_on_complete = false
24
24
  end
@@ -55,8 +55,8 @@ class WorkerTest < Minitest::Test
55
55
  end
56
56
  end
57
57
 
58
- context '.later' do
59
- should "process non default method (inline_mode=#{inline_mode})" do
58
+ describe '.later' do
59
+ it "process non default method (inline_mode=#{inline_mode})" do
60
60
  @job = Jobs::TestJob.later(:sum, 23, 45)
61
61
  @job.start
62
62
  assert_equal false, @job.work(@worker), @job.exception.inspect
@@ -65,16 +65,16 @@ class WorkerTest < Minitest::Test
65
65
  end
66
66
  end
67
67
 
68
- context '.perform_now' do
69
- should "process perform (inline_mode=#{inline_mode})" do
68
+ describe '.perform_now' do
69
+ it "process perform (inline_mode=#{inline_mode})" do
70
70
  @job = Jobs::TestJob.perform_now(5)
71
71
  assert_equal true, @job.completed?
72
72
  assert_equal 6, Jobs::TestJob.result
73
73
  end
74
74
  end
75
75
 
76
- context '.now' do
77
- should "process non default method (inline_mode=#{inline_mode})" do
76
+ describe '.now' do
77
+ it "process non default method (inline_mode=#{inline_mode})" do
78
78
  @job = Jobs::TestJob.now(:sum, 23, 45)
79
79
  assert_equal true, @job.completed?, @job.inspect
80
80
  assert_equal 68, Jobs::TestJob.result
@@ -83,4 +83,4 @@ class WorkerTest < Minitest::Test
83
83
 
84
84
  end
85
85
  end
86
- end
86
+ end
data/test/test_helper.rb CHANGED
@@ -4,7 +4,6 @@ require 'yaml'
4
4
  require 'minitest/autorun'
5
5
  require 'minitest/reporters'
6
6
  require 'minitest/stub_any_instance'
7
- require 'shoulda/context'
8
7
  require 'rocketjob'
9
8
  require 'awesome_print'
10
9
  require 'symmetric-encryption'
data/test/worker_test.rb CHANGED
@@ -3,8 +3,8 @@ require_relative 'jobs/test_job'
3
3
 
4
4
  # Unit Test for RocketJob::Worker
5
5
  class WorkerTest < Minitest::Test
6
- context RocketJob::Worker do
7
- setup do
6
+ describe RocketJob::Worker do
7
+ before do
8
8
  RocketJob::Config.instance.heartbeat_seconds = 0.1
9
9
  RocketJob::Config.instance.max_poll_seconds = 0.1
10
10
 
@@ -18,19 +18,19 @@ class WorkerTest < Minitest::Test
18
18
  )
19
19
  end
20
20
 
21
- teardown do
21
+ after do
22
22
  @job.destroy if @job && !@job.new_record?
23
23
  @worker.destroy if @worker && !@worker.new_record?
24
24
  end
25
25
 
26
- context '.config' do
27
- should 'support multiple databases' do
26
+ describe '.config' do
27
+ it 'support multiple databases' do
28
28
  assert_equal 'test_rocketjob', RocketJob::Job.collection.db.name
29
29
  end
30
30
  end
31
31
 
32
- context '#run' do
33
- should 'run a worker' do
32
+ describe '#run' do
33
+ it 'run a worker' do
34
34
  Thread.new do
35
35
  sleep 1
36
36
  @worker.stop!
@@ -40,12 +40,12 @@ class WorkerTest < Minitest::Test
40
40
  end
41
41
  end
42
42
 
43
- context '#zombie?' do
44
- setup do
43
+ describe '#zombie?' do
44
+ before do
45
45
  RocketJob::Config.instance.heartbeat_seconds = 1
46
46
  end
47
47
 
48
- should 'when not a zombie' do
48
+ it 'when not a zombie' do
49
49
  @worker.build_heartbeat(
50
50
  updated_at: 2.seconds.ago,
51
51
  current_threads: 3
@@ -56,7 +56,7 @@ class WorkerTest < Minitest::Test
56
56
  assert_equal true, @worker.zombie?(1)
57
57
  end
58
58
 
59
- should 'when a zombie' do
59
+ it 'when a zombie' do
60
60
  @worker.build_heartbeat(
61
61
  updated_at: 1.hour.ago,
62
62
  current_threads: 5
@@ -66,12 +66,12 @@ class WorkerTest < Minitest::Test
66
66
  end
67
67
  end
68
68
 
69
- context '.destroy_zombies' do
70
- setup do
69
+ describe '.destroy_zombies' do
70
+ before do
71
71
  RocketJob::Config.instance.heartbeat_seconds = 1
72
72
  end
73
73
 
74
- should 'when not a zombie' do
74
+ it 'when not a zombie' do
75
75
  @worker.build_heartbeat(
76
76
  updated_at: 2.seconds.ago,
77
77
  current_threads: 3
@@ -81,7 +81,7 @@ class WorkerTest < Minitest::Test
81
81
  assert_equal true, RocketJob::Worker.where(id: @worker.id).exist?
82
82
  end
83
83
 
84
- should 'when a zombie' do
84
+ it 'when a zombie' do
85
85
  @worker.build_heartbeat(
86
86
  updated_at: 10.seconds.ago,
87
87
  current_threads: 3
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rocketjob
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reid Morrison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-27 00:00:00.000000000 Z
11
+ date: 2015-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aasm
@@ -160,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
160
  version: '0'
161
161
  requirements: []
162
162
  rubyforge_project:
163
- rubygems_version: 2.4.8
163
+ rubygems_version: 2.4.5.1
164
164
  signing_key:
165
165
  specification_version: 4
166
166
  summary: Next generation background job processing system for Ruby, JRuby and Rubinius