nestene 0.1.8 → 0.2.0
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 +4 -4
- data/TODO.txt +9 -1
- data/autons.rb +1 -2
- data/features/aunton_creates_auton.feature +6 -0
- data/features/schedule_steps.feature +5 -0
- data/features/step_definitions/api/api_create_auton_steps.rb +1 -2
- data/features/step_definitions/api/api_list_of_auton_types_steps.rb +1 -3
- data/features/step_definitions/auton_creates_auton_steps.rb +33 -0
- data/features/step_definitions/callback_steps.rb +3 -6
- data/features/step_definitions/create_auton_steps.rb +1 -1
- data/features/step_definitions/credentials_steps.rb +1 -2
- data/features/step_definitions/execute_step_steps.rb +6 -13
- data/features/step_definitions/schedule_steps_steps.rb +38 -2
- data/features/step_definitions/time_delayed_steps_steps.rb +3 -6
- data/features/step_definitions/ui/create_auton_steps.rb +1 -2
- data/features/step_definitions/ui/list_of_autons_steps.rb +1 -2
- data/features/step_definitions/ui/schedule_auton_step_steps.rb +2 -4
- data/features/step_definitions/ui/show_auton_steps.rb +1 -2
- data/lib/nestene/actor/auton_queue.rb +1 -1
- data/lib/nestene/actor/auton_storage.rb +3 -0
- data/lib/nestene/actor/core.rb +0 -3
- data/lib/nestene/actor/delayed_scheduler.rb +5 -1
- data/lib/nestene/auton_context.rb +13 -0
- data/lib/nestene/auton_execution_queue.rb +5 -0
- data/lib/nestene/ui/app.rb +6 -0
- data/lib/nestene/ui/public/app/application.js +2 -1
- data/lib/nestene/ui/views/auton.haml +1 -2
- data/lib/nestene/version.rb +1 -1
- data/lib/nestene.rb +17 -4
- data/spec/nestene/auton_execution_queue_spec.rb +24 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e479ea793383b23ce3bf9de77bf12ebd31feab21
|
4
|
+
data.tar.gz: 6a8ba3f519fd58266ebebf33f134a1a5399ebb42
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8fd66164e61c692eabc430c7d7e3cf1cb7a0a89e9a3ec2ff5f9dcac2de720de88a349f3ea14c09f77dc52e25b9e534efabc7b938acd539731e79c3730ae26be6
|
7
|
+
data.tar.gz: 8573732417285586aefc07059efb2a9ceb6d7b186abf9bf324fea0a093c276d64b48db75ecc49b63dfd426cd104fe58a4c9e2956f7e9183b6d963490795e6d4f
|
data/TODO.txt
CHANGED
@@ -1,9 +1,17 @@
|
|
1
1
|
todo:
|
2
|
-
-
|
2
|
+
- Show parameters of scheduled methods
|
3
|
+
- Show duration of scheduled methods
|
4
|
+
- Show Exception of failed states
|
5
|
+
- Don't load jsons from the disk all the time (DiskStorage)
|
3
6
|
- Create Auton with specific ID using UI
|
4
7
|
- Create Auton with wrong type -> error message
|
8
|
+
- Store results of execution in the history
|
5
9
|
|
6
10
|
done:
|
7
11
|
- Render parameters field for parameters to the method, use parameters when scheduling
|
8
12
|
- Sort methods for the dropdown
|
9
13
|
- List/Registry of available auton types
|
14
|
+
- BUG - scheduled methods not executing when nestene starts after methods scheduled
|
15
|
+
- Limit size of auton execution history
|
16
|
+
- Pretty Print JSON for the nestene's state
|
17
|
+
- Add module for autons -> automatic registry
|
data/autons.rb
CHANGED
@@ -5,3 +5,8 @@ Feature: schedule steps
|
|
5
5
|
When I schedule the first step that returns the uuid of the second scheduled step
|
6
6
|
And I wait for the second step to finish
|
7
7
|
Then the Auton should be in the READY state
|
8
|
+
|
9
|
+
Scenario: schedule step on other auton
|
10
|
+
Given I have two autons where first auton schedules step on the other auton
|
11
|
+
When I schedule the step on the first auton and wait for it's execution
|
12
|
+
Then second auton should either have scheduled or executed step
|
@@ -1,11 +1,9 @@
|
|
1
1
|
Given(/^I have one auton$/) do
|
2
2
|
|
3
|
-
class EmptyAuton
|
4
|
-
include StructureMapper::Hash
|
3
|
+
class EmptyAuton < ::Nestene::Auton
|
5
4
|
|
6
5
|
attribute foo: String
|
7
6
|
end
|
8
|
-
Nestene::Registry.register_auton(EmptyAuton)
|
9
7
|
end
|
10
8
|
|
11
9
|
When(/^I get the API list of auton types$/) do
|
@@ -0,0 +1,33 @@
|
|
1
|
+
Given(/^I have an auton that has a step that creates a named auton$/) do
|
2
|
+
class AutonCreatingAuton < Nestene::Auton
|
3
|
+
|
4
|
+
attr_accessor :context
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
self.counter = 0
|
8
|
+
end
|
9
|
+
|
10
|
+
def create_auton
|
11
|
+
context.create_auton "EmptyAuton", 'empty_auton'
|
12
|
+
end
|
13
|
+
|
14
|
+
attribute counter: Fixnum
|
15
|
+
end
|
16
|
+
|
17
|
+
class EmptyAuton < Nestene::Auton
|
18
|
+
attribute foo: String
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
@auton_type="AutonCreatingAuton"
|
23
|
+
end
|
24
|
+
|
25
|
+
When(/^I start my auton and execute the step$/) do
|
26
|
+
auton_id = Celluloid::Actor[:nestene_core].create_auton(@auton_type)
|
27
|
+
step_id=Celluloid::Actor[:nestene_core].schedule_step(auton_id, :create_auton)
|
28
|
+
Celluloid::Actor[:nestene_core].wait_for_execution_result(auton_id, step_id)
|
29
|
+
end
|
30
|
+
|
31
|
+
Then(/^the new Auton should be created$/) do
|
32
|
+
expect(Celluloid::Actor[:nestene_core].auton_names).to include('empty_auton')
|
33
|
+
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
Given(/^I have an Auton that holds counter state$/) do
|
2
|
-
class CounterAuton
|
3
|
-
include StructureMapper::Hash
|
2
|
+
class CounterAuton < Nestene::Auton
|
4
3
|
|
5
4
|
def initialize
|
6
5
|
self.counter = 0
|
@@ -17,8 +16,7 @@ Given(/^I have an Auton that holds counter state$/) do
|
|
17
16
|
end
|
18
17
|
|
19
18
|
Given(/^I have an Auton that schedules a callback step on the counter Auton$/) do
|
20
|
-
class CallbackAuton
|
21
|
-
include StructureMapper::Hash
|
19
|
+
class CallbackAuton < Nestene::Auton
|
22
20
|
|
23
21
|
def start
|
24
22
|
self.context.schedule_callback('counter', :next, [], :set_state)
|
@@ -52,8 +50,7 @@ end
|
|
52
50
|
|
53
51
|
|
54
52
|
Given(/^I have an Auton that hold counter state and raises exception on execution$/) do
|
55
|
-
class FailingCounterAuton
|
56
|
-
include StructureMapper::Hash
|
53
|
+
class FailingCounterAuton < Nestene::Auton
|
57
54
|
|
58
55
|
def initialize
|
59
56
|
self.counter = 0
|
@@ -1,6 +1,5 @@
|
|
1
1
|
Given(/^I have a running auton with one defined step without any parameters$/) do
|
2
|
-
class SimpleAuton
|
3
|
-
include StructureMapper::Hash
|
2
|
+
class SimpleAuton < Nestene::Auton
|
4
3
|
|
5
4
|
def start
|
6
5
|
'ok'
|
@@ -31,8 +30,7 @@ end
|
|
31
30
|
|
32
31
|
|
33
32
|
Given(/^I have a running auton with one defined step with parameters$/) do
|
34
|
-
class SimpleParamsAuton
|
35
|
-
include StructureMapper::Hash
|
33
|
+
class SimpleParamsAuton < Nestene::Auton
|
36
34
|
|
37
35
|
def start(p1)
|
38
36
|
'param: %s' % p1
|
@@ -51,8 +49,7 @@ end
|
|
51
49
|
|
52
50
|
|
53
51
|
Given(/^I have a running auton with one defined step that fails$/) do
|
54
|
-
class SimpleFailingAuton
|
55
|
-
include StructureMapper::Hash
|
52
|
+
class SimpleFailingAuton < Nestene::Auton
|
56
53
|
|
57
54
|
def start
|
58
55
|
raise "failed!"
|
@@ -74,8 +71,7 @@ end
|
|
74
71
|
|
75
72
|
|
76
73
|
Given(/^I have a running auton with one defined step that fails and one that does not fail$/) do
|
77
|
-
class SimpleTwoStepsFirstFailingAuton
|
78
|
-
include StructureMapper::Hash
|
74
|
+
class SimpleTwoStepsFirstFailingAuton < Nestene::Auton
|
79
75
|
|
80
76
|
def start
|
81
77
|
raise "failed!"
|
@@ -111,9 +107,7 @@ end
|
|
111
107
|
|
112
108
|
|
113
109
|
Given(/^I have a running auton with one defined step that fails on the first invocation but succeeds on the second$/) do
|
114
|
-
class FirstExecutionFailingAuton
|
115
|
-
include StructureMapper::Hash
|
116
|
-
|
110
|
+
class FirstExecutionFailingAuton < Nestene::Auton
|
117
111
|
def initalize
|
118
112
|
self.first = true
|
119
113
|
end
|
@@ -151,8 +145,7 @@ end
|
|
151
145
|
|
152
146
|
|
153
147
|
Given(/^I have a running auton with one defined step that fails and one that does not fail and an exception handling method for the whole Auton$/) do
|
154
|
-
class TwoStepsFirstFailingWithExceptionHandlerAuton
|
155
|
-
include StructureMapper::Hash
|
148
|
+
class TwoStepsFirstFailingWithExceptionHandlerAuton < Nestene::Auton
|
156
149
|
|
157
150
|
def start
|
158
151
|
raise "failed!"
|
@@ -1,6 +1,5 @@
|
|
1
1
|
Given(/^I have an Auton that has two steps, first step scheduling the next step$/) do
|
2
|
-
class ScheduleSecondStepAuton
|
3
|
-
include StructureMapper::Hash
|
2
|
+
class ScheduleSecondStepAuton < Nestene::Auton
|
4
3
|
|
5
4
|
def first
|
6
5
|
context.schedule_step(:second)
|
@@ -27,3 +26,40 @@ When(/^I wait for the second step to finish$/) do
|
|
27
26
|
@execution_result = Celluloid::Actor[:nestene_core].wait_for_execution_result(@auton_id, @step_execution_id)
|
28
27
|
end
|
29
28
|
|
29
|
+
|
30
|
+
Given(/^I have two autons where first auton schedules step on the other auton$/) do
|
31
|
+
class StepSchedulingAuton < Nestene::Auton
|
32
|
+
|
33
|
+
def schedule_step
|
34
|
+
self.step_id = context.schedule_step_on_auton('step_executor', :step)
|
35
|
+
end
|
36
|
+
|
37
|
+
attr_accessor :context
|
38
|
+
|
39
|
+
attribute step_id: Fixnum
|
40
|
+
end
|
41
|
+
|
42
|
+
class StepExecutorAuton < Nestene::Auton
|
43
|
+
|
44
|
+
def step
|
45
|
+
context.schedule_step(:second)
|
46
|
+
end
|
47
|
+
|
48
|
+
attr_accessor :context
|
49
|
+
|
50
|
+
attribute foo: Fixnum
|
51
|
+
end
|
52
|
+
|
53
|
+
@first_auton_id = Celluloid::Actor[:nestene_core].create_auton('StepSchedulingAuton')
|
54
|
+
@second_auton_id = Celluloid::Actor[:nestene_core].create_auton('StepExecutorAuton','step_executor')
|
55
|
+
end
|
56
|
+
|
57
|
+
When(/^I schedule the step on the first auton and wait for it's execution$/) do
|
58
|
+
step_id = Celluloid::Actor[:nestene_core].schedule_step @first_auton_id, :schedule_step
|
59
|
+
@second_auton_step_id = Celluloid::Actor[:nestene_core].wait_for_execution_result @first_auton_id, step_id
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
Then(/^second auton should either have scheduled or executed step$/) do
|
64
|
+
Celluloid::Actor[:nestene_core].wait_for_execution_result @second_auton_id, @second_auton_step_id
|
65
|
+
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
Given(/^an Auton that schedules an one off delayed step in (\d+)\.(\d+) second$/) do |arg1, arg2|
|
2
|
-
class TimeDelayedStepSchedulingAuton
|
3
|
-
include StructureMapper::Hash
|
2
|
+
class TimeDelayedStepSchedulingAuton < Nestene::Auton
|
4
3
|
|
5
4
|
def first
|
6
5
|
context.schedule_delayed_step(0.1, :second)
|
@@ -44,8 +43,7 @@ end
|
|
44
43
|
|
45
44
|
|
46
45
|
Given(/^an Auton that schedules an repeating every (\d+\.\d+) seconds delayed step in (\d+\.\d+) second$/) do |every, delay|
|
47
|
-
class RepeatingTimeDelayedStepdSchedulingAuton
|
48
|
-
include StructureMapper::Hash
|
46
|
+
class RepeatingTimeDelayedStepdSchedulingAuton < Nestene::Auton
|
49
47
|
|
50
48
|
def first
|
51
49
|
context.schedule_repeating_delayed_step(0.1, 0.1, :second)
|
@@ -69,8 +67,7 @@ end
|
|
69
67
|
|
70
68
|
|
71
69
|
Given(/^an Auton that schedules an one off delayed step in (\d+\.\d+) seconds and has a failing step$/) do |delay|
|
72
|
-
class TimeDelayedAndFailingStepSchedulingAuton
|
73
|
-
include StructureMapper::Hash
|
70
|
+
class TimeDelayedAndFailingStepSchedulingAuton < Nestene::Auton
|
74
71
|
|
75
72
|
def first
|
76
73
|
context.schedule_delayed_step(0.1, :second)
|
@@ -1,6 +1,5 @@
|
|
1
1
|
Given(/^I have a running auton with one defined step without parameters$/) do
|
2
|
-
class EmptyAuton
|
3
|
-
include StructureMapper::Hash
|
2
|
+
class EmptyAuton < Nestene::Auton
|
4
3
|
|
5
4
|
def initialize
|
6
5
|
end
|
@@ -27,8 +26,7 @@ end
|
|
27
26
|
|
28
27
|
|
29
28
|
Given(/^I have a running auton with one defined step with two parameters$/) do
|
30
|
-
class EmptyAutonWithParams
|
31
|
-
include StructureMapper::Hash
|
29
|
+
class EmptyAutonWithParams < Nestene::Auton
|
32
30
|
|
33
31
|
def initialize
|
34
32
|
end
|
data/lib/nestene/actor/core.rb
CHANGED
@@ -11,9 +11,6 @@ module Nestene
|
|
11
11
|
subscribe('state_update', :notify_waiters)
|
12
12
|
@execution_futures={}
|
13
13
|
@storage = storage
|
14
|
-
storage.list.each do |auton_id|
|
15
|
-
Celluloid::Actor["storage:%s" % auton_id] = AutonStorage.new(auton_id, @storage)
|
16
|
-
end
|
17
14
|
end
|
18
15
|
|
19
16
|
def auton_names
|
@@ -13,6 +13,10 @@ module Nestene
|
|
13
13
|
@timer = nil
|
14
14
|
end
|
15
15
|
|
16
|
+
def schedule_struct
|
17
|
+
@schedule.to_structure
|
18
|
+
end
|
19
|
+
|
16
20
|
|
17
21
|
def update_schedule topic, auton_id, state
|
18
22
|
|
@@ -51,7 +55,7 @@ module Nestene
|
|
51
55
|
state.queue.to_execute << method
|
52
56
|
end
|
53
57
|
if delayed.every
|
54
|
-
delayed.execute_at
|
58
|
+
delayed.execute_at = now + delayed.every
|
55
59
|
state.queue.add_delayed(delayed)
|
56
60
|
end
|
57
61
|
end
|
@@ -15,6 +15,11 @@ module Nestene
|
|
15
15
|
Celluloid::Actor[:nestene_core].schedule_step @auton_id, name, parameters
|
16
16
|
end
|
17
17
|
|
18
|
+
def schedule_step_on_auton auton_id, name, parameters=[]
|
19
|
+
Celluloid::Actor[:nestene_core].schedule_step auton_id, name, parameters
|
20
|
+
end
|
21
|
+
|
22
|
+
|
18
23
|
def schedule_delayed_step delay, name, parameters=[]
|
19
24
|
Celluloid::Actor[:nestene_core].schedule_delayed_step @auton_id, delay, name, parameters
|
20
25
|
end
|
@@ -27,5 +32,13 @@ module Nestene
|
|
27
32
|
Celluloid::Actor[:nestene_core].get_credentials
|
28
33
|
end
|
29
34
|
|
35
|
+
def create_auton type, auton_id=SecureRandom.uuid
|
36
|
+
Celluloid::Actor[:nestene_core].create_auton type, auton_id
|
37
|
+
end
|
38
|
+
|
39
|
+
attr_reader :auton_id
|
40
|
+
|
41
|
+
|
42
|
+
|
30
43
|
end
|
31
44
|
end
|
@@ -28,6 +28,11 @@ module Nestene
|
|
28
28
|
delayed.sort_by! {|x| x.execute_at}
|
29
29
|
end
|
30
30
|
|
31
|
+
def add_executed executed
|
32
|
+
self.executed.shift while self.executed.size >= 20
|
33
|
+
self.executed << executed
|
34
|
+
end
|
35
|
+
|
31
36
|
|
32
37
|
def remove_delayed_method method_uuid
|
33
38
|
delayed.delete_if{|m| m.uuid == method_uuid}
|
data/lib/nestene/ui/app.rb
CHANGED
@@ -6,6 +6,12 @@ module Nestene
|
|
6
6
|
module Ui
|
7
7
|
class App < Sinatra::Base
|
8
8
|
|
9
|
+
|
10
|
+
get '/schedule' do
|
11
|
+
content_type :json
|
12
|
+
Celluloid::Actor[:delayed_scheduler].schedule_struct.to_json
|
13
|
+
end
|
14
|
+
|
9
15
|
get '/auton_types' do
|
10
16
|
content_type :json
|
11
17
|
Nestene::Registry.registered_autons.to_json
|
@@ -21,11 +21,12 @@ nestene.controller('AutonsController', function($scope, $http, $timeout) {
|
|
21
21
|
});
|
22
22
|
}
|
23
23
|
|
24
|
+
$scope.getAutons();
|
24
25
|
$scope.intervalFunction = function() {
|
25
26
|
$timeout(function() {
|
26
27
|
$scope.getAutons();
|
27
28
|
$scope.intervalFunction();
|
28
|
-
},
|
29
|
+
}, 60000);
|
29
30
|
};
|
30
31
|
|
31
32
|
$scope.intervalFunction();
|
@@ -10,8 +10,7 @@
|
|
10
10
|
.panel.panel-default
|
11
11
|
.panel-heading State
|
12
12
|
.panel-body
|
13
|
-
%
|
14
|
-
= JSON.pretty_generate(@auton_state.serialized)
|
13
|
+
%pre#current_state{'data-toggle' => "tooltip", 'data-placement' => "left", title:"Tooltip on left"}= JSON.pretty_generate(@auton_state.serialized)
|
15
14
|
|
16
15
|
.panel.panel-default
|
17
16
|
#queue.panel-heading Queue
|
data/lib/nestene/version.rb
CHANGED
data/lib/nestene.rb
CHANGED
@@ -33,17 +33,25 @@ module Nestene
|
|
33
33
|
|
34
34
|
end
|
35
35
|
|
36
|
-
|
36
|
+
|
37
|
+
class Auton
|
38
|
+
|
37
39
|
include StructureMapper::Hash
|
38
40
|
|
41
|
+
def self.inherited(cls)
|
42
|
+
Registry.register_auton(cls)
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
class FooAuton < Auton
|
48
|
+
|
39
49
|
def do_foo
|
40
50
|
end
|
41
51
|
|
42
52
|
attribute foo: String
|
43
53
|
end
|
44
54
|
|
45
|
-
Registry.register_auton(FooAuton)
|
46
|
-
|
47
55
|
class SelfValue
|
48
56
|
def value
|
49
57
|
self
|
@@ -57,9 +65,14 @@ module Nestene
|
|
57
65
|
end
|
58
66
|
|
59
67
|
def self.start_nestene(storage)
|
60
|
-
Celluloid::Actor[:delayed_scheduler] = Nestene::Actor::DelayedScheduler.new
|
61
68
|
Celluloid::Actor[:nestene_core] = Nestene::Actor::Core.new(storage)
|
69
|
+
Celluloid::Actor[:delayed_scheduler] = Nestene::Actor::DelayedScheduler.new
|
62
70
|
Celluloid::Actor[:auton_queue] = Nestene::Actor::AutonQueue.new
|
71
|
+
storage.list.each do |auton_id|
|
72
|
+
storage_actor=Nestene::Actor::AutonStorage.new(auton_id, storage)
|
73
|
+
Celluloid::Actor["storage:%s" % auton_id] = storage_actor
|
74
|
+
storage_actor.publish_initial_state
|
75
|
+
end
|
63
76
|
end
|
64
77
|
|
65
78
|
end
|
@@ -14,6 +14,30 @@ module Nestene
|
|
14
14
|
Timecop.return
|
15
15
|
end
|
16
16
|
|
17
|
+
describe '#add_executed' do
|
18
|
+
it 'should add executed method to executed' do
|
19
|
+
executed = double :executed
|
20
|
+
subject.add_executed(executed)
|
21
|
+
|
22
|
+
expect(subject.executed).to include(executed)
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'when there are already 20 executed methods' do
|
26
|
+
before do
|
27
|
+
(1..20).each {|i| subject.add_executed(i) }
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should remove the oldest method" do
|
31
|
+
executed = double :executed
|
32
|
+
subject.add_executed(executed)
|
33
|
+
|
34
|
+
expect(subject.executed[-1]).to eq(executed)
|
35
|
+
expect(subject.executed.size).to eq(20)
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
17
41
|
describe '#remove_delayed_method' do
|
18
42
|
context "when the delayed method has been scheduled" do
|
19
43
|
let (:delayed_method_uuid) {subject.add_delayed_method(:some_method, ['p1','p2'], 0.3).uuid}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nestene
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dragan Milic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -243,6 +243,7 @@ files:
|
|
243
243
|
- features/api/api_credentials.feature
|
244
244
|
- features/api/api_list_of_auton_types.feature
|
245
245
|
- features/api/api_list_of_autons.feature
|
246
|
+
- features/aunton_creates_auton.feature
|
246
247
|
- features/callback.feature
|
247
248
|
- features/create_auton.feature
|
248
249
|
- features/credentials.feature
|
@@ -253,6 +254,7 @@ files:
|
|
253
254
|
- features/step_definitions/api/api_credentials_steps.rb
|
254
255
|
- features/step_definitions/api/api_list_of_auton_types_steps.rb
|
255
256
|
- features/step_definitions/api/api_list_of_autons_steps.rb
|
257
|
+
- features/step_definitions/auton_creates_auton_steps.rb
|
256
258
|
- features/step_definitions/callback_steps.rb
|
257
259
|
- features/step_definitions/create_auton_steps.rb
|
258
260
|
- features/step_definitions/credentials_steps.rb
|
@@ -344,6 +346,7 @@ test_files:
|
|
344
346
|
- features/api/api_credentials.feature
|
345
347
|
- features/api/api_list_of_auton_types.feature
|
346
348
|
- features/api/api_list_of_autons.feature
|
349
|
+
- features/aunton_creates_auton.feature
|
347
350
|
- features/callback.feature
|
348
351
|
- features/create_auton.feature
|
349
352
|
- features/credentials.feature
|
@@ -354,6 +357,7 @@ test_files:
|
|
354
357
|
- features/step_definitions/api/api_credentials_steps.rb
|
355
358
|
- features/step_definitions/api/api_list_of_auton_types_steps.rb
|
356
359
|
- features/step_definitions/api/api_list_of_autons_steps.rb
|
360
|
+
- features/step_definitions/auton_creates_auton_steps.rb
|
357
361
|
- features/step_definitions/callback_steps.rb
|
358
362
|
- features/step_definitions/create_auton_steps.rb
|
359
363
|
- features/step_definitions/credentials_steps.rb
|