wireframe-resque_unit 0.4.1.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/README.md +130 -0
- data/lib/resque_unit.rb +13 -0
- data/lib/resque_unit/assertions.rb +81 -0
- data/lib/resque_unit/errors.rb +17 -0
- data/lib/resque_unit/helpers.rb +57 -0
- data/lib/resque_unit/plugin.rb +70 -0
- data/lib/resque_unit/resque.rb +224 -0
- data/lib/resque_unit/scheduler.rb +41 -0
- data/lib/resque_unit/scheduler_assertions.rb +49 -0
- data/lib/resque_unit_scheduler.rb +4 -0
- data/test/resque_test.rb +61 -0
- data/test/resque_unit_scheduler_test.rb +201 -0
- data/test/resque_unit_test.rb +460 -0
- data/test/sample_jobs.rb +167 -0
- data/test/test_helper.rb +9 -0
- metadata +96 -0
data/test/sample_jobs.rb
ADDED
@@ -0,0 +1,167 @@
|
|
1
|
+
class LowPriorityJob
|
2
|
+
@queue = :low
|
3
|
+
@run = false
|
4
|
+
def self.perform
|
5
|
+
self.run = true
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.run?
|
9
|
+
@run
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.run=(value)
|
13
|
+
@run = value
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class MediumPriorityJob
|
18
|
+
def self.queue
|
19
|
+
:medium
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class HighPriorityJob
|
24
|
+
@queue = :high
|
25
|
+
|
26
|
+
def self.perform
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class JobWithArguments
|
31
|
+
@queue = :medium
|
32
|
+
|
33
|
+
def self.perform(num, text, hash)
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
class JobThatCreatesANewJob
|
39
|
+
@queue = :spawn
|
40
|
+
|
41
|
+
def self.perform
|
42
|
+
Resque.enqueue(LowPriorityJob)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
class JobThatDoesNotSpecifyAQueue
|
47
|
+
|
48
|
+
def self.perform
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
module HooksMethods
|
53
|
+
def after_enqueue_mark(*args)
|
54
|
+
markers[:after_enqueue] = true
|
55
|
+
end
|
56
|
+
|
57
|
+
def before_enqueue_mark(*args)
|
58
|
+
markers[:before_enqueue] = true
|
59
|
+
end
|
60
|
+
|
61
|
+
def after_perform_mark(*args)
|
62
|
+
markers[:after] = true
|
63
|
+
end
|
64
|
+
|
65
|
+
def failure_perform_mark(*args)
|
66
|
+
markers[:failure] = true
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
class JobWithHooks
|
71
|
+
extend HooksMethods
|
72
|
+
|
73
|
+
@queue = :with_hooks
|
74
|
+
@markers = {}
|
75
|
+
|
76
|
+
def self.perform
|
77
|
+
raise 'FAIL!' if @will_fail
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.markers
|
81
|
+
@markers
|
82
|
+
end
|
83
|
+
|
84
|
+
def self.clear_markers
|
85
|
+
@markers = {}
|
86
|
+
end
|
87
|
+
|
88
|
+
def self.before_perform_mark(*args)
|
89
|
+
markers[:before] = true
|
90
|
+
end
|
91
|
+
|
92
|
+
def self.around_perform_mark(*args)
|
93
|
+
markers[:around] = true
|
94
|
+
if @dont_perform
|
95
|
+
raise Resque::Job::DontPerform
|
96
|
+
else
|
97
|
+
yield
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
def self.make_it_fail(&block)
|
102
|
+
@will_fail = true
|
103
|
+
yield
|
104
|
+
ensure
|
105
|
+
@will_fail = false
|
106
|
+
end
|
107
|
+
|
108
|
+
def self.make_it_dont_perform(&block)
|
109
|
+
@dont_perform = true
|
110
|
+
ensure
|
111
|
+
@dont_perform = false
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
class JobWithHooksBeforeBlocks < JobWithHooks
|
116
|
+
@queue = :with_hooks
|
117
|
+
def self.before_enqueue_block_enqueueing
|
118
|
+
return false
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
class JobWithHooksWithoutBefore
|
123
|
+
extend HooksMethods
|
124
|
+
|
125
|
+
@queue = :with_hooks
|
126
|
+
@markers = {}
|
127
|
+
|
128
|
+
def self.markers
|
129
|
+
@markers
|
130
|
+
end
|
131
|
+
|
132
|
+
def self.clear_markers
|
133
|
+
@markers = {}
|
134
|
+
end
|
135
|
+
|
136
|
+
def self.perform; end
|
137
|
+
|
138
|
+
def self.around_perform_mark(*args)
|
139
|
+
markers[:around] = true
|
140
|
+
if @dont_perform
|
141
|
+
raise Resque::Job::DontPerform
|
142
|
+
else
|
143
|
+
yield
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
class JobWithHooksWithoutAround
|
149
|
+
extend HooksMethods
|
150
|
+
|
151
|
+
@queue = :with_hooks
|
152
|
+
@markers = {}
|
153
|
+
|
154
|
+
def self.markers
|
155
|
+
@markers
|
156
|
+
end
|
157
|
+
|
158
|
+
def self.clear_markers
|
159
|
+
@markers = {}
|
160
|
+
end
|
161
|
+
|
162
|
+
def self.perform; end
|
163
|
+
|
164
|
+
def self.before_perform_mark(*args)
|
165
|
+
markers[:before] = true
|
166
|
+
end
|
167
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'shoulda'
|
3
|
+
require 'resque_unit'
|
4
|
+
require 'sample_jobs'
|
5
|
+
|
6
|
+
# Fix shoulda under 1.9.2. See https://github.com/thoughtbot/shoulda/issues/issue/117
|
7
|
+
unless defined?(Test::Unit::AssertionFailedError)
|
8
|
+
Test::Unit::AssertionFailedError = MiniTest::Assertion
|
9
|
+
end
|
metadata
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: wireframe-resque_unit
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.1.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Justin Weiss
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-03-06 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: json
|
16
|
+
requirement: &2155702920 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.4.6
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *2155702920
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: bundler
|
27
|
+
requirement: &2155702520 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *2155702520
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: shoulda
|
38
|
+
requirement: &2155702060 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *2155702060
|
47
|
+
description:
|
48
|
+
email: justin@uberweiss.org
|
49
|
+
executables: []
|
50
|
+
extensions: []
|
51
|
+
extra_rdoc_files:
|
52
|
+
- README.md
|
53
|
+
files:
|
54
|
+
- lib/resque_unit/assertions.rb
|
55
|
+
- lib/resque_unit/errors.rb
|
56
|
+
- lib/resque_unit/helpers.rb
|
57
|
+
- lib/resque_unit/plugin.rb
|
58
|
+
- lib/resque_unit/resque.rb
|
59
|
+
- lib/resque_unit/scheduler.rb
|
60
|
+
- lib/resque_unit/scheduler_assertions.rb
|
61
|
+
- lib/resque_unit.rb
|
62
|
+
- lib/resque_unit_scheduler.rb
|
63
|
+
- test/resque_test.rb
|
64
|
+
- test/resque_unit_scheduler_test.rb
|
65
|
+
- test/resque_unit_test.rb
|
66
|
+
- test/sample_jobs.rb
|
67
|
+
- test/test_helper.rb
|
68
|
+
- README.md
|
69
|
+
homepage: http://github.com/justinweiss/resque_unit
|
70
|
+
licenses: []
|
71
|
+
post_install_message:
|
72
|
+
rdoc_options: []
|
73
|
+
require_paths:
|
74
|
+
- lib
|
75
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
76
|
+
none: false
|
77
|
+
requirements:
|
78
|
+
- - ! '>='
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '0'
|
81
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - ! '>='
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
87
|
+
requirements: []
|
88
|
+
rubyforge_project:
|
89
|
+
rubygems_version: 1.8.15
|
90
|
+
signing_key:
|
91
|
+
specification_version: 3
|
92
|
+
summary: Test::Unit support for resque job queueing
|
93
|
+
test_files:
|
94
|
+
- test/resque_test.rb
|
95
|
+
- test/resque_unit_scheduler_test.rb
|
96
|
+
- test/resque_unit_test.rb
|