admin_module 0.1.4

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.
Files changed (141) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.rspec +3 -0
  4. data/Gemfile +14 -0
  5. data/Guardfile +24 -0
  6. data/LICENSE +22 -0
  7. data/README.md +281 -0
  8. data/Rakefile +98 -0
  9. data/admin_module.gemspec +34 -0
  10. data/bin/admin_module +13 -0
  11. data/lib/admin_module.rb +260 -0
  12. data/lib/admin_module/cli.rb +54 -0
  13. data/lib/admin_module/cli/cli_guideline.rb +80 -0
  14. data/lib/admin_module/cli/cli_lock.rb +149 -0
  15. data/lib/admin_module/cli/cli_parameter.rb +66 -0
  16. data/lib/admin_module/cli/cli_task.rb +149 -0
  17. data/lib/admin_module/cli_old.rb +92 -0
  18. data/lib/admin_module/client.rb +146 -0
  19. data/lib/admin_module/command.rb +25 -0
  20. data/lib/admin_module/command/client_access.rb +43 -0
  21. data/lib/admin_module/command/config.rb +310 -0
  22. data/lib/admin_module/command/dc.rb +110 -0
  23. data/lib/admin_module/command/gdl.rb +71 -0
  24. data/lib/admin_module/command/lock.rb +110 -0
  25. data/lib/admin_module/command/ppm.rb +142 -0
  26. data/lib/admin_module/command/rule.rb +77 -0
  27. data/lib/admin_module/command/ruleset.rb +56 -0
  28. data/lib/admin_module/command/snapshot.rb +110 -0
  29. data/lib/admin_module/command/stage.rb +131 -0
  30. data/lib/admin_module/command/task.rb +110 -0
  31. data/lib/admin_module/config_helper.rb +33 -0
  32. data/lib/admin_module/dc.rb +133 -0
  33. data/lib/admin_module/guideline.rb +86 -0
  34. data/lib/admin_module/locks.rb +142 -0
  35. data/lib/admin_module/page_factory.rb +55 -0
  36. data/lib/admin_module/pages.rb +120 -0
  37. data/lib/admin_module/pages/dc_definitions_page.rb +73 -0
  38. data/lib/admin_module/pages/dc_detail_page.rb +187 -0
  39. data/lib/admin_module/pages/guideline_page.rb +35 -0
  40. data/lib/admin_module/pages/guideline_version_page.rb +140 -0
  41. data/lib/admin_module/pages/guidelines_page.rb +59 -0
  42. data/lib/admin_module/pages/guidelines_version_all_page.rb +116 -0
  43. data/lib/admin_module/pages/lock_definition_page.rb +178 -0
  44. data/lib/admin_module/pages/lock_definitions_page.rb +69 -0
  45. data/lib/admin_module/pages/login_page.rb +75 -0
  46. data/lib/admin_module/pages/parameter_page.rb +62 -0
  47. data/lib/admin_module/pages/parameters_page.rb +46 -0
  48. data/lib/admin_module/pages/ppms_page.rb +110 -0
  49. data/lib/admin_module/pages/rule_page.rb +68 -0
  50. data/lib/admin_module/pages/rules_page.rb +74 -0
  51. data/lib/admin_module/pages/ruleset_page.rb +64 -0
  52. data/lib/admin_module/pages/rulesets_page.rb +60 -0
  53. data/lib/admin_module/pages/select_list_syncable.rb +64 -0
  54. data/lib/admin_module/pages/snapshot_definitions_page.rb +73 -0
  55. data/lib/admin_module/pages/snapshot_detail_page.rb +246 -0
  56. data/lib/admin_module/pages/workflow_detail_page.rb +451 -0
  57. data/lib/admin_module/pages/workflow_detail_task_addl_detail_page.rb +172 -0
  58. data/lib/admin_module/pages/workflow_detail_task_mappings_page.rb +163 -0
  59. data/lib/admin_module/pages/workflow_detail_task_screens_page.rb +75 -0
  60. data/lib/admin_module/pages/workflow_details_page.rb +67 -0
  61. data/lib/admin_module/pages/workflow_task_page.rb +107 -0
  62. data/lib/admin_module/pages/workflow_tasks_page.rb +111 -0
  63. data/lib/admin_module/ppms.rb +78 -0
  64. data/lib/admin_module/rake.rb +22 -0
  65. data/lib/admin_module/rake/dc_tasks.rb +185 -0
  66. data/lib/admin_module/rake/deploy_task.rb +59 -0
  67. data/lib/admin_module/rake/gdl_tasks.rb +189 -0
  68. data/lib/admin_module/rake/lock_tasks.rb +189 -0
  69. data/lib/admin_module/rake/parameter_task.rb +86 -0
  70. data/lib/admin_module/rake/ppm_tasks.rb +248 -0
  71. data/lib/admin_module/rake/rule_tasks.rb +157 -0
  72. data/lib/admin_module/rake/snapshot_tasks.rb +223 -0
  73. data/lib/admin_module/rake/stage_tasks.rb +197 -0
  74. data/lib/admin_module/rake/stages_task.rb +197 -0
  75. data/lib/admin_module/rake/task_tasks.rb +189 -0
  76. data/lib/admin_module/rules.rb +50 -0
  77. data/lib/admin_module/rulesets.rb +42 -0
  78. data/lib/admin_module/snapshots.rb +133 -0
  79. data/lib/admin_module/stages.rb +171 -0
  80. data/lib/admin_module/tasks.rb +147 -0
  81. data/lib/admin_module/version.rb +3 -0
  82. data/old_spec/lib/admin_module/cli_configuration_spec.rb +126 -0
  83. data/old_spec/lib/admin_module/cli_create_stage_spec.rb +89 -0
  84. data/old_spec/lib/admin_module/cli_delete_rule_spec.rb +57 -0
  85. data/old_spec/lib/admin_module/cli_deploy_spec.rb +57 -0
  86. data/old_spec/lib/admin_module/cli_export_locks_spec.rb +62 -0
  87. data/old_spec/lib/admin_module/cli_export_stages_spec.rb +62 -0
  88. data/old_spec/lib/admin_module/cli_guidelines_version_all_spec.rb +58 -0
  89. data/old_spec/lib/admin_module/cli_import_locks_spec.rb +153 -0
  90. data/old_spec/lib/admin_module/cli_import_stages_spec.rb +173 -0
  91. data/old_spec/lib/admin_module/cli_modify_locks_spec.rb +128 -0
  92. data/old_spec/lib/admin_module/cli_modify_stages_spec.rb +88 -0
  93. data/old_spec/lib/admin_module/cli_rename_rule_spec.rb +53 -0
  94. data/old_spec/lib/admin_module/cli_rename_ruleset_spec.rb +53 -0
  95. data/old_spec/lib/admin_module/cli_var_spec.rb +41 -0
  96. data/old_spec/lib/admin_module/rake/deploy_task_spec.rb +85 -0
  97. data/old_spec/lib/admin_module/rake/parameter_task_spec.rb +58 -0
  98. data/old_spec/lib/admin_module/rake/rules_task_spec.rb +75 -0
  99. data/spec/data/build/test1.xml +0 -0
  100. data/spec/data/build/test2.xml +1 -0
  101. data/spec/data/import_dcs.yml +31 -0
  102. data/spec/data/import_locks.yml +4 -0
  103. data/spec/data/import_snapshots.yml +35 -0
  104. data/spec/data/import_stages.yml +4 -0
  105. data/spec/data/import_tasks.yml +25 -0
  106. data/spec/data/patch-test.xml +1 -0
  107. data/spec/data/remove_test_del_rule.xml +1 -0
  108. data/spec/data/stages.yml +518 -0
  109. data/spec/data/test_del_rule.xml +1 -0
  110. data/spec/lib/admin_module/admin_module_spec.rb +175 -0
  111. data/spec/lib/admin_module/cli_spec.rb +36 -0
  112. data/spec/lib/admin_module/client_spec.rb +158 -0
  113. data/spec/lib/admin_module/command/config_spec.rb +477 -0
  114. data/spec/lib/admin_module/command/dc_spec.rb +202 -0
  115. data/spec/lib/admin_module/command/gdl_spec.rb +139 -0
  116. data/spec/lib/admin_module/command/lock_spec.rb +207 -0
  117. data/spec/lib/admin_module/command/rule_spec.rb +163 -0
  118. data/spec/lib/admin_module/command/ruleset_spec.rb +124 -0
  119. data/spec/lib/admin_module/command/snapshot_spec.rb +202 -0
  120. data/spec/lib/admin_module/command/stage_spec.rb +259 -0
  121. data/spec/lib/admin_module/command/task_spec.rb +207 -0
  122. data/spec/lib/admin_module/dc_spec.rb +192 -0
  123. data/spec/lib/admin_module/guideline_spec.rb +177 -0
  124. data/spec/lib/admin_module/locks_spec.rb +188 -0
  125. data/spec/lib/admin_module/rules_spec.rb +110 -0
  126. data/spec/lib/admin_module/rulesets_spec.rb +85 -0
  127. data/spec/lib/admin_module/snapshot_spec.rb +192 -0
  128. data/spec/lib/admin_module/stages_spec.rb +179 -0
  129. data/spec/lib/admin_module/tasks_spec.rb +196 -0
  130. data/spec/spec_helper.rb +54 -0
  131. data/spec/support/asserts.rb +13 -0
  132. data/spec/support/data_clearing.rb +28 -0
  133. data/spec/support/dirs.rb +54 -0
  134. data/spec/support/helpers.rb +83 -0
  135. data/spec/support/lock.rb +23 -0
  136. data/spec/support/mocks.rb +213 -0
  137. data/spec/support/snapshot.rb +28 -0
  138. data/spec/support/stage.rb +22 -0
  139. data/spec/support/stage_factory.rb +138 -0
  140. data/spec/support/task.rb +23 -0
  141. metadata +381 -0
@@ -0,0 +1,259 @@
1
+ require 'pathname'
2
+ require Pathname(__FILE__).ascend{|d| h=d+'spec_helper.rb'; break h if h.file?}
3
+
4
+
5
+ describe 'command stage' do
6
+
7
+ let(:login_page) do
8
+ obj = double('login_page')
9
+ allow(obj)
10
+ .to receive(:logout)
11
+ obj
12
+ end
13
+
14
+ let(:page_factory) do
15
+ obj = MockPageFactory.new
16
+ obj.login_page = login_page
17
+ obj.guidelines_page = double('guidelines_page')
18
+ obj.stages_page = double('stages_page')
19
+ obj
20
+ end
21
+
22
+ let(:stages_mock) { mock_stages(page_factory) }
23
+
24
+ let(:client) do
25
+ obj = AdminModule::Client.new
26
+ obj.page_factory = page_factory
27
+ obj
28
+ end
29
+
30
+ let(:stage_list) { ['Stage1', 'Stage2', 'Stage 33'] }
31
+
32
+ before do
33
+ AdminModule.configure do |config|
34
+ config.credentials[:dev] = ['user', 'pass']
35
+ end
36
+
37
+ allow(client)
38
+ .to receive(:stages)
39
+ .and_return(stages_mock)
40
+ end
41
+
42
+ context "list" do
43
+ it "displays list of stages" do
44
+ expect(client)
45
+ .to receive(:user=)
46
+ .with('user')
47
+
48
+ expect(client)
49
+ .to receive(:password=)
50
+ .with('pass')
51
+
52
+ expect(client)
53
+ .to receive(:stages)
54
+
55
+ expect(stages_mock)
56
+ .to receive(:list)
57
+ .and_return(stage_list)
58
+
59
+ expect(client)
60
+ .to receive(:logout)
61
+
62
+ build_dir = data_dir('build')
63
+
64
+ output = capture_output do
65
+ run_with_args %W(stage list -e dev), client
66
+ end
67
+
68
+ expect( output ).to include stage_list[0]
69
+ expect( output ).to include stage_list[1]
70
+ expect( output ).to include stage_list[2]
71
+ end
72
+ end
73
+
74
+ context "rename" do
75
+ it "renames a stage" do
76
+ expect(client)
77
+ .to receive(:user=)
78
+ .with('user')
79
+
80
+ expect(client)
81
+ .to receive(:password=)
82
+ .with('pass')
83
+
84
+ expect(client)
85
+ .to receive(:stages)
86
+
87
+ expect(stages_mock)
88
+ .to receive(:rename)
89
+ .with('TestStage1', 'TestStage2')
90
+
91
+ expect(client)
92
+ .to receive(:logout)
93
+
94
+ build_dir = data_dir('build')
95
+ run_with_args %w(stage rename -e dev TestStage1 TestStage2), client
96
+ end
97
+
98
+ it "displays a helpful message if rename fails" do
99
+ msg = 'rename failed'
100
+
101
+ expect(stages_mock)
102
+ .to receive(:rename)
103
+ .and_raise(ArgumentError, msg)
104
+
105
+ output = capture_output do
106
+ run_with_args %w(stage rename -e dev TestStage1 TestStage2), client
107
+ end
108
+
109
+ expect( output ).to include msg
110
+ end
111
+ end
112
+
113
+ context "import" do
114
+ it "imports a stages yaml file" do
115
+ expect(client)
116
+ .to receive(:user=)
117
+ .with('user')
118
+
119
+ expect(client)
120
+ .to receive(:password=)
121
+ .with('pass')
122
+
123
+ expect(client)
124
+ .to receive(:stages)
125
+
126
+ expect(stages_mock)
127
+ .to receive(:import)
128
+ .with('path/to/import/file', false)
129
+
130
+ expect(client)
131
+ .to receive(:logout)
132
+
133
+ run_with_args %w(stage import -e dev path/to/import/file), client
134
+ end
135
+
136
+ it "allows stage creation during import of a yaml file" do
137
+ expect(client)
138
+ .to receive(:user=)
139
+ .with('user')
140
+
141
+ expect(client)
142
+ .to receive(:password=)
143
+ .with('pass')
144
+
145
+ expect(client)
146
+ .to receive(:stages)
147
+
148
+ expect(stages_mock)
149
+ .to receive(:import)
150
+ .with('path/to/import/file', true)
151
+
152
+ expect(client)
153
+ .to receive(:logout)
154
+
155
+ run_with_args %w(stage import -e dev -c path/to/import/file), client
156
+ end
157
+ end
158
+
159
+ context "export" do
160
+ it "exports a stages yaml file" do
161
+ expect(client)
162
+ .to receive(:user=)
163
+ .with('user')
164
+
165
+ expect(client)
166
+ .to receive(:password=)
167
+ .with('pass')
168
+
169
+ expect(client)
170
+ .to receive(:stages)
171
+
172
+ expect(stages_mock)
173
+ .to receive(:export)
174
+ .with('path/to/export/file')
175
+
176
+ expect(client)
177
+ .to receive(:logout)
178
+
179
+ run_with_args %w(stage export -e dev path/to/export/file), client
180
+ end
181
+ end
182
+
183
+ context "delete" do
184
+ it "deletes a stage" do
185
+ expect(client)
186
+ .to receive(:user=)
187
+ .with('user')
188
+
189
+ expect(client)
190
+ .to receive(:password=)
191
+ .with('pass')
192
+
193
+ expect(client)
194
+ .to receive(:stages)
195
+
196
+ expect(stages_mock)
197
+ .to receive(:delete)
198
+ .with('SomeStageName')
199
+
200
+ expect(client)
201
+ .to receive(:logout)
202
+
203
+ run_with_args %w(stage delete -e dev SomeStageName), client
204
+ end
205
+ end
206
+
207
+ context "read" do
208
+ it "dumps a stage's configuration to the console" do
209
+ expect(client)
210
+ .to receive(:user=)
211
+ .with('user')
212
+
213
+ expect(client)
214
+ .to receive(:password=)
215
+ .with('pass')
216
+
217
+ expect(client)
218
+ .to receive(:stages)
219
+
220
+ expect(stages_mock)
221
+ .to receive(:read)
222
+ .with('TestStage1')
223
+ .and_return(create_stage_hash('TestStage1'))
224
+
225
+ expect(client)
226
+ .to receive(:logout)
227
+
228
+ output = capture_output do
229
+ run_with_args %w(stage read -e dev TestStage1), client
230
+ end
231
+
232
+ normalized_yaml = create_stage_hash('TestStage1')
233
+ normalized_yaml = { 'TestStage1' => normalized_yaml }.to_yaml
234
+
235
+ #puts '='*20 + ' ACTUAL ' + '='*20
236
+ #puts output
237
+ #puts '-'*20 + ' EXPECTED ' + '-'*20
238
+ #puts normalized_yaml
239
+ #puts '='*40
240
+ expect( output ).to include normalized_yaml
241
+ end
242
+ end
243
+
244
+ it "returns help info" do
245
+ output = capture_output do
246
+ run_with_args %w(help stage)
247
+ end
248
+
249
+ expect( output ).to include "stage help [COMMAND]"
250
+ expect( output ).to include "stage list"
251
+ expect( output ).to include "stage import <filepath>"
252
+ expect( output ).to include "stage export <filepath>"
253
+ expect( output ).to include "stage rename <srcname> <destname>"
254
+ expect( output ).to include "stage delete <name>"
255
+ expect( output ).to include "stage read <name>"
256
+ expect( output ).to include "e, [--environment=dev]"
257
+ end
258
+ end
259
+
@@ -0,0 +1,207 @@
1
+ require 'pathname'
2
+ require Pathname(__FILE__).ascend{|d| h=d+'spec_helper.rb'; break h if h.file?}
3
+
4
+
5
+ describe 'command task' do
6
+
7
+ let(:login_page) do
8
+ obj = double('login_page')
9
+ allow(obj)
10
+ .to receive(:logout)
11
+ obj
12
+ end
13
+
14
+ let(:page_factory) do
15
+ obj = MockPageFactory.new
16
+ obj.login_page = login_page
17
+ obj.guidelines_page = double('guidelines_page')
18
+ obj.tasks_page = double('tasks_page')
19
+ obj
20
+ end
21
+
22
+ let(:tasks_mock) { mock_tasks(page_factory) }
23
+
24
+ let(:client) do
25
+ obj = AdminModule::Client.new
26
+ obj.page_factory = page_factory
27
+ obj
28
+ end
29
+
30
+ let(:task_list) { ['Task1', 'Task2', 'Task 33'] }
31
+
32
+ before do
33
+ AdminModule.configure do |config|
34
+ config.credentials[:dev] = ['user', 'pass']
35
+ end
36
+
37
+ allow(client)
38
+ .to receive(:tasks)
39
+ .and_return(tasks_mock)
40
+ end
41
+
42
+ context "list" do
43
+ it "displays list of tasks" do
44
+ expect(client)
45
+ .to receive(:user=)
46
+ .with('user')
47
+
48
+ expect(client)
49
+ .to receive(:password=)
50
+ .with('pass')
51
+
52
+ expect(client)
53
+ .to receive(:tasks)
54
+
55
+ expect(tasks_mock)
56
+ .to receive(:list)
57
+ .and_return(task_list)
58
+
59
+ expect(client)
60
+ .to receive(:logout)
61
+
62
+ build_dir = data_dir('build')
63
+
64
+ output = capture_output do
65
+ run_with_args %W(task list -e dev), client
66
+ end
67
+
68
+ expect( output ).to include task_list[0]
69
+ expect( output ).to include task_list[1]
70
+ expect( output ).to include task_list[2]
71
+ end
72
+ end
73
+
74
+ context "rename" do
75
+ it "renames a task" do
76
+ expect(client)
77
+ .to receive(:user=)
78
+ .with('user')
79
+
80
+ expect(client)
81
+ .to receive(:password=)
82
+ .with('pass')
83
+
84
+ expect(client)
85
+ .to receive(:tasks)
86
+
87
+ expect(tasks_mock)
88
+ .to receive(:rename)
89
+ .with('TestTask1', 'TestTask2')
90
+
91
+ expect(client)
92
+ .to receive(:logout)
93
+
94
+ build_dir = data_dir('build')
95
+ run_with_args %w(task rename -e dev TestTask1 TestTask2), client
96
+ end
97
+
98
+ it "displays a helpful message if rename fails" do
99
+ msg = 'rename failed'
100
+
101
+ expect(tasks_mock)
102
+ .to receive(:rename)
103
+ .and_raise(ArgumentError, msg)
104
+
105
+ output = capture_output do
106
+ run_with_args %w(task rename -e dev TestTask1 TestTask2), client
107
+ end
108
+
109
+ expect( output ).to include msg
110
+ end
111
+ end
112
+
113
+ context "import" do
114
+ it "imports a tasks yaml file" do
115
+ expect(client)
116
+ .to receive(:user=)
117
+ .with('user')
118
+
119
+ expect(client)
120
+ .to receive(:password=)
121
+ .with('pass')
122
+
123
+ expect(client)
124
+ .to receive(:tasks)
125
+
126
+ expect(tasks_mock)
127
+ .to receive(:import)
128
+ .with('path/to/import/file')
129
+
130
+ expect(client)
131
+ .to receive(:logout)
132
+
133
+ run_with_args %w(task import -e dev path/to/import/file), client
134
+ end
135
+ end
136
+
137
+ context "export" do
138
+ it "exports a tasks yaml file" do
139
+ expect(client)
140
+ .to receive(:user=)
141
+ .with('user')
142
+
143
+ expect(client)
144
+ .to receive(:password=)
145
+ .with('pass')
146
+
147
+ expect(client)
148
+ .to receive(:tasks)
149
+
150
+ expect(tasks_mock)
151
+ .to receive(:export)
152
+ .with('path/to/export/file')
153
+
154
+ expect(client)
155
+ .to receive(:logout)
156
+
157
+ run_with_args %w(task export -e dev path/to/export/file), client
158
+ end
159
+ end
160
+
161
+ context "read" do
162
+ it "dumps a task's configuration to the console" do
163
+ expect(client)
164
+ .to receive(:user=)
165
+ .with('user')
166
+
167
+ expect(client)
168
+ .to receive(:password=)
169
+ .with('pass')
170
+
171
+ expect(client)
172
+ .to receive(:tasks)
173
+
174
+ expect(tasks_mock)
175
+ .to receive(:read)
176
+ .with('TestTask1')
177
+ .and_return(create_task_hash('TestTask1'))
178
+
179
+ expect(client)
180
+ .to receive(:logout)
181
+
182
+ output = capture_output do
183
+ run_with_args %w(task read -e dev TestTask1), client
184
+ end
185
+
186
+ normalized_yaml = create_task_hash('TestTask1')
187
+ normalized_yaml = { 'TestTask1' => normalized_yaml }.to_yaml
188
+
189
+ expect( output ).to include normalized_yaml
190
+ end
191
+ end
192
+
193
+ it "returns help info" do
194
+ output = capture_output do
195
+ run_with_args %w(help task)
196
+ end
197
+
198
+ expect( output ).to include "task help [COMMAND]"
199
+ expect( output ).to include "task list"
200
+ expect( output ).to include "task import <filepath>"
201
+ expect( output ).to include "task export <filepath>"
202
+ expect( output ).to include "task rename <srcname> <destname>"
203
+ expect( output ).to include "task read <name>"
204
+ expect( output ).to include "e, [--environment=dev]"
205
+ end
206
+ end
207
+