|
18 | 18 | show_aaa_default_output="""\
|
19 | 19 | AAA authentication login local (default)
|
20 | 20 | AAA authentication failthrough False (default)
|
| 21 | +AAA authorization login local (default) |
| 22 | +AAA accounting login disable (default) |
21 | 23 |
|
22 | 24 | """
|
23 | 25 |
|
24 | 26 | show_aaa_radius_output="""\
|
25 | 27 | AAA authentication login radius
|
26 | 28 | AAA authentication failthrough False (default)
|
| 29 | +AAA authorization login local (default) |
| 30 | +AAA accounting login disable (default) |
27 | 31 |
|
28 | 32 | """
|
29 | 33 |
|
30 | 34 | show_aaa_radius_local_output="""\
|
31 | 35 | AAA authentication login radius,local
|
32 | 36 | AAA authentication failthrough False (default)
|
| 37 | +AAA authorization login local (default) |
| 38 | +AAA accounting login disable (default) |
33 | 39 |
|
34 | 40 | """
|
35 | 41 |
|
|
40 | 46 | Not a valid command
|
41 | 47 | """
|
42 | 48 |
|
| 49 | +show_aaa_tacacs_authentication_output="""\ |
| 50 | +AAA authentication login tacacs+ |
| 51 | +AAA authentication failthrough False (default) |
| 52 | +AAA authorization login local (default) |
| 53 | +AAA accounting login disable (default) |
| 54 | +
|
| 55 | +""" |
| 56 | + |
| 57 | +show_aaa_tacacs_authorization_output="""\ |
| 58 | +AAA authentication login tacacs+ |
| 59 | +AAA authentication failthrough False (default) |
| 60 | +AAA authorization login tacacs+ |
| 61 | +AAA accounting login disable (default) |
| 62 | +
|
| 63 | +""" |
| 64 | + |
| 65 | +show_aaa_tacacs_local_authorization_output="""\ |
| 66 | +AAA authentication login tacacs+ |
| 67 | +AAA authentication failthrough False (default) |
| 68 | +AAA authorization login tacacs+,local |
| 69 | +AAA accounting login disable (default) |
| 70 | +
|
| 71 | +""" |
| 72 | + |
| 73 | +show_aaa_tacacs_accounting_output="""\ |
| 74 | +AAA authentication login tacacs+ |
| 75 | +AAA authentication failthrough False (default) |
| 76 | +AAA authorization login tacacs+,local |
| 77 | +AAA accounting login tacacs+ |
| 78 | +
|
| 79 | +""" |
| 80 | + |
| 81 | +show_aaa_tacacs_local_accounting_output="""\ |
| 82 | +AAA authentication login tacacs+ |
| 83 | +AAA authentication failthrough False (default) |
| 84 | +AAA authorization login tacacs+,local |
| 85 | +AAA accounting login tacacs+,local |
| 86 | +
|
| 87 | +""" |
| 88 | + |
| 89 | +show_aaa_disable_accounting_output="""\ |
| 90 | +AAA authentication login tacacs+ |
| 91 | +AAA authentication failthrough False (default) |
| 92 | +AAA authorization login tacacs+,local |
| 93 | +AAA accounting login disable |
| 94 | +
|
| 95 | +""" |
| 96 | + |
43 | 97 | class TestAaa(object):
|
44 | 98 | @classmethod
|
45 | 99 | def setup_class(cls):
|
@@ -136,3 +190,93 @@ def test_config_aaa_radius_invalid(self):
|
136 | 190 | assert result.exit_code == 0
|
137 | 191 | assert result.output == config_aaa_not_a_valid_command_output
|
138 | 192 |
|
| 193 | + def test_config_aaa_tacacs(self, get_cmd_module): |
| 194 | + (config, show) = get_cmd_module |
| 195 | + runner = CliRunner() |
| 196 | + db = Db() |
| 197 | + db.cfgdb.delete_table("AAA") |
| 198 | + |
| 199 | + # test tacacs authentication |
| 200 | + result = runner.invoke(config.config.commands["aaa"],\ |
| 201 | + ["authentication", "login", "tacacs+"], obj=db) |
| 202 | + print(result.exit_code) |
| 203 | + print(result.output) |
| 204 | + assert result.exit_code == 0 |
| 205 | + assert result.output == config_aaa_empty_output |
| 206 | + |
| 207 | + db.cfgdb.mod_entry("AAA", "authentication", {'login' : 'tacacs+'}) |
| 208 | + |
| 209 | + result = runner.invoke(show.cli.commands["aaa"], [], obj=db) |
| 210 | + assert result.exit_code == 0 |
| 211 | + assert result.output == show_aaa_tacacs_authentication_output |
| 212 | + |
| 213 | + # test tacacs authorization |
| 214 | + result = runner.invoke(config.config.commands["aaa"],\ |
| 215 | + ["authorization", "tacacs+"], obj=db) |
| 216 | + print(result.exit_code) |
| 217 | + print(result.output) |
| 218 | + assert result.exit_code == 0 |
| 219 | + assert result.output == config_aaa_empty_output |
| 220 | + |
| 221 | + db.cfgdb.mod_entry("AAA", "authorization", {'login' : 'tacacs+'}) |
| 222 | + |
| 223 | + result = runner.invoke(show.cli.commands["aaa"], [], obj=db) |
| 224 | + assert result.exit_code == 0 |
| 225 | + assert result.output == show_aaa_tacacs_authorization_output |
| 226 | + |
| 227 | + # test tacacs + local authorization |
| 228 | + result = runner.invoke(config.config.commands["aaa"],\ |
| 229 | + ["authorization", "tacacs+ local"], obj=db) |
| 230 | + print(result.exit_code) |
| 231 | + print(result.output) |
| 232 | + assert result.exit_code == 0 |
| 233 | + assert result.output == config_aaa_empty_output |
| 234 | + |
| 235 | + db.cfgdb.mod_entry("AAA", "authorization", {'login' : 'tacacs+,local'}) |
| 236 | + |
| 237 | + result = runner.invoke(show.cli.commands["aaa"], [], obj=db) |
| 238 | + assert result.exit_code == 0 |
| 239 | + assert result.output == show_aaa_tacacs_local_authorization_output |
| 240 | + |
| 241 | + # test tacacs accounting |
| 242 | + result = runner.invoke(config.config.commands["aaa"],\ |
| 243 | + ["accounting", "tacacs+"], obj=db) |
| 244 | + print(result.exit_code) |
| 245 | + print(result.output) |
| 246 | + assert result.exit_code == 0 |
| 247 | + assert result.output == config_aaa_empty_output |
| 248 | + |
| 249 | + db.cfgdb.mod_entry("AAA", "accounting", {'login' : 'tacacs+'}) |
| 250 | + |
| 251 | + result = runner.invoke(show.cli.commands["aaa"], [], obj=db) |
| 252 | + assert result.exit_code == 0 |
| 253 | + assert result.output == show_aaa_tacacs_accounting_output |
| 254 | + |
| 255 | + # test tacacs + local accounting |
| 256 | + result = runner.invoke(config.config.commands["aaa"],\ |
| 257 | + ["accounting", "tacacs+ local"], obj=db) |
| 258 | + print(result.exit_code) |
| 259 | + print(result.output) |
| 260 | + assert result.exit_code == 0 |
| 261 | + assert result.output == config_aaa_empty_output |
| 262 | + |
| 263 | + db.cfgdb.mod_entry("AAA", "accounting", {'login' : 'tacacs+,local'}) |
| 264 | + |
| 265 | + result = runner.invoke(show.cli.commands["aaa"], [], obj=db) |
| 266 | + assert result.exit_code == 0 |
| 267 | + assert result.output == show_aaa_tacacs_local_accounting_output |
| 268 | + |
| 269 | + # test disable accounting |
| 270 | + result = runner.invoke(config.config.commands["aaa"],\ |
| 271 | + ["accounting", "disable"], obj=db) |
| 272 | + print(result.exit_code) |
| 273 | + print(result.output) |
| 274 | + assert result.exit_code == 0 |
| 275 | + assert result.output == config_aaa_empty_output |
| 276 | + |
| 277 | + db.cfgdb.mod_entry("AAA", "accounting", {'login' : 'disable'}) |
| 278 | + |
| 279 | + result = runner.invoke(show.cli.commands["aaa"], [], obj=db) |
| 280 | + assert result.exit_code == 0 |
| 281 | + assert result.output == show_aaa_disable_accounting_output |
| 282 | + |
0 commit comments