You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.7 KiB
83 lines
2.7 KiB
#!/usr/bin/python |
|
# |
|
# Copyright 2008 Google Inc. All Rights Reserved. |
|
|
|
"""Test for atest.""" |
|
|
|
import unittest |
|
|
|
import common |
|
from autotest_lib.cli import cli_mock |
|
|
|
ATEST_USAGE_STRING = ('atest [acl|host|job|label|shard|test|user|' |
|
'server|stable_version] [action] [options]') |
|
|
|
class main_unittest(cli_mock.cli_unittest): |
|
"""Unittest for atest command. |
|
""" |
|
|
|
def _test_help(self, argv, out_words_ok, err_words_ok): |
|
"""Test help output. |
|
|
|
@param argv: A list of argument. |
|
@param out_words_ok: Expected output. |
|
@param err_words_ok: Expected output when input arguments are invalid. |
|
""" |
|
saved_outputs = None |
|
for help in ['-h', '--help', 'help']: |
|
outputs = self.run_cmd(argv + [help], exit_code=0, |
|
out_words_ok=out_words_ok, |
|
err_words_ok=err_words_ok) |
|
if not saved_outputs: |
|
saved_outputs = outputs |
|
else: |
|
self.assertEqual(outputs, saved_outputs) |
|
|
|
|
|
def test_main_help(self): |
|
"""Main help level""" |
|
self._test_help(argv=['atest'], |
|
out_words_ok=[ATEST_USAGE_STRING], |
|
err_words_ok=[]) |
|
|
|
|
|
def test_main_help_topic(self): |
|
"""Topic level help""" |
|
self._test_help(argv=['atest', 'host'], |
|
out_words_ok=['atest host ', |
|
'[create|delete|list|stat|mod|jobs]' |
|
' [options]'], |
|
err_words_ok=[]) |
|
|
|
|
|
def test_main_help_action(self): |
|
"""Action level help""" |
|
self._test_help(argv=['atest:', 'host', 'mod'], |
|
out_words_ok=['atest host mod [options]'], |
|
err_words_ok=[]) |
|
|
|
|
|
def test_main_no_topic(self): |
|
"""Test output when no topic is specified.""" |
|
self.run_cmd(['atest'], exit_code=1, |
|
out_words_ok=[ATEST_USAGE_STRING], |
|
err_words_ok=['No topic argument']) |
|
|
|
|
|
def test_main_bad_topic(self): |
|
"""Test output when an invalid topic is specified.""" |
|
self.run_cmd(['atest', 'bad_topic'], exit_code=1, |
|
out_words_ok=[ATEST_USAGE_STRING], |
|
err_words_ok=['Invalid topic bad_topic\n']) |
|
|
|
|
|
def test_main_bad_action(self): |
|
"""Test output when an invalid action is specified.""" |
|
self.run_cmd(['atest', 'host', 'bad_action'], exit_code=1, |
|
out_words_ok=['atest host [create|delete|list|stat|' |
|
'mod|jobs] [options]'], |
|
err_words_ok=['Invalid action bad_action']) |
|
|
|
|
|
if __name__ == '__main__': |
|
unittest.main()
|
|
|