cf_script 0.0.1.beta.1 → 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +18 -0
- data/README.md +182 -34
- data/Rakefile +0 -13
- data/lib/cf_script/command/base.rb +1 -1
- data/lib/cf_script/command/cf/apps/app.rb +1 -1
- data/lib/cf_script/command/cf/apps/apps.rb +5 -3
- data/lib/cf_script/command/cf/apps/delete.rb +25 -0
- data/lib/cf_script/command/cf/apps/env.rb +4 -2
- data/lib/cf_script/command/cf/apps/push.rb +7 -2
- data/lib/cf_script/command/cf/apps/rename.rb +20 -0
- data/lib/cf_script/command/cf/apps/restage.rb +1 -1
- data/lib/cf_script/command/cf/apps/restart.rb +1 -1
- data/lib/cf_script/command/cf/apps/set_env.rb +1 -1
- data/lib/cf_script/command/cf/apps/start.rb +1 -1
- data/lib/cf_script/command/cf/apps/stop.rb +3 -2
- data/lib/cf_script/command/cf/apps/unset_env.rb +1 -1
- data/lib/cf_script/command/cf/apps.rb +5 -1
- data/lib/cf_script/command/cf/general/api.rb +1 -1
- data/lib/cf_script/command/cf/general/auth.rb +1 -1
- data/lib/cf_script/command/cf/general/login.rb +1 -1
- data/lib/cf_script/command/cf/general/logout.rb +1 -1
- data/lib/cf_script/command/cf/general/target.rb +1 -1
- data/lib/cf_script/command/cf/routes/check_route.rb +1 -1
- data/lib/cf_script/command/cf/routes/create_route.rb +1 -1
- data/lib/cf_script/command/cf/routes/delete_route.rb +5 -2
- data/lib/cf_script/command/cf/routes/map_route.rb +1 -1
- data/lib/cf_script/command/cf/routes/routes.rb +1 -1
- data/lib/cf_script/command/cf/routes/unmap_route.rb +1 -1
- data/lib/cf_script/command/cf/spaces/space.rb +1 -1
- data/lib/cf_script/command/cf/spaces/spaces.rb +1 -1
- data/lib/cf_script/command/runner.rb +1 -15
- data/lib/cf_script/config.rb +3 -1
- data/lib/cf_script/executor/recorder.rb +3 -1
- data/lib/cf_script/executor/simple.rb +22 -9
- data/lib/cf_script/executor.rb +0 -1
- data/lib/cf_script/object/api_endpoint.rb +1 -1
- data/lib/cf_script/object/app_info.rb +1 -1
- data/lib/cf_script/object/app_list.rb +21 -5
- data/lib/cf_script/object/attribute.rb +1 -1
- data/lib/cf_script/object/attribute_list.rb +1 -1
- data/lib/cf_script/object/instance_status.rb +1 -1
- data/lib/cf_script/object/route_info.rb +1 -1
- data/lib/cf_script/object/space.rb +1 -1
- data/lib/cf_script/object/target.rb +1 -1
- data/lib/cf_script/object.rb +0 -11
- data/lib/cf_script/output/buffer.rb +1 -1
- data/lib/cf_script/scope/app/routes.rb +1 -1
- data/lib/cf_script/scope/app.rb +0 -26
- data/lib/cf_script/scope/target.rb +7 -1
- data/lib/cf_script/ui.rb +2 -6
- data/lib/cf_script/version.rb +1 -1
- data/lib/cf_script.rb +0 -2
- data/test/fixtures/commands/apps/delete/good.yml +8 -0
- data/test/fixtures/commands/apps/delete/not_exist.yml +9 -0
- data/test/fixtures/commands/apps/env/{empty.yml → empty_vars.yml} +0 -0
- data/test/fixtures/commands/apps/rename/good.yml +8 -0
- data/test/fixtures/commands/apps/rename/not_found.yml +8 -0
- data/test/fixtures/commands/{apps/set_env → common}/empty.yml +0 -0
- data/test/lib/cf_script/command/cf/apps/app_test.rb +8 -0
- data/test/lib/cf_script/command/cf/apps/apps_test.rb +12 -3
- data/test/lib/cf_script/command/cf/apps/delete_test.rb +51 -0
- data/test/lib/cf_script/command/cf/apps/env_test.rb +12 -2
- data/test/lib/cf_script/command/cf/apps/push_test.rb +14 -0
- data/test/lib/cf_script/command/cf/apps/rename_test.rb +35 -0
- data/test/lib/cf_script/command/cf/apps/restage_test.rb +8 -0
- data/test/lib/cf_script/command/cf/apps/restart_test.rb +8 -0
- data/test/lib/cf_script/command/cf/apps/start_test.rb +8 -0
- data/test/lib/cf_script/command/cf/apps/stop_test.rb +2 -2
- data/test/lib/cf_script/command/cf/general/login_test.rb +9 -10
- data/test/lib/cf_script/command/cf/routes/create_route_test.rb +12 -0
- data/test/lib/cf_script/command/cf/routes/delete_route_test.rb +18 -0
- data/test/lib/cf_script/command/cf/routes/map_route_test.rb +12 -0
- data/test/lib/cf_script/command/cf/routes/routes_test.rb +8 -0
- data/test/lib/cf_script/command/cf/routes/unmap_route_test.rb +12 -0
- data/test/lib/cf_script/object/app_info_test.rb +4 -4
- data/test/lib/cf_script/object/app_list_test.rb +68 -2
- data/test/lib/cf_script/output/buffer_test.rb +9 -9
- data/test/lib/cf_script/output/parser/section_test.rb +4 -2
- data/test/lib/cf_script/output/tests_test.rb +24 -24
- data/test/lib/cf_script/output_test.rb +23 -18
- data/test/lib/cf_script/scope/app/env_test.rb +58 -0
- data/test/lib/cf_script/scope/app/routes_test.rb +56 -0
- data/test/lib/cf_script/scope/app/state_test.rb +30 -0
- data/test/lib/cf_script/scope/script_test.rb +3 -2
- data/test/lib/cf_script/scope/target_test.rb +38 -23
- data/test/lib/cf_script/scope_test.rb +10 -6
- data/test/lib/cf_script/ui_test.rb +133 -0
- data/test/lib/cf_script_test.rb +14 -8
- data/test/support/assertions.rb +25 -0
- data/test/support/helpers/fixture_executor.rb +1 -1
- data/test/support/helpers/mock_execution.rb +29 -7
- metadata +23 -14
- data/lib/cf_script/callbacks.rb +0 -43
- data/lib/cf_script/executor/non_blocking.rb +0 -107
- data/lib/cf_script/object/app_spec.rb +0 -55
- data/test/fixtures/commands/apps/unset_env/empty.yml +0 -5
- data/test/fixtures/commands/general/auth/empty.yml +0 -5
- data/test/fixtures/commands/general/target/empty.yml +0 -5
- data/test/fixtures/commands/spaces/space/empty.yml +0 -5
- data/test/fixtures/commands/spaces/spaces/empty.yml +0 -5
@@ -17,8 +17,8 @@ describe CfScript::Scope::Target do
|
|
17
17
|
initial_target = subject.instance_variable_get('@initial_target')
|
18
18
|
current_target = subject.instance_variable_get('@current_target')
|
19
19
|
|
20
|
-
assert initial_target
|
21
|
-
assert current_target
|
20
|
+
assert initial_target, "Expected @initial_target to be set"
|
21
|
+
assert current_target, "Expected @current_target to be set"
|
22
22
|
|
23
23
|
assert_instance_of CfScript::Target, initial_target
|
24
24
|
assert_instance_of CfScript::Target, current_target
|
@@ -36,6 +36,7 @@ describe CfScript::Scope::Target do
|
|
36
36
|
assert_equal 'ACME', subject.current_org
|
37
37
|
|
38
38
|
subject.target(:production)
|
39
|
+
|
39
40
|
assert_equal 'production', subject.current_space
|
40
41
|
assert_equal 'ACME', subject.current_org
|
41
42
|
end
|
@@ -44,10 +45,12 @@ describe CfScript::Scope::Target do
|
|
44
45
|
it "resets target to initial_target if the space has changed" do
|
45
46
|
fake_cf target: :production do
|
46
47
|
subject.target(:production)
|
48
|
+
|
47
49
|
assert_equal 'production', subject.current_space
|
48
50
|
assert_equal 'ACME', subject.current_org
|
49
51
|
|
50
52
|
subject.finalize
|
53
|
+
|
51
54
|
assert_equal 'staging', subject.current_space
|
52
55
|
assert_equal 'ACME', subject.current_org
|
53
56
|
end
|
@@ -56,17 +59,20 @@ describe CfScript::Scope::Target do
|
|
56
59
|
it "resets target to initial_target if the org has changed" do
|
57
60
|
fake_cf do
|
58
61
|
subject.target(:staging_org)
|
62
|
+
|
59
63
|
assert_equal 'staging', subject.current_space
|
60
64
|
assert_equal 'ORG', subject.current_org
|
61
65
|
|
62
66
|
subject.finalize
|
67
|
+
|
63
68
|
assert_equal 'staging', subject.current_space
|
64
69
|
assert_equal 'ACME', subject.current_org
|
65
70
|
end
|
66
71
|
end
|
67
72
|
|
68
73
|
it "responds to target without args and calls Command.run" do
|
69
|
-
assert subject.respond_to?(:target)
|
74
|
+
assert subject.respond_to?(:target),
|
75
|
+
"Expected Scope::Target to respond to target"
|
70
76
|
|
71
77
|
CfScript::Command.stub :run, :called do
|
72
78
|
assert_equal :called, subject.target
|
@@ -74,8 +80,6 @@ describe CfScript::Scope::Target do
|
|
74
80
|
end
|
75
81
|
|
76
82
|
it "responds to target with a space name and calls Command.run if not == current" do
|
77
|
-
assert subject.respond_to?(:target)
|
78
|
-
|
79
83
|
assert_equal 'staging', subject.current_space
|
80
84
|
|
81
85
|
CfScript::Command.stub :run, :called do
|
@@ -92,7 +96,8 @@ describe CfScript::Scope::Target do
|
|
92
96
|
end
|
93
97
|
|
94
98
|
it "responds to space and calls Command.run" do
|
95
|
-
assert subject.respond_to?(:space)
|
99
|
+
assert subject.respond_to?(:space),
|
100
|
+
"Expected Scope::Target to respond to space"
|
96
101
|
|
97
102
|
CfScript::Command.stub :run, :called do
|
98
103
|
assert_equal :called, subject.space(:foo)
|
@@ -100,8 +105,6 @@ describe CfScript::Scope::Target do
|
|
100
105
|
end
|
101
106
|
|
102
107
|
it "responds to space with a block and calls exec_in with a Space scope" do
|
103
|
-
assert subject.respond_to?(:space)
|
104
|
-
|
105
108
|
arg_catcher = lambda do |scope, args, &block|
|
106
109
|
assert_instance_of CfScript::Scope::Space, scope
|
107
110
|
end
|
@@ -114,7 +117,8 @@ describe CfScript::Scope::Target do
|
|
114
117
|
end
|
115
118
|
|
116
119
|
it "responds to app and calls Command.run" do
|
117
|
-
assert subject.respond_to?(:app)
|
120
|
+
assert subject.respond_to?(:app),
|
121
|
+
"Expected Scope::Target to respond to app"
|
118
122
|
|
119
123
|
CfScript::Command.stub :run, :called do
|
120
124
|
assert_equal :called, subject.app(:foo)
|
@@ -122,8 +126,6 @@ describe CfScript::Scope::Target do
|
|
122
126
|
end
|
123
127
|
|
124
128
|
it "responds to app with a block and calls exec_in with an App scope" do
|
125
|
-
assert subject.respond_to?(:app)
|
126
|
-
|
127
129
|
arg_catcher = lambda do |scope, args, &block|
|
128
130
|
assert_instance_of CfScript::Scope::App, scope
|
129
131
|
end
|
@@ -135,24 +137,37 @@ describe CfScript::Scope::Target do
|
|
135
137
|
end
|
136
138
|
end
|
137
139
|
|
138
|
-
|
139
|
-
|
140
|
+
describe 'apps' do
|
141
|
+
it "calls Command.run" do
|
142
|
+
assert subject.respond_to?(:apps),
|
143
|
+
"Expected Scope::Target to respond to apps"
|
140
144
|
|
141
|
-
|
142
|
-
|
145
|
+
CfScript::Command.stub :run, :called do
|
146
|
+
assert_equal :called, subject.apps
|
147
|
+
end
|
143
148
|
end
|
144
|
-
end
|
145
149
|
|
146
|
-
|
147
|
-
|
150
|
+
it "calls apps.select! when options are given" do
|
151
|
+
apps = MiniTest::Mock.new
|
152
|
+
apps.expect(:org, nil, [])
|
153
|
+
apps.expect(:org, nil, [])
|
154
|
+
apps.expect(:space, nil, [])
|
155
|
+
apps.expect(:space, nil, [])
|
156
|
+
apps.expect(:select!, nil, [{ ending_with: :foo }])
|
148
157
|
|
149
|
-
|
150
|
-
|
158
|
+
CfScript::Command.stub :run, apps do
|
159
|
+
subject.apps(ending_with: :foo)
|
160
|
+
end
|
151
161
|
|
152
|
-
|
153
|
-
subject.apps(ending_with: :foo)
|
162
|
+
apps.verify
|
154
163
|
end
|
155
164
|
|
156
|
-
|
165
|
+
it "executes given block within each app's scope" do
|
166
|
+
fake_cf do
|
167
|
+
subject.apps do
|
168
|
+
assert_instance_of CfScript::Scope::App, self
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
157
172
|
end
|
158
173
|
end
|
@@ -12,11 +12,13 @@ describe CfScript::Scope do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
it "calls enter_scope on initialize" do
|
15
|
-
assert ScopeTest.new.called_enter_scope
|
15
|
+
assert ScopeTest.new.called_enter_scope,
|
16
|
+
"Expected enter_scope to have been called"
|
16
17
|
end
|
17
18
|
|
18
19
|
it "responds to finalize which calls exit_scope" do
|
19
|
-
assert subject.respond_to?(:finalize)
|
20
|
+
assert subject.respond_to?(:finalize),
|
21
|
+
"Expected Scope::Base to respond to finalize"
|
20
22
|
|
21
23
|
subject.stub :exit_scope, 'foo' do
|
22
24
|
assert_equal 'foo', subject.finalize
|
@@ -24,15 +26,17 @@ describe CfScript::Scope do
|
|
24
26
|
end
|
25
27
|
|
26
28
|
it "responds to spec_for and calls CfScript.spec_for" do
|
27
|
-
assert subject.respond_to?(:spec_for)
|
29
|
+
assert subject.respond_to?(:spec_for),
|
30
|
+
"Expected Scope::Base to respond to spec_for"
|
28
31
|
|
29
|
-
CfScript.stub :spec_for,
|
30
|
-
assert_equal
|
32
|
+
CfScript.stub :spec_for, :called do
|
33
|
+
assert_equal :called, subject.spec_for(:app)
|
31
34
|
end
|
32
35
|
end
|
33
36
|
|
34
37
|
it "responds to method_missing and calls Command.run" do
|
35
|
-
assert subject.respond_to?(:method_missing)
|
38
|
+
assert subject.respond_to?(:method_missing),
|
39
|
+
"Expected Scope::Base to respond to method_missing"
|
36
40
|
|
37
41
|
CfScript::Command.stub :run, 'pong' do
|
38
42
|
assert_equal 'pong', subject.ping
|
@@ -0,0 +1,133 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
describe CfScript::UI do
|
4
|
+
include MockExecution
|
5
|
+
|
6
|
+
subject { CfScript::UI }
|
7
|
+
|
8
|
+
it "defines a puts_out method that outputs to the configured stdout" do
|
9
|
+
fake_io do |out, err|
|
10
|
+
subject.puts_out 'foo bar'
|
11
|
+
|
12
|
+
assert_equal "foo bar\n", out.lines.first
|
13
|
+
assert_equal true, err.lines.empty?
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
it "defines a print_out method that outputs to the configured stdout" do
|
18
|
+
fake_io do |out, err|
|
19
|
+
subject.print_out 'foo bar'
|
20
|
+
|
21
|
+
assert_equal "foo bar", out.lines.first
|
22
|
+
assert_equal true, err.lines.empty?
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it "defines a puts_err method that outputs to the configured stderr" do
|
27
|
+
fake_io do |out, err|
|
28
|
+
subject.puts_err 'foo bar'
|
29
|
+
|
30
|
+
assert_equal true, out.lines.empty?
|
31
|
+
assert_equal "foo bar\n", err.lines.first
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
it "defines a print_err method that outputs to the configured stderr" do
|
36
|
+
fake_io do |out, err|
|
37
|
+
subject.print_err 'foo bar'
|
38
|
+
|
39
|
+
assert_equal true, out.lines.empty?
|
40
|
+
assert_equal "foo bar", err.lines.first
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe "with_color_of" do
|
45
|
+
it "returns default color by default" do
|
46
|
+
color = subject.with_color_of
|
47
|
+
|
48
|
+
assert_equal({ color: :default }, color)
|
49
|
+
end
|
50
|
+
|
51
|
+
it "returns color for given type" do
|
52
|
+
color = subject.with_color_of(:error)
|
53
|
+
|
54
|
+
assert_equal({ color: :red }, color)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
describe "tag_char" do
|
59
|
+
it "returns default character for unknown type" do
|
60
|
+
char = subject.tag_char(:bogus, :first)
|
61
|
+
|
62
|
+
assert_equal '[', char
|
63
|
+
end
|
64
|
+
|
65
|
+
it "returns character for given type" do
|
66
|
+
char = subject.tag_char(:error, :last)
|
67
|
+
|
68
|
+
assert_equal '}', char
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
describe "tag_open/tag_close" do
|
73
|
+
it "return first and last characters for type" do
|
74
|
+
open_char = subject.tag_open(:other)
|
75
|
+
close_char = subject.tag_close(:other)
|
76
|
+
|
77
|
+
assert_equal '[', open_char
|
78
|
+
assert_equal ']', close_char
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "emoji_for" do
|
83
|
+
it "returns nil if config.ui.emoji is false" do
|
84
|
+
with_config do
|
85
|
+
emoji = subject.emoji_for(:success)
|
86
|
+
|
87
|
+
assert_equal nil, emoji
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
it "returns emoji character if config.ui.emoji is true" do
|
92
|
+
with_config emoji: true do
|
93
|
+
emoji = subject.emoji_for(:success)
|
94
|
+
|
95
|
+
assert_equal [9989, 32], emoji.codepoints
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
describe "tag_format" do
|
101
|
+
it "returns nil if config.ui.tags is false" do
|
102
|
+
with_config tags: false do
|
103
|
+
tag = subject.tag_format('foo', :trace)
|
104
|
+
|
105
|
+
assert_equal nil, tag
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
it "returns nil if the tag is nil" do
|
110
|
+
with_config tags: true do
|
111
|
+
tag = subject.tag_format(nil, :trace)
|
112
|
+
|
113
|
+
assert_equal nil, tag
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
it "returns formatted tag if tag is given and config.ui.tags is true" do
|
118
|
+
with_config tags: true, color: true do
|
119
|
+
tag = subject.tag_format('foo', :trace)
|
120
|
+
|
121
|
+
assert_equal "\e[0;90;49m<foo>\e[0m", tag
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
describe "ui_format" do
|
127
|
+
it "returns a formatted message" do
|
128
|
+
text = subject.ui_format(:success, 'foo', 'bar')
|
129
|
+
|
130
|
+
assert_equal "\e[0;32;49m[foo]\e[0m \e[0;32;49mbar\e[0m", text
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
data/test/lib/cf_script_test.rb
CHANGED
@@ -4,7 +4,7 @@ describe CfScript do
|
|
4
4
|
include MockExecution
|
5
5
|
|
6
6
|
it "defines a config method that returns the Config object" do
|
7
|
-
assert CfScript.respond_to? :config
|
7
|
+
assert CfScript.respond_to? :config, "Expected CfScript to respond to config"
|
8
8
|
|
9
9
|
config = CfScript.config
|
10
10
|
|
@@ -13,7 +13,7 @@ describe CfScript do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
it "defines a configure method that yields the Config object" do
|
16
|
-
assert CfScript.respond_to? :configure
|
16
|
+
assert CfScript.respond_to? :configure, "Expected CfScript to respond to configure"
|
17
17
|
|
18
18
|
called = false
|
19
19
|
|
@@ -28,10 +28,10 @@ describe CfScript do
|
|
28
28
|
end
|
29
29
|
|
30
30
|
it "defines stdout/stderr methods that return the configured IO objects" do
|
31
|
-
assert CfScript.respond_to? :stdout
|
31
|
+
assert CfScript.respond_to? :stdout, "Expected CfScript to respond to stdout"
|
32
32
|
assert_same CfScript.config.io.stdout, CfScript.stdout
|
33
33
|
|
34
|
-
assert CfScript.respond_to? :stderr
|
34
|
+
assert CfScript.respond_to? :stderr, "Expected CfScript to respond to stderr"
|
35
35
|
assert_same CfScript.config.io.stderr, CfScript.stderr
|
36
36
|
end
|
37
37
|
|
@@ -64,10 +64,16 @@ describe CfScript do
|
|
64
64
|
end
|
65
65
|
|
66
66
|
it "doesn't expose private methods" do
|
67
|
-
refute CfScript.respond_to?(:stack_level)
|
68
|
-
|
67
|
+
refute CfScript.respond_to?(:stack_level),
|
68
|
+
"Expected CfScript not to respond to stack_level"
|
69
69
|
|
70
|
-
|
71
|
-
|
70
|
+
assert CfScript.singleton_class.private_method_defined?(:stack_level),
|
71
|
+
"Expected CfScript singleton to respond to stack_level"
|
72
|
+
|
73
|
+
refute CfScript.respond_to?(:print_error),
|
74
|
+
"Expected CfScript not to respond to print_error"
|
75
|
+
|
76
|
+
assert CfScript.singleton_class.private_method_defined?(:print_error),
|
77
|
+
"Expected CfScript singleton to respond to print_error"
|
72
78
|
end
|
73
79
|
end
|
data/test/support/assertions.rb
CHANGED
@@ -12,3 +12,28 @@ def assert_app_info(app_info, expected_instances)
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
15
|
+
|
16
|
+
# Asserts that a command correctly prepares its arguments for passing to
|
17
|
+
# run_cf and in turn to the cf binary. call_args is an array of the args
|
18
|
+
# to be passed to the command's run method, and run_args is an array of
|
19
|
+
# the args expected to be passed to run_cf.
|
20
|
+
def assert_command_args(command, call_args, run_args)
|
21
|
+
output = CfScript::Output.new(command, '', '',
|
22
|
+
OpenStruct.new(
|
23
|
+
exitstatus: 0,
|
24
|
+
success?: true,
|
25
|
+
)
|
26
|
+
)
|
27
|
+
|
28
|
+
arg_catcher = lambda do |cmd, *args, &block|
|
29
|
+
assert_equal run_args, args
|
30
|
+
end
|
31
|
+
|
32
|
+
fake_cf do
|
33
|
+
command.stub :run_cf, arg_catcher, output do
|
34
|
+
command.stub :good_run?, true do
|
35
|
+
command.run(*call_args)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -27,7 +27,7 @@ class FixtureExecutor
|
|
27
27
|
|
28
28
|
def fixture_for(command_line)
|
29
29
|
case @command_fixtures[command_line.name]
|
30
|
-
when :fail, :no_endpoint, :no_login
|
30
|
+
when :fail, :no_endpoint, :no_login, :empty
|
31
31
|
dir = File.join('commands', 'common')
|
32
32
|
key = @command_fixtures[command_line.name]
|
33
33
|
else
|
@@ -5,13 +5,25 @@ module MockExecution
|
|
5
5
|
ENV['CF_BINARY'] = 'cf'
|
6
6
|
end
|
7
7
|
|
8
|
-
def test_config(
|
9
|
-
CfScript.config.io.stdout
|
10
|
-
CfScript.config.io.stderr
|
8
|
+
def test_config(options = {})
|
9
|
+
CfScript.config.io.stdout = options[:stderr] || StringIO.new
|
10
|
+
CfScript.config.io.stderr = options[:stderr] || StringIO.new
|
11
11
|
|
12
|
-
CfScript.config.ui.
|
12
|
+
CfScript.config.ui.tags = options.key?(:tags) ? options[:tags] : true
|
13
|
+
CfScript.config.ui.color = options.key?(:color) ? options[:color] : false
|
14
|
+
CfScript.config.ui.emoji = options.key?(:emoji) ? options[:emoji] : false
|
13
15
|
|
14
|
-
CfScript.config.runtime.trace =
|
16
|
+
CfScript.config.runtime.trace = options.key?(:trace) ? options[:trace] : true
|
17
|
+
end
|
18
|
+
|
19
|
+
def with_config(config_options = {}, &block)
|
20
|
+
config_context = ConfigContext.new
|
21
|
+
|
22
|
+
test_config(config_options)
|
23
|
+
|
24
|
+
yield
|
25
|
+
ensure
|
26
|
+
config_context.reset
|
15
27
|
end
|
16
28
|
|
17
29
|
def test_executor(executor)
|
@@ -44,8 +56,18 @@ module MockExecution
|
|
44
56
|
end
|
45
57
|
end
|
46
58
|
|
59
|
+
def fake_io(config_options = {}, &block)
|
60
|
+
config_context = ConfigContext.new
|
61
|
+
|
62
|
+
test_config(config_options)
|
63
|
+
|
64
|
+
yield(CfScript.stdout.string, CfScript.stderr.string)
|
65
|
+
ensure
|
66
|
+
config_context.reset
|
67
|
+
end
|
68
|
+
|
47
69
|
def fake_cf(command_fixtures = {}, &block)
|
48
|
-
|
70
|
+
config_context = ConfigContext.new
|
49
71
|
|
50
72
|
test_env
|
51
73
|
test_config
|
@@ -53,6 +75,6 @@ module MockExecution
|
|
53
75
|
|
54
76
|
yield(CfScript.stdout.string, CfScript.stderr.string)
|
55
77
|
ensure
|
56
|
-
|
78
|
+
config_context.reset
|
57
79
|
end
|
58
80
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cf_script
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.1
|
4
|
+
version: 0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ammar Ali
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|
@@ -32,6 +32,7 @@ extensions: []
|
|
32
32
|
extra_rdoc_files: []
|
33
33
|
files:
|
34
34
|
- ".gitignore"
|
35
|
+
- ".travis.yml"
|
35
36
|
- CHANGELOG.md
|
36
37
|
- Gemfile
|
37
38
|
- LICENSE
|
@@ -39,14 +40,15 @@ files:
|
|
39
40
|
- Rakefile
|
40
41
|
- cf_script.gemspec
|
41
42
|
- lib/cf_script.rb
|
42
|
-
- lib/cf_script/callbacks.rb
|
43
43
|
- lib/cf_script/command.rb
|
44
44
|
- lib/cf_script/command/base.rb
|
45
45
|
- lib/cf_script/command/cf/apps.rb
|
46
46
|
- lib/cf_script/command/cf/apps/app.rb
|
47
47
|
- lib/cf_script/command/cf/apps/apps.rb
|
48
|
+
- lib/cf_script/command/cf/apps/delete.rb
|
48
49
|
- lib/cf_script/command/cf/apps/env.rb
|
49
50
|
- lib/cf_script/command/cf/apps/push.rb
|
51
|
+
- lib/cf_script/command/cf/apps/rename.rb
|
50
52
|
- lib/cf_script/command/cf/apps/restage.rb
|
51
53
|
- lib/cf_script/command/cf/apps/restart.rb
|
52
54
|
- lib/cf_script/command/cf/apps/set_env.rb
|
@@ -75,7 +77,6 @@ files:
|
|
75
77
|
- lib/cf_script/command/runner.rb
|
76
78
|
- lib/cf_script/config.rb
|
77
79
|
- lib/cf_script/executor.rb
|
78
|
-
- lib/cf_script/executor/non_blocking.rb
|
79
80
|
- lib/cf_script/executor/recorder.rb
|
80
81
|
- lib/cf_script/executor/simple.rb
|
81
82
|
- lib/cf_script/manifest.rb
|
@@ -83,7 +84,6 @@ files:
|
|
83
84
|
- lib/cf_script/object/api_endpoint.rb
|
84
85
|
- lib/cf_script/object/app_info.rb
|
85
86
|
- lib/cf_script/object/app_list.rb
|
86
|
-
- lib/cf_script/object/app_spec.rb
|
87
87
|
- lib/cf_script/object/attribute.rb
|
88
88
|
- lib/cf_script/object/attribute_list.rb
|
89
89
|
- lib/cf_script/object/instance_status.rb
|
@@ -116,14 +116,17 @@ files:
|
|
116
116
|
- test/fixtures/commands/apps/app/running.yml
|
117
117
|
- test/fixtures/commands/apps/apps/good.yml
|
118
118
|
- test/fixtures/commands/apps/apps/no_apps.yml
|
119
|
-
- test/fixtures/commands/apps/
|
119
|
+
- test/fixtures/commands/apps/delete/good.yml
|
120
|
+
- test/fixtures/commands/apps/delete/not_exist.yml
|
121
|
+
- test/fixtures/commands/apps/env/empty_vars.yml
|
120
122
|
- test/fixtures/commands/apps/env/good.yml
|
121
123
|
- test/fixtures/commands/apps/push/good.yml
|
124
|
+
- test/fixtures/commands/apps/rename/good.yml
|
125
|
+
- test/fixtures/commands/apps/rename/not_found.yml
|
122
126
|
- test/fixtures/commands/apps/restage/good.yml
|
123
127
|
- test/fixtures/commands/apps/restage/not_found.yml
|
124
128
|
- test/fixtures/commands/apps/restart/good.yml
|
125
129
|
- test/fixtures/commands/apps/restart/not_found.yml
|
126
|
-
- test/fixtures/commands/apps/set_env/empty.yml
|
127
130
|
- test/fixtures/commands/apps/set_env/good.yml
|
128
131
|
- test/fixtures/commands/apps/set_env/not_found.yml
|
129
132
|
- test/fixtures/commands/apps/start/good.yml
|
@@ -131,9 +134,9 @@ files:
|
|
131
134
|
- test/fixtures/commands/apps/start/with_container.yml
|
132
135
|
- test/fixtures/commands/apps/stop/good.yml
|
133
136
|
- test/fixtures/commands/apps/stop/not_found.yml
|
134
|
-
- test/fixtures/commands/apps/unset_env/empty.yml
|
135
137
|
- test/fixtures/commands/apps/unset_env/good.yml
|
136
138
|
- test/fixtures/commands/apps/unset_env/not_found.yml
|
139
|
+
- test/fixtures/commands/common/empty.yml
|
137
140
|
- test/fixtures/commands/common/fail.yml
|
138
141
|
- test/fixtures/commands/common/no_endpoint.yml
|
139
142
|
- test/fixtures/commands/common/no_login.yml
|
@@ -142,13 +145,11 @@ files:
|
|
142
145
|
- test/fixtures/commands/general/api/good.yml
|
143
146
|
- test/fixtures/commands/general/api/not_set.yml
|
144
147
|
- test/fixtures/commands/general/api/set.yml
|
145
|
-
- test/fixtures/commands/general/auth/empty.yml
|
146
148
|
- test/fixtures/commands/general/auth/good.yml
|
147
149
|
- test/fixtures/commands/general/auth/rejected.yml
|
148
150
|
- test/fixtures/commands/general/login/good.yml
|
149
151
|
- test/fixtures/commands/general/login/rejected.yml
|
150
152
|
- test/fixtures/commands/general/logout/good.yml
|
151
|
-
- test/fixtures/commands/general/target/empty.yml
|
152
153
|
- test/fixtures/commands/general/target/good.yml
|
153
154
|
- test/fixtures/commands/general/target/no_space.yml
|
154
155
|
- test/fixtures/commands/general/target/not_found.yml
|
@@ -172,16 +173,16 @@ files:
|
|
172
173
|
- test/fixtures/commands/routes/unmap_route/good.yml
|
173
174
|
- test/fixtures/commands/routes/unmap_route/no_app.yml
|
174
175
|
- test/fixtures/commands/routes/unmap_route/no_domain.yml
|
175
|
-
- test/fixtures/commands/spaces/space/empty.yml
|
176
176
|
- test/fixtures/commands/spaces/space/good.yml
|
177
177
|
- test/fixtures/commands/spaces/space/staging.yml
|
178
|
-
- test/fixtures/commands/spaces/spaces/empty.yml
|
179
178
|
- test/fixtures/commands/spaces/spaces/good.yml
|
180
179
|
- test/lib/cf_script/command/base_test.rb
|
181
180
|
- test/lib/cf_script/command/cf/apps/app_test.rb
|
182
181
|
- test/lib/cf_script/command/cf/apps/apps_test.rb
|
182
|
+
- test/lib/cf_script/command/cf/apps/delete_test.rb
|
183
183
|
- test/lib/cf_script/command/cf/apps/env_test.rb
|
184
184
|
- test/lib/cf_script/command/cf/apps/push_test.rb
|
185
|
+
- test/lib/cf_script/command/cf/apps/rename_test.rb
|
185
186
|
- test/lib/cf_script/command/cf/apps/restage_test.rb
|
186
187
|
- test/lib/cf_script/command/cf/apps/restart_test.rb
|
187
188
|
- test/lib/cf_script/command/cf/apps/set_env_test.rb
|
@@ -216,12 +217,15 @@ files:
|
|
216
217
|
- test/lib/cf_script/output/parser/table_test.rb
|
217
218
|
- test/lib/cf_script/output/tests_test.rb
|
218
219
|
- test/lib/cf_script/output_test.rb
|
220
|
+
- test/lib/cf_script/scope/app/env_test.rb
|
221
|
+
- test/lib/cf_script/scope/app/routes_test.rb
|
219
222
|
- test/lib/cf_script/scope/app/state_test.rb
|
220
223
|
- test/lib/cf_script/scope/app_test.rb
|
221
224
|
- test/lib/cf_script/scope/script_test.rb
|
222
225
|
- test/lib/cf_script/scope/space_test.rb
|
223
226
|
- test/lib/cf_script/scope/target_test.rb
|
224
227
|
- test/lib/cf_script/scope_test.rb
|
228
|
+
- test/lib/cf_script/ui_test.rb
|
225
229
|
- test/lib/cf_script/utils_test.rb
|
226
230
|
- test/lib/cf_script_test.rb
|
227
231
|
- test/support/assertions.rb
|
@@ -252,9 +256,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
252
256
|
version: 2.0.0
|
253
257
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
254
258
|
requirements:
|
255
|
-
- - "
|
259
|
+
- - ">="
|
256
260
|
- !ruby/object:Gem::Version
|
257
|
-
version:
|
261
|
+
version: '0'
|
258
262
|
requirements: []
|
259
263
|
rubyforge_project:
|
260
264
|
rubygems_version: 2.5.1
|
@@ -265,8 +269,10 @@ test_files:
|
|
265
269
|
- test/lib/cf_script/command/base_test.rb
|
266
270
|
- test/lib/cf_script/command/cf/apps/app_test.rb
|
267
271
|
- test/lib/cf_script/command/cf/apps/apps_test.rb
|
272
|
+
- test/lib/cf_script/command/cf/apps/delete_test.rb
|
268
273
|
- test/lib/cf_script/command/cf/apps/env_test.rb
|
269
274
|
- test/lib/cf_script/command/cf/apps/push_test.rb
|
275
|
+
- test/lib/cf_script/command/cf/apps/rename_test.rb
|
270
276
|
- test/lib/cf_script/command/cf/apps/restage_test.rb
|
271
277
|
- test/lib/cf_script/command/cf/apps/restart_test.rb
|
272
278
|
- test/lib/cf_script/command/cf/apps/set_env_test.rb
|
@@ -301,12 +307,15 @@ test_files:
|
|
301
307
|
- test/lib/cf_script/output/parser/table_test.rb
|
302
308
|
- test/lib/cf_script/output/tests_test.rb
|
303
309
|
- test/lib/cf_script/output_test.rb
|
310
|
+
- test/lib/cf_script/scope/app/env_test.rb
|
311
|
+
- test/lib/cf_script/scope/app/routes_test.rb
|
304
312
|
- test/lib/cf_script/scope/app/state_test.rb
|
305
313
|
- test/lib/cf_script/scope/app_test.rb
|
306
314
|
- test/lib/cf_script/scope/script_test.rb
|
307
315
|
- test/lib/cf_script/scope/space_test.rb
|
308
316
|
- test/lib/cf_script/scope/target_test.rb
|
309
317
|
- test/lib/cf_script/scope_test.rb
|
318
|
+
- test/lib/cf_script/ui_test.rb
|
310
319
|
- test/lib/cf_script/utils_test.rb
|
311
320
|
- test/lib/cf_script_test.rb
|
312
321
|
- test/support/assertions.rb
|
data/lib/cf_script/callbacks.rb
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
module CfScript::Callbacks
|
2
|
-
def callbacks
|
3
|
-
@callbacks ||= { before: {}, after: {} }
|
4
|
-
end
|
5
|
-
|
6
|
-
def before(step, &block)
|
7
|
-
callbacks[:before][step] ||= []
|
8
|
-
callbacks[:before][step] << block
|
9
|
-
end
|
10
|
-
|
11
|
-
def after(step, &block)
|
12
|
-
callbacks[:after][step] ||= []
|
13
|
-
callbacks[:after][step] << block
|
14
|
-
end
|
15
|
-
|
16
|
-
def callbacks_for(type, step)
|
17
|
-
return [] unless callbacks.key?(type) && callbacks[type].key?(step)
|
18
|
-
|
19
|
-
callbacks[type][step]
|
20
|
-
end
|
21
|
-
|
22
|
-
def run_callbacks(type, step)
|
23
|
-
return unless callbacks[type].key?(step)
|
24
|
-
|
25
|
-
callbacks[type][step].each do |callback|
|
26
|
-
instance_eval(&callback)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def run_before(step)
|
31
|
-
run_callbacks(:before, step)
|
32
|
-
end
|
33
|
-
|
34
|
-
def run_after(step)
|
35
|
-
run_callbacks(:after, step)
|
36
|
-
end
|
37
|
-
|
38
|
-
def run_around(step, &block)
|
39
|
-
run_before(step)
|
40
|
-
yield
|
41
|
-
run_after(step)
|
42
|
-
end
|
43
|
-
end
|