77 lines
2.6 KiB
Python
77 lines
2.6 KiB
Python
#!/usr/bin/python
|
|
|
|
import datetime
|
|
import unittest
|
|
|
|
import common
|
|
from autotest_lib.site_utils.deployment import commandline
|
|
|
|
|
|
class ArgumentPairTestCase(unittest.TestCase):
|
|
|
|
"""Tests for parsing and adding argument pairs."""
|
|
|
|
def test_missing_dest(self):
|
|
"""Test for error when missing dest argument."""
|
|
parser = commandline._ArgumentParser()
|
|
with self.assertRaisesRegexp(ValueError, r'\bdest\b'):
|
|
parser.add_argument_pair('--yes', '--no', default=True)
|
|
|
|
def test_missing_dest_and_default(self):
|
|
"""Test for error when missing dest and default arguments."""
|
|
parser = commandline._ArgumentParser()
|
|
with self.assertRaises(ValueError) as context:
|
|
parser.add_argument_pair('--yes', '--no')
|
|
message = str(context.exception)
|
|
self.assertIn('dest', message)
|
|
self.assertIn('default', message)
|
|
|
|
def test_default_value(self):
|
|
"""Test the default value for an option pair."""
|
|
parser = commandline._ArgumentParser()
|
|
parser.add_argument_pair('--yes', '--no', dest='option',
|
|
default=False)
|
|
args = parser.parse_args([])
|
|
self.assertIs(args.option, False)
|
|
|
|
def test_parsing_flag(self):
|
|
"""Test parsing an option flag of an option pair."""
|
|
parser = commandline._ArgumentParser()
|
|
parser.add_argument_pair('--yes', '--no', dest='option',
|
|
default=False)
|
|
args = parser.parse_args(['--yes'])
|
|
self.assertIs(args.option, True)
|
|
|
|
def test_duplicate_flag_precedence(self):
|
|
"""Test precedence when passing multiple flags."""
|
|
parser = commandline._ArgumentParser()
|
|
parser.add_argument_pair('--yes', '--no', dest='option',
|
|
default=False)
|
|
args = parser.parse_args(['--no', '--yes'])
|
|
self.assertIs(args.option, True)
|
|
args = parser.parse_args(['--yes', '--no'])
|
|
self.assertIs(args.option, False)
|
|
|
|
|
|
class _NamespaceStub:
|
|
|
|
def __init__(self, **kwargs):
|
|
for key, val in kwargs.iteritems():
|
|
setattr(self, key, val)
|
|
|
|
|
|
class DefaultLogdirNameTestCase(unittest.TestCase):
|
|
|
|
"""Test getting default logdir name."""
|
|
|
|
def test_happy_path(self):
|
|
"""Test everything working correctly."""
|
|
arguments = _NamespaceStub(
|
|
start_time=datetime.datetime(2016, 5, 4, 3),
|
|
board='shana')
|
|
got = commandline.get_default_logdir_name(arguments)
|
|
self.assertEqual(got, '2016-05-04T03:00:00-shana')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|