-
Notifications
You must be signed in to change notification settings - Fork 1
/
login_tests.yml
271 lines (264 loc) · 11.5 KB
/
login_tests.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
---
- name: "Login via environmentals only."
description: >
This is a test to see if we can login via environmentals only. This should also create a config file in the
default location.
script:
- kfutil logout
- kfutil login --no-prompt
- cat $HOME/.keyfactor/command_config.json
variables:
KEYFACTOR_USERNAME: "{{username}}"
KEYFACTOR_PASSWORD: "{{password}}"
KEYFACTOR_API_PATH: "{{api_path}}"
KEYFACTOR_HOSTNAME: "{{hostname}}"
KEYFACTOR_DOMAIN: "{{domain}}"
- name: "Login via config file only."
description: >
This is a test to see if we can login via config file only with no environmental variables set.
expect:
- "Login successful!"
script:
- kfutil logout
- kfutil login --no-prompt
variables:
KFUTIL_CONFIG_FILE: "{{config_file}}"
- name: "Login via invalid credentials in config file only."
description: >
This is a test to see if we fail to login via config file only. The config file should exist and be in
a valid format but the credentials should be invalid. We expect the login to fail.
expect:
- "Login failed. Please check your credentials and try again."
pass_if:
- "exit_code != 0"
script:
- kfutil logout
- kfutil login --no-prompt
variables:
KFUTIL_CONFIG_FILE: "{{invalid_creds_config_file}}"
- name: "Login via valid v0 (singleton) config file format only. Config file ref in environmental variable."
description: >
This is a test to see if we fail to login via config file only. The config file should exist and be in
a valid v0(singleton) format, the credentials should be valid. We expect the login to succeed. The config
file reference is passed in via an environmental variable.
expect:
- "Login successful!"
script:
- kfutil logout
- kfutil login --no-prompt
variables:
KFUTIL_CONFIG_FILE: "{{v0_creds_config_file}}"
- name: "Login via valid v0 (singleton) config file format only. Explicit config file ref."
description: >
This is a test to see if we login via valid config file passed explicitly to the --config-file flag.
The config file should exist and be in a valid v0(singleton) format, the credentials should be valid.
We expect the login to succeed.
expect:
- "Login successful!"
script:
- kfutil logout
- kfutil login --no-prompt --config-file "{{v0_creds_config_file}}"
- name: "Login via invalid v0 (singleton) config file format only. Explicit config file ref."
description: >
This is a test to see if we login via valid config file passed explicitly to the --config-file flag.
The config file should exist and be in a valid v0(singleton) format, the credentials should be invalid.
We expect the login to fail.
expect:
- "Login failed. Please check your credentials and try again."
pass_if:
- "exit_code != 0"
script:
- kfutil logout
- kfutil login --no-prompt --config-file "{{v0_invalid_creds_config_file}}"
- name: "Login where invalid environmental variables take precedence over valid config file."
expect:
- "Login failed. Please check your credentials and try again."
pass_if:
- "exit_code != 0"
description: >
This is a test to see if we fail to login with invalid environmental variables and a valid config file present.
In this case we expect the environmental variables to take precedence as we have not specified the --config-file
or --profile flags. The environmental variable for username is invalid and should not allow us to login.
script:
- kfutil logout
- kfutil login --no-prompt
variables:
KFUTIL_CONFIG_FILE: "{{config_file}}"
KEYFACTOR_USERNAME: "{{invalid_username}}"
KEYFACTOR_PASSWORD: "{{password}}"
KEYFACTOR_API_PATH: "{{api_path}}"
KEYFACTOR_HOSTNAME: "{{hostname}}"
KEYFACTOR_DOMAIN: "{{domain}}"
- name: "Login where environmental variables take precedence over invalid config file."
expect:
- "Login successful!"
description: >
This is a test to see if we can login via environmental variables with an invalid config present. In this case
we expect the environmental variables to take precedence as we have not specified the --config-file or
--profile flags. The environmental variables are valid and should allow us to login.
script:
- kfutil logout
- kfutil login --no-prompt
variables:
KFUTIL_CONFIG_FILE: "{{invalid_config_file}}"
KEYFACTOR_USERNAME: "{{invalid_username}}"
KEYFACTOR_PASSWORD: "{{password}}"
KEYFACTOR_API_PATH: "{{api_path}}"
KEYFACTOR_HOSTNAME: "{{hostname}}"
KEYFACTOR_DOMAIN: "{{domain}}"
- name: "Login without any configuration present."
description: >
This is a test to ensure login fails when no configuration is present. We expect the login to fail.
expect:
- "Login failed. Please check your credentials and try again."
pass_if:
- "exit_code != 0"
script:
- kfutil logout
- kfutil login --no-prompt
- name: "Login with invalid JSON config implicit."
description: >
This is a test to ensure login fails when the config file is not valid JSON. We expect the login to fail.
expect:
- "Login failed. Config is not valid JSON."
pass_if:
- "exit_code != 0"
script:
- kfutil logout
- kfutil login --no-prompt
- name: "Login with invalid JSON config explicit."
description: >
This is a test to ensure login fails when the config file is not valid JSON. We expect the login to fail.
expect:
- "Login failed. Config is not valid JSON."
pass_if:
- "exit_code != 0"
script:
- kfutil logout
- kfutil login --no-prompt --config-file "{{invalid_json_config_file}}"
- name: "Login with invalid config path explicit."
description: >
This is a test to ensure login fails when the config file is not found. We expect the login to fail.
expect:
- "Login failed. Config file not found and no evironmental variables defined."
pass_if:
- "exit_code != 0"
script:
- kfutil logout
- kfutil login --no-prompt --config-file "{{invalid_config_file_path}}"
- name: "Login with invalid config path implicit."
description: >
This is a test to ensure login fails when the config file is implicitly passed with an invalid path
via KFUTIL_CONFIG_FILE and is not found. We expect the login to fail.
expect:
- "Login failed. Config file not found."
pass_if:
- "exit_code != 0"
script:
- kfutil logout
- kfutil login --no-prompt
variables:
KFUTIL_CONFIG_FILE: "{{invalid_config_file_path}}"
- name: "Login via valid v1 config file format only. Config file ref in environmental variable. Implicit profile (default)."
description: >
This is a test to see if we fail to login via config file only. The config file should exist and be in
a valid v1 format, the credential in 'default' should be present and valid. We expect the login to succeed.
The config file reference is passed in via an environmental variable.
expect:
- "Login successful!"
script:
- kfutil logout
- kfutil login --no-prompt
variables:
KFUTIL_CONFIG_FILE: "{{v1_creds_config_file}}"
- name: "Login via valid v1 config file format only. Config file and profile refs in environmental variables."
description: >
This is a test to see if we fail to login via config file only. The config file should exist and be in
a valid v1 format, the credential in 'default' should be present and valid. We expect the login to succeed.
The config file reference and profile are passed in via an environmental variables KFUTIL_CONFIG_FILE and
KFUTIL_PROFILE respectively.
expect:
- "Login successful!"
script:
- kfutil logout
- kfutil login --no-prompt
variables:
KFUTIL_CONFIG_FILE: "{{v1_creds_config_file}}"
KFUTIL_PROFILE: "{{v1_creds_profile}}"
- name: "Login via valid v1 config file format only. Config file and profile refs explicitly passed."
description: >
This is a test to see if we fail to login via config file only. The config file should exist and be in
a valid v1 format, the credential in 'default' should be present and valid. We expect the login to succeed.
The config file reference and profile are passed in via an environmental variables KFUTIL_CONFIG_FILE and
KFUTIL_PROFILE respectively.
expect:
- "Login successful!"
script:
- kfutil logout
- kfutil login --no-prompt --config-file "{{v1_creds_config_file}}" --profile "{{v1_creds_profile}}"
- name: "Login via valid v1 config file format only. Config file ref in environmental variable. Explicit profile."
description: >
This is a test to see if we fail to login via config file only. The config file should exist and be in
a valid v1 format, the credential in 'default' should be present and valid. We expect the login to succeed.
The config file reference is passed in via an environmental variable.
expect:
- "Login successful!"
script:
- kfutil logout
- kfutil login --no-prompt --profile "{{v1_creds_profile}}"
variables:
KFUTIL_CONFIG_FILE: "{{v1_creds_config_file}}"
- name: "Login via valid v1 config file format only. Config file ref in environmental variable. Invalid explicit profile."
description: >
This is a test to see if we fail to login via config file only. The config file should exist and be in
a valid v1 format, the credential in 'default' should be present and valid. We expect the login to fail.
The config file reference is passed in via an environmental variable and profile is passed in via the
--profile flag but is not present in the config file.
expect:
- "Login failed. Profile not found."
pass_if:
- "exit_code != 0"
script:
- kfutil logout
- kfutil login --no-prompt --profile "{{invalid_profile}}"
variables:
KFUTIL_CONFIG_FILE: "{{v1_creds_config_file}}"
- name: "Login via valid environmental variables. Config file implicit. Invalid explicit profile."
description: >
This is a test to see if we can login via valid environmental variables with an invalid profile passed in
--profile. A valid config file should exist and be in a valid v1 format and be in the kfutil default config file,
path. The defined profile should not be present in the config. We expect the login to fail as --profile is passed
and should not use the environmental variables.
expect:
- "Login failed. Profile not found."
pass_if:
- "exit_code != 0"
script:
- kfutil logout
- kfutil login --no-prompt --profile "{{invalid_profile}}"
variables:
KEYFACTOR_USERNAME: "{{username}}"
KEYFACTOR_PASSWORD: "{{password}}"
KEYFACTOR_API_PATH: "{{api_path}}"
KEYFACTOR_HOSTNAME: "{{hostname}}"
KEYFACTOR_DOMAIN: "{{domain}}"
- name: "Login via valid environmental variables. Config file implicit. Invalid implicit profile in KFUTIL_PROFILE."
description: >
This is a test to see if we can login via valid environmental variables with an invalid profile passed in
KFUTIL_PROFILE. A valid config file should exist and be in a valid v1 format and be in the kfutil default config file,
path. The defined profile should not be present in the config. We expect the login to fail as --profile is passed
and should not use the environmental variables.
expect:
- "Login failed. Profile not found."
pass_if:
- "exit_code != 0"
script:
- kfutil logout
- kfutil login --no-prompt --config-file "{{v1_creds_config_file}}"
variables:
KEYFACTOR_USERNAME: "{{username}}"
KEYFACTOR_PASSWORD: "{{password}}"
KEYFACTOR_API_PATH: "{{api_path}}"
KEYFACTOR_HOSTNAME: "{{hostname}}"
KEYFACTOR_DOMAIN: "{{domain}}"
KFUTIL_PROFILE: "{{invalid_profile}}"