dynflow 0.7.8 → 0.7.9
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.
- checksums.yaml +15 -0
- data/doc/pages/source/documentation/index.md +1 -1
- data/lib/dynflow/action.rb +6 -0
- data/lib/dynflow/testing/assertions.rb +7 -3
- data/lib/dynflow/version.rb +1 -1
- data/lib/dynflow/web_console.rb +1 -1
- data/test/action_test.rb +26 -0
- data/test/testing_test.rb +5 -5
- data/web/views/flow_step.erb +1 -1
- metadata +5 -29
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
OTk4YWEzYzI4ZGUxYmEzYmRiZmYwZGUwN2I3ZjgzY2NlNmNjMDQ2OA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
OTFjZmY1OGE4MDI3MmIwY2YyYTIwYjZiOWI1YjljMTNiN2JhN2FhMA==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZGRlZGI5Njc4ZDA4ZmFkNzMxMTdkMGM0M2E5Y2ZlNjljYjUxNzc5MDY0ZWY5
|
10
|
+
MWJmNWQzYjZjOGVhMTM2ODRiZjZlM2JkMTZhY2MwMzUwNDM4M2FlN2VmZjA3
|
11
|
+
ODIwODIzYjdkZGE2NGI1NGYzNzEzODQ4OTdjOWQyMTc0ZTI5YmQ=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
OTllZWM0M2U2M2ZiN2I1MjA0MTQzM2ZlYzdiNzUxMzZjMTg2Mzg5ODRiOTcw
|
14
|
+
MWQwNTdmMjYxN2Q3ZWFlOGRmOTVmZjJhNjIyYTNlMjZiNWI4NTc2ZWNlODg4
|
15
|
+
MTUyNmMwNGY5MWFiZjc4MTU5YWRjMmEwYTllNzcwM2QzMWMxNDE=
|
@@ -486,7 +486,7 @@ def plan
|
|
486
486
|
# so it's added to the above sequence to be executed as 4th.
|
487
487
|
action1 = plan_action AnAction, actions_executed_sequentially.last.output
|
488
488
|
|
489
|
-
# It's
|
489
|
+
# It's planned in default plan's concurrency scope it's executed concurrently
|
490
490
|
# to about four actions.
|
491
491
|
action2 = plan_action AnAction
|
492
492
|
end
|
data/lib/dynflow/action.rb
CHANGED
@@ -246,6 +246,12 @@ module Dynflow
|
|
246
246
|
@step.state
|
247
247
|
end
|
248
248
|
|
249
|
+
# @override to define more descriptive state information for the
|
250
|
+
# action: used in Dynflow console
|
251
|
+
def humanized_state
|
252
|
+
state.to_s
|
253
|
+
end
|
254
|
+
|
249
255
|
def error
|
250
256
|
phase! Executable
|
251
257
|
@step.error
|
@@ -3,7 +3,7 @@ module Dynflow
|
|
3
3
|
module Assertions
|
4
4
|
# assert that +assert_actioned_plan+ was planned by +action+ with arguments +plan_input+
|
5
5
|
# alternatively plan-input can be asserted with +block+
|
6
|
-
def
|
6
|
+
def assert_action_planned_with(action, planned_action_class, *plan_input, &block)
|
7
7
|
found_classes = assert_action_planed(action, planned_action_class)
|
8
8
|
found = found_classes.select do |a|
|
9
9
|
if plan_input.empty?
|
@@ -20,7 +20,7 @@ module Dynflow
|
|
20
20
|
end
|
21
21
|
|
22
22
|
# assert that +assert_actioned_plan+ was planned by +action+
|
23
|
-
def
|
23
|
+
def assert_action_planned(action, planned_action_class)
|
24
24
|
Match! action.phase, Action::Plan
|
25
25
|
Match! action.state, :success
|
26
26
|
found = action.execution_plan.planned_plan_steps.
|
@@ -30,7 +30,7 @@ module Dynflow
|
|
30
30
|
found
|
31
31
|
end
|
32
32
|
|
33
|
-
def
|
33
|
+
def refute_action_planned(action, planned_action_class)
|
34
34
|
Match! action.phase, Action::Plan
|
35
35
|
Match! action.state, :success
|
36
36
|
found = action.execution_plan.planned_plan_steps.
|
@@ -40,6 +40,10 @@ module Dynflow
|
|
40
40
|
found
|
41
41
|
end
|
42
42
|
|
43
|
+
alias :assert_action_planed_with :assert_action_planned_with
|
44
|
+
alias :assert_action_planed :assert_action_planned
|
45
|
+
alias :refute_action_planed :refute_action_planned
|
46
|
+
|
43
47
|
# assert that +action+ has run-phase planned
|
44
48
|
def assert_run_phase(action, input = nil, &block)
|
45
49
|
Match! action.phase, Action::Plan
|
data/lib/dynflow/version.rb
CHANGED
data/lib/dynflow/web_console.rb
CHANGED
data/test/action_test.rb
CHANGED
@@ -91,6 +91,32 @@ module Dynflow
|
|
91
91
|
end
|
92
92
|
end
|
93
93
|
|
94
|
+
describe '#humanized_state' do
|
95
|
+
include WorldInstance
|
96
|
+
include Testing
|
97
|
+
|
98
|
+
class ActionWithHumanizedState < Dynflow::Action
|
99
|
+
def run(event = nil)
|
100
|
+
suspend unless event
|
101
|
+
end
|
102
|
+
|
103
|
+
def humanized_state
|
104
|
+
case state
|
105
|
+
when :suspended
|
106
|
+
"waiting"
|
107
|
+
else
|
108
|
+
super
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
it 'is customizable from an action' do
|
114
|
+
plan = create_and_plan_action ActionWithHumanizedState, {}
|
115
|
+
action = run_action(plan)
|
116
|
+
action.humanized_state.must_equal "waiting"
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
94
120
|
describe 'polling action' do
|
95
121
|
CWE = Support::CodeWorkflowExample
|
96
122
|
include Dynflow::Testing
|
data/test/testing_test.rb
CHANGED
@@ -20,8 +20,8 @@ module Dynflow
|
|
20
20
|
action.state.must_equal :success
|
21
21
|
assert_run_phase action
|
22
22
|
assert_finalize_phase action
|
23
|
-
|
24
|
-
|
23
|
+
assert_action_planned action, CWE::DummySuspended
|
24
|
+
refute_action_planned action, CWE::DummyAnotherTrigger
|
25
25
|
end
|
26
26
|
|
27
27
|
specify 'stub_plan_action' do
|
@@ -103,11 +103,11 @@ module Dynflow
|
|
103
103
|
refute_run_phase action
|
104
104
|
refute_finalize_phase action
|
105
105
|
|
106
|
-
|
107
|
-
|
106
|
+
assert_action_planned action, CWE::Ci
|
107
|
+
assert_action_planned_with action, CWE::Review do |_, name, _|
|
108
108
|
name == 'Morfeus'
|
109
109
|
end
|
110
|
-
|
110
|
+
assert_action_planned_with action, CWE::Review, sha, 'Neo', true
|
111
111
|
end
|
112
112
|
end
|
113
113
|
|
data/web/views/flow_step.erb
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
<span class="step-label">
|
8
8
|
<%= h(step.id) %>: <%= h(step.action_class.name) %>
|
9
|
-
(<%= h(
|
9
|
+
(<%= h(action.humanized_state) %>)
|
10
10
|
<% unless step.state == :pending %>
|
11
11
|
[ <%= duration_to_s(step.real_time) %> / <%= duration_to_s(step.execution_time) %> ]
|
12
12
|
<% end %>
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dynflow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
5
|
-
prerelease:
|
4
|
+
version: 0.7.9
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Ivan Necas
|
@@ -10,12 +9,11 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2015-
|
12
|
+
date: 2015-06-19 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: activesupport
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
18
|
- - ! '>='
|
21
19
|
- !ruby/object:Gem::Version
|
@@ -23,7 +21,6 @@ dependencies:
|
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
25
|
- - ! '>='
|
29
26
|
- !ruby/object:Gem::Version
|
@@ -31,7 +28,6 @@ dependencies:
|
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: multi_json
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
32
|
- - ! '>='
|
37
33
|
- !ruby/object:Gem::Version
|
@@ -39,7 +35,6 @@ dependencies:
|
|
39
35
|
type: :runtime
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
39
|
- - ! '>='
|
45
40
|
- !ruby/object:Gem::Version
|
@@ -47,7 +42,6 @@ dependencies:
|
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: apipie-params
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
46
|
- - ! '>='
|
53
47
|
- !ruby/object:Gem::Version
|
@@ -55,7 +49,6 @@ dependencies:
|
|
55
49
|
type: :runtime
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
53
|
- - ! '>='
|
61
54
|
- !ruby/object:Gem::Version
|
@@ -63,7 +56,6 @@ dependencies:
|
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: algebrick
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
60
|
- - ~>
|
69
61
|
- !ruby/object:Gem::Version
|
@@ -71,7 +63,6 @@ dependencies:
|
|
71
63
|
type: :runtime
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
67
|
- - ~>
|
77
68
|
- !ruby/object:Gem::Version
|
@@ -79,7 +70,6 @@ dependencies:
|
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: rack-test
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
74
|
- - ! '>='
|
85
75
|
- !ruby/object:Gem::Version
|
@@ -87,7 +77,6 @@ dependencies:
|
|
87
77
|
type: :development
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
81
|
- - ! '>='
|
93
82
|
- !ruby/object:Gem::Version
|
@@ -95,7 +84,6 @@ dependencies:
|
|
95
84
|
- !ruby/object:Gem::Dependency
|
96
85
|
name: minitest
|
97
86
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
87
|
requirements:
|
100
88
|
- - ! '>='
|
101
89
|
- !ruby/object:Gem::Version
|
@@ -103,7 +91,6 @@ dependencies:
|
|
103
91
|
type: :development
|
104
92
|
prerelease: false
|
105
93
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
94
|
requirements:
|
108
95
|
- - ! '>='
|
109
96
|
- !ruby/object:Gem::Version
|
@@ -111,7 +98,6 @@ dependencies:
|
|
111
98
|
- !ruby/object:Gem::Dependency
|
112
99
|
name: minitest-reporters
|
113
100
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
101
|
requirements:
|
116
102
|
- - ! '>='
|
117
103
|
- !ruby/object:Gem::Version
|
@@ -119,7 +105,6 @@ dependencies:
|
|
119
105
|
type: :development
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
108
|
requirements:
|
124
109
|
- - ! '>='
|
125
110
|
- !ruby/object:Gem::Version
|
@@ -127,7 +112,6 @@ dependencies:
|
|
127
112
|
- !ruby/object:Gem::Dependency
|
128
113
|
name: activerecord
|
129
114
|
requirement: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
115
|
requirements:
|
132
116
|
- - ! '>='
|
133
117
|
- !ruby/object:Gem::Version
|
@@ -135,7 +119,6 @@ dependencies:
|
|
135
119
|
type: :development
|
136
120
|
prerelease: false
|
137
121
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
122
|
requirements:
|
140
123
|
- - ! '>='
|
141
124
|
- !ruby/object:Gem::Version
|
@@ -143,7 +126,6 @@ dependencies:
|
|
143
126
|
- !ruby/object:Gem::Dependency
|
144
127
|
name: sequel
|
145
128
|
requirement: !ruby/object:Gem::Requirement
|
146
|
-
none: false
|
147
129
|
requirements:
|
148
130
|
- - ! '>='
|
149
131
|
- !ruby/object:Gem::Version
|
@@ -151,7 +133,6 @@ dependencies:
|
|
151
133
|
type: :development
|
152
134
|
prerelease: false
|
153
135
|
version_requirements: !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
136
|
requirements:
|
156
137
|
- - ! '>='
|
157
138
|
- !ruby/object:Gem::Version
|
@@ -159,7 +140,6 @@ dependencies:
|
|
159
140
|
- !ruby/object:Gem::Dependency
|
160
141
|
name: sqlite3
|
161
142
|
requirement: !ruby/object:Gem::Requirement
|
162
|
-
none: false
|
163
143
|
requirements:
|
164
144
|
- - ! '>='
|
165
145
|
- !ruby/object:Gem::Version
|
@@ -167,7 +147,6 @@ dependencies:
|
|
167
147
|
type: :development
|
168
148
|
prerelease: false
|
169
149
|
version_requirements: !ruby/object:Gem::Requirement
|
170
|
-
none: false
|
171
150
|
requirements:
|
172
151
|
- - ! '>='
|
173
152
|
- !ruby/object:Gem::Version
|
@@ -175,7 +154,6 @@ dependencies:
|
|
175
154
|
- !ruby/object:Gem::Dependency
|
176
155
|
name: sinatra
|
177
156
|
requirement: !ruby/object:Gem::Requirement
|
178
|
-
none: false
|
179
157
|
requirements:
|
180
158
|
- - ! '>='
|
181
159
|
- !ruby/object:Gem::Version
|
@@ -183,7 +161,6 @@ dependencies:
|
|
183
161
|
type: :development
|
184
162
|
prerelease: false
|
185
163
|
version_requirements: !ruby/object:Gem::Requirement
|
186
|
-
none: false
|
187
164
|
requirements:
|
188
165
|
- - ! '>='
|
189
166
|
- !ruby/object:Gem::Version
|
@@ -466,27 +443,26 @@ files:
|
|
466
443
|
homepage: http://github.com/Dynflow/dynflow
|
467
444
|
licenses:
|
468
445
|
- MIT
|
446
|
+
metadata: {}
|
469
447
|
post_install_message:
|
470
448
|
rdoc_options: []
|
471
449
|
require_paths:
|
472
450
|
- lib
|
473
451
|
required_ruby_version: !ruby/object:Gem::Requirement
|
474
|
-
none: false
|
475
452
|
requirements:
|
476
453
|
- - ! '>='
|
477
454
|
- !ruby/object:Gem::Version
|
478
455
|
version: 1.9.3
|
479
456
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
480
|
-
none: false
|
481
457
|
requirements:
|
482
458
|
- - ! '>='
|
483
459
|
- !ruby/object:Gem::Version
|
484
460
|
version: '0'
|
485
461
|
requirements: []
|
486
462
|
rubyforge_project:
|
487
|
-
rubygems_version:
|
463
|
+
rubygems_version: 2.4.8
|
488
464
|
signing_key:
|
489
|
-
specification_version:
|
465
|
+
specification_version: 4
|
490
466
|
summary: DYNamic workFLOW engine
|
491
467
|
test_files:
|
492
468
|
- test/action_test.rb
|