resque_jobs_tree 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/resque_jobs_tree/node.rb +7 -4
- data/lib/resque_jobs_tree/version.rb +1 -1
- data/test/test_helper.rb +19 -0
- data/test/tree_test.rb +11 -1
- metadata +1 -1
@@ -58,14 +58,17 @@ class ResqueJobsTree::Node
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def find_node_by_name _name
|
61
|
-
|
62
|
-
|
61
|
+
if name == _name.to_s
|
62
|
+
self
|
63
|
+
else
|
64
|
+
node_childs.inject(nil){|result,node| result ||= node.find_node_by_name _name }
|
65
|
+
end
|
63
66
|
end
|
64
67
|
|
65
68
|
def validate!
|
66
|
-
if childs.kind_of?(Proc) && node_childs.empty?
|
69
|
+
if (childs.kind_of?(Proc) && node_childs.empty?) || (childs.nil? && !node_childs.empty?)
|
67
70
|
raise ResqueJobsTree::NodeInvalid,
|
68
|
-
"node `#{name}` from tree `#{tree.name}` defines childs
|
71
|
+
"node `#{name}` from tree `#{tree.name}` should defines childs and child nodes"
|
69
72
|
end
|
70
73
|
unless perform.kind_of? Proc
|
71
74
|
raise ResqueJobsTree::NodeInvalid,
|
data/test/test_helper.rb
CHANGED
@@ -81,4 +81,23 @@ class MiniTest::Unit::TestCase
|
|
81
81
|
Resque.redis
|
82
82
|
end
|
83
83
|
|
84
|
+
def create_nested_tree
|
85
|
+
@tree = ResqueJobsTree::Factory.create :tree1 do
|
86
|
+
root :job1 do
|
87
|
+
perform { raise 'job1' }
|
88
|
+
childs { [ [:job2] ] }
|
89
|
+
node :job2, continue_on_failure: true do
|
90
|
+
perform { raise 'job2' }
|
91
|
+
childs { [ [:job3], [:job4] ] }
|
92
|
+
node :job3, async: true do
|
93
|
+
perform {}
|
94
|
+
end
|
95
|
+
node :job4, continue_on_failure: true do
|
96
|
+
perform { raise 'job4' }
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
84
103
|
end
|
data/test/tree_test.rb
CHANGED
@@ -25,7 +25,9 @@ class TreeTest < MiniTest::Unit::TestCase
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def test_find_node_by_name
|
28
|
-
assert_equal @tree.find_node_by_name('job2').name
|
28
|
+
assert_equal 'job2', @tree.find_node_by_name('job2').name
|
29
|
+
create_nested_tree
|
30
|
+
assert_equal 'job4', @tree.find_node_by_name('job4').name
|
29
31
|
end
|
30
32
|
|
31
33
|
def test_launch
|
@@ -58,6 +60,14 @@ class TreeTest < MiniTest::Unit::TestCase
|
|
58
60
|
@tree.launch Model.new(1)
|
59
61
|
end
|
60
62
|
|
63
|
+
def test_nested_tree
|
64
|
+
create_nested_tree
|
65
|
+
@tree.launch
|
66
|
+
assert_raises NoMethodError do
|
67
|
+
Resque.enqueue_to 'tree1', ResqueJobsTree::Job, 'tree1', 'job3'
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
61
71
|
private
|
62
72
|
|
63
73
|
def create_tree_with_on_failure_hook
|