resque_spec 0.12.6 → 0.12.7
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +20 -0
- data/lib/resque_spec/matchers.rb +38 -7
- data/lib/resque_spec/scheduler.rb +21 -1
- data/lib/resque_spec/version.rb +1 -1
- metadata +2 -2
data/README.md
CHANGED
@@ -208,6 +208,21 @@ You can also check the size of the schedule:
|
|
208
208
|
|
209
209
|
(And I take note of the `before` block that is calling `reset!` for every spec)
|
210
210
|
|
211
|
+
You can explicitly specify the queue when using enqueue_at_with_queue and
|
212
|
+
enqueue_in_with_queue:
|
213
|
+
|
214
|
+
describe "#recalculate_in_future" do
|
215
|
+
before do
|
216
|
+
ResqueSpec.reset!
|
217
|
+
end
|
218
|
+
|
219
|
+
it "adds person.calculate to the :future queue" do
|
220
|
+
person.recalculate_in_future
|
221
|
+
|
222
|
+
Person.should have_schedule_size_of(1).queue(:future)
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
211
226
|
And I might write this as a Cucumber step
|
212
227
|
|
213
228
|
Then /the (\w?) has (\w?) scheduled/ do |thing, method|
|
@@ -223,6 +238,10 @@ Then I write some code to make it pass:
|
|
223
238
|
def recalculate
|
224
239
|
Resque.enqueue_at(Time.now + 3600, Person, id, :calculate)
|
225
240
|
end
|
241
|
+
|
242
|
+
def recalculate_in_future
|
243
|
+
Resque.enqueue_at_with_queue(:future, Time.now + 3600, Person, id, :calculate)
|
244
|
+
end
|
226
245
|
end
|
227
246
|
|
228
247
|
Performing Jobs in Specs
|
@@ -350,6 +369,7 @@ Contributors
|
|
350
369
|
* @opinel (Frank Wambutt) :Fix DST problem in `have\_scheduled`
|
351
370
|
* @lukemelia (Luke Melia) :Add `times` chained matcher
|
352
371
|
* @heelhook (Pablo Fernandez) :Add `have_queue_size_of_at_least` and `have_schedule_size_of_at_least` matchers
|
372
|
+
* @k1w1 :Add support for enqueue_at_with_queue/enqueue_in_with_queue
|
353
373
|
|
354
374
|
Copyright
|
355
375
|
=========
|
data/lib/resque_spec/matchers.rb
CHANGED
@@ -104,7 +104,33 @@ RSpec::Matchers.define :have_queue_size_of_at_least do |size|
|
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
107
|
+
module ScheduleQueueHelper
|
108
|
+
def self.extended(klass)
|
109
|
+
klass.instance_eval do
|
110
|
+
self.queue_name = nil
|
111
|
+
chain :queue do |queue_name|
|
112
|
+
self.queue_name = queue_name
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
private
|
118
|
+
|
119
|
+
attr_accessor :queue_name
|
120
|
+
|
121
|
+
def schedule_queue_for(actual)
|
122
|
+
if @queue_name
|
123
|
+
ResqueSpec.queue_by_name(@queue_name)
|
124
|
+
else
|
125
|
+
ResqueSpec.schedule_for(actual)
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
end
|
130
|
+
|
107
131
|
RSpec::Matchers.define :have_scheduled do |*expected_args|
|
132
|
+
extend ScheduleQueueHelper
|
133
|
+
|
108
134
|
chain :at do |timestamp|
|
109
135
|
@interval = nil
|
110
136
|
@time = timestamp
|
@@ -118,7 +144,7 @@ RSpec::Matchers.define :have_scheduled do |*expected_args|
|
|
118
144
|
end
|
119
145
|
|
120
146
|
match do |actual|
|
121
|
-
|
147
|
+
schedule_queue_for(actual).any? do |entry|
|
122
148
|
class_matches = entry[:class].to_s == actual.to_s
|
123
149
|
args_match = expected_args == entry[:args]
|
124
150
|
|
@@ -148,12 +174,13 @@ RSpec::Matchers.define :have_scheduled do |*expected_args|
|
|
148
174
|
end
|
149
175
|
|
150
176
|
RSpec::Matchers.define :have_scheduled_at do |*expected_args|
|
177
|
+
extend ScheduleQueueHelper
|
151
178
|
warn "DEPRECATION WARNING: have_scheduled_at(time, *args) is deprecated and will be removed in future. Please use have_scheduled(*args).at(time) instead."
|
152
179
|
|
153
180
|
match do |actual|
|
154
181
|
time = expected_args.first
|
155
182
|
other_args = expected_args[1..-1]
|
156
|
-
|
183
|
+
schedule_queue_for(actual).any? { |entry| entry[:class].to_s == actual.to_s && entry[:time] == time && other_args == entry[:args] }
|
157
184
|
end
|
158
185
|
|
159
186
|
failure_message_for_should do |actual|
|
@@ -170,12 +197,14 @@ RSpec::Matchers.define :have_scheduled_at do |*expected_args|
|
|
170
197
|
end
|
171
198
|
|
172
199
|
RSpec::Matchers.define :have_schedule_size_of do |size|
|
200
|
+
extend ScheduleQueueHelper
|
201
|
+
|
173
202
|
match do |actual|
|
174
|
-
|
203
|
+
schedule_queue_for(actual).size == size
|
175
204
|
end
|
176
205
|
|
177
206
|
failure_message_for_should do |actual|
|
178
|
-
"expected that #{actual} would have #{size} scheduled entries, but got #{
|
207
|
+
"expected that #{actual} would have #{size} scheduled entries, but got #{schedule_queue_for(actual).size} instead"
|
179
208
|
end
|
180
209
|
|
181
210
|
failure_message_for_should_not do |actual|
|
@@ -188,12 +217,14 @@ RSpec::Matchers.define :have_schedule_size_of do |size|
|
|
188
217
|
end
|
189
218
|
|
190
219
|
RSpec::Matchers.define :have_schedule_size_of_at_least do |size|
|
220
|
+
extend ScheduleQueueHelper
|
221
|
+
|
191
222
|
match do |actual|
|
192
|
-
|
223
|
+
schedule_queue_for(actual).size >= size
|
193
224
|
end
|
194
225
|
|
195
226
|
failure_message_for_should do |actual|
|
196
|
-
"expected that #{actual} would have at least #{size} scheduled entries, but got #{
|
227
|
+
"expected that #{actual} would have at least #{size} scheduled entries, but got #{schedule_queue_for(actual).size} instead"
|
197
228
|
end
|
198
229
|
|
199
230
|
failure_message_for_should_not do |actual|
|
@@ -203,4 +234,4 @@ RSpec::Matchers.define :have_schedule_size_of_at_least do |size|
|
|
203
234
|
description do
|
204
235
|
"have schedule size of #{size}"
|
205
236
|
end
|
206
|
-
end
|
237
|
+
end
|
@@ -21,12 +21,24 @@ module ResqueSpec
|
|
21
21
|
ResqueSpec.enqueue_at(time, klass, *args)
|
22
22
|
end
|
23
23
|
|
24
|
+
def enqueue_at_with_queue(queue, time, klass, *args)
|
25
|
+
return enqueue_at_with_queue_without_resque_spec(time, klass, *args) if ResqueSpec.disable_ext && respond_to?(:enqueue_at_with_queue_without_resque_spec)
|
26
|
+
|
27
|
+
ResqueSpec.enqueue_at_with_queue(queue, time, klass, *args)
|
28
|
+
end
|
29
|
+
|
24
30
|
def enqueue_in(time, klass, *args)
|
25
31
|
return enqueue_in_without_resque_spec(time, klass, *args) if ResqueSpec.disable_ext && respond_to?(:enqueue_in_without_resque_spec)
|
26
32
|
|
27
33
|
ResqueSpec.enqueue_in(time, klass, *args)
|
28
34
|
end
|
29
35
|
|
36
|
+
def enqueue_in_with_queue(queue, time, klass, *args)
|
37
|
+
return enqueue_in_with_queue_without_resque_spec(time, klass, *args) if ResqueSpec.disable_ext && respond_to?(:enqueue_in_with_queue_without_resque_spec)
|
38
|
+
|
39
|
+
ResqueSpec.enqueue_in_with_queue(queue, time, klass, *args)
|
40
|
+
end
|
41
|
+
|
30
42
|
def remove_delayed(klass, *args)
|
31
43
|
return remove_delayed_without_resque_spec(klass, *args) if ResqueSpec.disable_ext && respond_to?(:remove_delayed_without_resque_spec)
|
32
44
|
|
@@ -35,14 +47,22 @@ module ResqueSpec
|
|
35
47
|
end
|
36
48
|
|
37
49
|
def enqueue_at(time, klass, *args)
|
50
|
+
enqueue_at_with_queue(schedule_queue_name(klass), time, klass, *args)
|
51
|
+
end
|
52
|
+
|
53
|
+
def enqueue_at_with_queue(queue, time, klass, *args)
|
38
54
|
is_time?(time)
|
39
|
-
perform_or_store(
|
55
|
+
perform_or_store(queue, :class => klass.to_s, :time => time, :stored_at => Time.now, :args => args)
|
40
56
|
end
|
41
57
|
|
42
58
|
def enqueue_in(time, klass, *args)
|
43
59
|
enqueue_at(Time.now + time, klass, *args)
|
44
60
|
end
|
45
61
|
|
62
|
+
def enqueue_in_with_queue(queue, time, klass, *args)
|
63
|
+
enqueue_at_with_queue(queue, Time.now + time, klass, *args)
|
64
|
+
end
|
65
|
+
|
46
66
|
def remove_delayed(klass, *args)
|
47
67
|
sched_queue = queue_by_name(schedule_queue_name(klass))
|
48
68
|
count_before_remove = sched_queue.length
|
data/lib/resque_spec/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resque_spec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.12.
|
4
|
+
version: 0.12.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: resque
|