dynflow 0.7.8 → 0.7.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -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 planed in default plan's concurrency scope it's executed concurrently
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
@@ -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 assert_action_planed_with(action, planned_action_class, *plan_input, &block)
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 assert_action_planed(action, planned_action_class)
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 refute_action_planed(action, planned_action_class)
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
@@ -1,3 +1,3 @@
1
1
  module Dynflow
2
- VERSION = '0.7.8'
2
+ VERSION = '0.7.9'
3
3
  end
@@ -1,6 +1,6 @@
1
1
  require 'dynflow'
2
2
  require 'pp'
3
- require 'sinatra'
3
+ require 'sinatra/base'
4
4
  require 'yaml'
5
5
 
6
6
  module Dynflow
@@ -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
@@ -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
- assert_action_planed action, CWE::DummySuspended
24
- refute_action_planed action, CWE::DummyAnotherTrigger
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
- assert_action_planed action, CWE::Ci
107
- assert_action_planed_with action, CWE::Review do |_, name, _|
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
- assert_action_planed_with action, CWE::Review, sha, 'Neo', true
110
+ assert_action_planned_with action, CWE::Review, sha, 'Neo', true
111
111
  end
112
112
  end
113
113
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  <span class="step-label">
8
8
  <%= h(step.id) %>: <%= h(step.action_class.name) %>
9
- (<%= h(step.state) %>)
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.8
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-05-18 00:00:00.000000000 Z
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: 1.8.23
463
+ rubygems_version: 2.4.8
488
464
  signing_key:
489
- specification_version: 3
465
+ specification_version: 4
490
466
  summary: DYNamic workFLOW engine
491
467
  test_files:
492
468
  - test/action_test.rb