| Index: third_party/twisted_8_1/twisted/test/test_usage.py
|
| diff --git a/third_party/twisted_8_1/twisted/test/test_usage.py b/third_party/twisted_8_1/twisted/test/test_usage.py
|
| deleted file mode 100644
|
| index e77c179206d080ff07a5502d312316ffff865ea6..0000000000000000000000000000000000000000
|
| --- a/third_party/twisted_8_1/twisted/test/test_usage.py
|
| +++ /dev/null
|
| @@ -1,372 +0,0 @@
|
| -
|
| -# Copyright (c) 2001-2007 Twisted Matrix Laboratories.
|
| -# See LICENSE for details.
|
| -
|
| -
|
| -from twisted.trial import unittest
|
| -from twisted.python import usage
|
| -
|
| -
|
| -class WellBehaved(usage.Options):
|
| - optParameters = [['long', 'w', 'default', 'and a docstring'],
|
| - ['another', 'n', 'no docstring'],
|
| - ['longonly', None, 'noshort'],
|
| - ['shortless', None, 'except',
|
| - 'this one got docstring'],
|
| - ]
|
| - optFlags = [['aflag', 'f',
|
| - """
|
| -
|
| - flagallicious docstringness for this here
|
| -
|
| - """],
|
| - ['flout', 'o'],
|
| - ]
|
| -
|
| - def opt_myflag(self):
|
| - self.opts['myflag'] = "PONY!"
|
| -
|
| - def opt_myparam(self, value):
|
| - self.opts['myparam'] = "%s WITH A PONY!" % (value,)
|
| -
|
| -
|
| -class ParseCorrectnessTest(unittest.TestCase):
|
| - """
|
| - Test Options.parseArgs for correct values under good conditions.
|
| - """
|
| - def setUp(self):
|
| - """
|
| - Instantiate and parseOptions a well-behaved Options class.
|
| - """
|
| -
|
| - self.niceArgV = ("--long Alpha -n Beta "
|
| - "--shortless Gamma -f --myflag "
|
| - "--myparam Tofu").split()
|
| -
|
| - self.nice = WellBehaved()
|
| -
|
| - self.nice.parseOptions(self.niceArgV)
|
| -
|
| - def test_checkParameters(self):
|
| - """
|
| - Checking that parameters have correct values.
|
| - """
|
| - self.failUnlessEqual(self.nice.opts['long'], "Alpha")
|
| - self.failUnlessEqual(self.nice.opts['another'], "Beta")
|
| - self.failUnlessEqual(self.nice.opts['longonly'], "noshort")
|
| - self.failUnlessEqual(self.nice.opts['shortless'], "Gamma")
|
| -
|
| - def test_checkFlags(self):
|
| - """
|
| - Checking that flags have correct values.
|
| - """
|
| - self.failUnlessEqual(self.nice.opts['aflag'], 1)
|
| - self.failUnlessEqual(self.nice.opts['flout'], 0)
|
| -
|
| - def test_checkCustoms(self):
|
| - """
|
| - Checking that custom flags and parameters have correct values.
|
| - """
|
| - self.failUnlessEqual(self.nice.opts['myflag'], "PONY!")
|
| - self.failUnlessEqual(self.nice.opts['myparam'], "Tofu WITH A PONY!")
|
| -
|
| -
|
| -class TypedOptions(usage.Options):
|
| - optParameters = [
|
| - ['fooint', None, 392, 'Foo int', int],
|
| - ['foofloat', None, 4.23, 'Foo float', float],
|
| - ['eggint', None, None, 'Egg int without default', int],
|
| - ['eggfloat', None, None, 'Egg float without default', float],
|
| - ]
|
| -
|
| -
|
| -class TypedTestCase(unittest.TestCase):
|
| - """
|
| - Test Options.parseArgs for options with forced types.
|
| - """
|
| - def setUp(self):
|
| - self.usage = TypedOptions()
|
| -
|
| - def test_defaultValues(self):
|
| - """
|
| - Test parsing of default values.
|
| - """
|
| - argV = []
|
| - self.usage.parseOptions(argV)
|
| - self.failUnlessEqual(self.usage.opts['fooint'], 392)
|
| - self.assert_(isinstance(self.usage.opts['fooint'], int))
|
| - self.failUnlessEqual(self.usage.opts['foofloat'], 4.23)
|
| - self.assert_(isinstance(self.usage.opts['foofloat'], float))
|
| - self.failUnlessEqual(self.usage.opts['eggint'], None)
|
| - self.failUnlessEqual(self.usage.opts['eggfloat'], None)
|
| -
|
| - def test_parsingValues(self):
|
| - """
|
| - Test basic parsing of int and float values.
|
| - """
|
| - argV = ("--fooint 912 --foofloat -823.1 "
|
| - "--eggint 32 --eggfloat 21").split()
|
| - self.usage.parseOptions(argV)
|
| - self.failUnlessEqual(self.usage.opts['fooint'], 912)
|
| - self.assert_(isinstance(self.usage.opts['fooint'], int))
|
| - self.failUnlessEqual(self.usage.opts['foofloat'], -823.1)
|
| - self.assert_(isinstance(self.usage.opts['foofloat'], float))
|
| - self.failUnlessEqual(self.usage.opts['eggint'], 32)
|
| - self.assert_(isinstance(self.usage.opts['eggint'], int))
|
| - self.failUnlessEqual(self.usage.opts['eggfloat'], 21.)
|
| - self.assert_(isinstance(self.usage.opts['eggfloat'], float))
|
| -
|
| - def test_invalidValues(self):
|
| - """
|
| - Check that passing wrong values raises an error.
|
| - """
|
| - argV = "--fooint egg".split()
|
| - self.assertRaises(usage.UsageError, self.usage.parseOptions, argV)
|
| -
|
| -
|
| -class WrongTypedOptions(usage.Options):
|
| - optParameters = [
|
| - ['barwrong', None, None, 'Bar with wrong coerce', 'he']
|
| - ]
|
| -
|
| -
|
| -class WeirdCallableOptions(usage.Options):
|
| - def _bar(value):
|
| - raise RuntimeError("Ouch")
|
| - def _foo(value):
|
| - raise ValueError("Yay")
|
| - optParameters = [
|
| - ['barwrong', None, None, 'Bar with strange callable', _bar],
|
| - ['foowrong', None, None, 'Foo with strange callable', _foo]
|
| - ]
|
| -
|
| -
|
| -class WrongTypedTestCase(unittest.TestCase):
|
| - """
|
| - Test Options.parseArgs for wrong coerce options.
|
| - """
|
| - def test_nonCallable(self):
|
| - """
|
| - Check that using a non callable type fails.
|
| - """
|
| - us = WrongTypedOptions()
|
| - argV = "--barwrong egg".split()
|
| - self.assertRaises(TypeError, us.parseOptions, argV)
|
| -
|
| - def test_notCalledInDefault(self):
|
| - """
|
| - Test that the coerce functions are not called if no values are
|
| - provided.
|
| - """
|
| - us = WeirdCallableOptions()
|
| - argV = []
|
| - us.parseOptions(argV)
|
| -
|
| - def test_weirdCallable(self):
|
| - """
|
| - Test what happens when coerce functions raise errors.
|
| - """
|
| - us = WeirdCallableOptions()
|
| - argV = "--foowrong blah".split()
|
| - # ValueError is swallowed as UsageError
|
| - e = self.assertRaises(usage.UsageError, us.parseOptions, argV)
|
| - self.assertEquals(str(e), "Parameter type enforcement failed: Yay")
|
| -
|
| - us = WeirdCallableOptions()
|
| - argV = "--barwrong blah".split()
|
| - # RuntimeError is not swallowed
|
| - self.assertRaises(RuntimeError, us.parseOptions, argV)
|
| -
|
| -
|
| -class OutputTest(unittest.TestCase):
|
| - def test_uppercasing(self):
|
| - """
|
| - Error output case adjustment does not mangle options
|
| - """
|
| - opt = WellBehaved()
|
| - e = self.assertRaises(usage.UsageError,
|
| - opt.parseOptions, ['-Z'])
|
| - self.assertEquals(str(e), 'option -Z not recognized')
|
| -
|
| -
|
| -class InquisitionOptions(usage.Options):
|
| - optFlags = [
|
| - ('expect', 'e'),
|
| - ]
|
| - optParameters = [
|
| - ('torture-device', 't',
|
| - 'comfy-chair',
|
| - 'set preferred torture device'),
|
| - ]
|
| -
|
| -
|
| -class HolyQuestOptions(usage.Options):
|
| - optFlags = [('horseback', 'h',
|
| - 'use a horse'),
|
| - ('for-grail', 'g'),
|
| - ]
|
| -
|
| -
|
| -class SubCommandOptions(usage.Options):
|
| - optFlags = [('europian-swallow', None,
|
| - 'set default swallow type to Europian'),
|
| - ]
|
| - subCommands = [
|
| - ('inquisition', 'inquest', InquisitionOptions,
|
| - 'Perform an inquisition'),
|
| - ('holyquest', 'quest', HolyQuestOptions,
|
| - 'Embark upon a holy quest'),
|
| - ]
|
| -
|
| -
|
| -class SubCommandTest(unittest.TestCase):
|
| -
|
| - def test_simpleSubcommand(self):
|
| - o = SubCommandOptions()
|
| - o.parseOptions(['--europian-swallow', 'inquisition'])
|
| - self.failUnlessEqual(o['europian-swallow'], True)
|
| - self.failUnlessEqual(o.subCommand, 'inquisition')
|
| - self.failUnless(isinstance(o.subOptions, InquisitionOptions))
|
| - self.failUnlessEqual(o.subOptions['expect'], False)
|
| - self.failUnlessEqual(o.subOptions['torture-device'], 'comfy-chair')
|
| -
|
| - def test_subcommandWithFlagsAndOptions(self):
|
| - o = SubCommandOptions()
|
| - o.parseOptions(['inquisition', '--expect', '--torture-device=feather'])
|
| - self.failUnlessEqual(o['europian-swallow'], False)
|
| - self.failUnlessEqual(o.subCommand, 'inquisition')
|
| - self.failUnless(isinstance(o.subOptions, InquisitionOptions))
|
| - self.failUnlessEqual(o.subOptions['expect'], True)
|
| - self.failUnlessEqual(o.subOptions['torture-device'], 'feather')
|
| -
|
| - def test_subcommandAliasWithFlagsAndOptions(self):
|
| - o = SubCommandOptions()
|
| - o.parseOptions(['inquest', '--expect', '--torture-device=feather'])
|
| - self.failUnlessEqual(o['europian-swallow'], False)
|
| - self.failUnlessEqual(o.subCommand, 'inquisition')
|
| - self.failUnless(isinstance(o.subOptions, InquisitionOptions))
|
| - self.failUnlessEqual(o.subOptions['expect'], True)
|
| - self.failUnlessEqual(o.subOptions['torture-device'], 'feather')
|
| -
|
| - def test_anotherSubcommandWithFlagsAndOptions(self):
|
| - o = SubCommandOptions()
|
| - o.parseOptions(['holyquest', '--for-grail'])
|
| - self.failUnlessEqual(o['europian-swallow'], False)
|
| - self.failUnlessEqual(o.subCommand, 'holyquest')
|
| - self.failUnless(isinstance(o.subOptions, HolyQuestOptions))
|
| - self.failUnlessEqual(o.subOptions['horseback'], False)
|
| - self.failUnlessEqual(o.subOptions['for-grail'], True)
|
| -
|
| - def test_noSubcommand(self):
|
| - o = SubCommandOptions()
|
| - o.parseOptions(['--europian-swallow'])
|
| - self.failUnlessEqual(o['europian-swallow'], True)
|
| - self.failUnlessEqual(o.subCommand, None)
|
| - self.failIf(hasattr(o, 'subOptions'))
|
| -
|
| - def test_defaultSubcommand(self):
|
| - o = SubCommandOptions()
|
| - o.defaultSubCommand = 'inquest'
|
| - o.parseOptions(['--europian-swallow'])
|
| - self.failUnlessEqual(o['europian-swallow'], True)
|
| - self.failUnlessEqual(o.subCommand, 'inquisition')
|
| - self.failUnless(isinstance(o.subOptions, InquisitionOptions))
|
| - self.failUnlessEqual(o.subOptions['expect'], False)
|
| - self.failUnlessEqual(o.subOptions['torture-device'], 'comfy-chair')
|
| -
|
| - def test_subCommandParseOptionsHasParent(self):
|
| - class SubOpt(usage.Options):
|
| - def parseOptions(self, *a, **kw):
|
| - self.sawParent = self.parent
|
| - usage.Options.parseOptions(self, *a, **kw)
|
| - class Opt(usage.Options):
|
| - subCommands = [
|
| - ('foo', 'f', SubOpt, 'bar'),
|
| - ]
|
| - o = Opt()
|
| - o.parseOptions(['foo'])
|
| - self.failUnless(hasattr(o.subOptions, 'sawParent'))
|
| - self.failUnlessEqual(o.subOptions.sawParent , o)
|
| -
|
| - def test_subCommandInTwoPlaces(self):
|
| - """
|
| - The .parent pointer is correct even when the same Options class is
|
| - used twice.
|
| - """
|
| - class SubOpt(usage.Options):
|
| - pass
|
| - class OptFoo(usage.Options):
|
| - subCommands = [
|
| - ('foo', 'f', SubOpt, 'quux'),
|
| - ]
|
| - class OptBar(usage.Options):
|
| - subCommands = [
|
| - ('bar', 'b', SubOpt, 'quux'),
|
| - ]
|
| - oFoo = OptFoo()
|
| - oFoo.parseOptions(['foo'])
|
| - oBar=OptBar()
|
| - oBar.parseOptions(['bar'])
|
| - self.failUnless(hasattr(oFoo.subOptions, 'parent'))
|
| - self.failUnless(hasattr(oBar.subOptions, 'parent'))
|
| - self.failUnlessIdentical(oFoo.subOptions.parent, oFoo)
|
| - self.failUnlessIdentical(oBar.subOptions.parent, oBar)
|
| -
|
| -
|
| -class HelpStringTest(unittest.TestCase):
|
| - def setUp(self):
|
| - """
|
| - Instantiate a well-behaved Options class.
|
| - """
|
| -
|
| - self.niceArgV = ("--long Alpha -n Beta "
|
| - "--shortless Gamma -f --myflag "
|
| - "--myparam Tofu").split()
|
| -
|
| - self.nice = WellBehaved()
|
| -
|
| - def test_noGoBoom(self):
|
| - """
|
| - __str__ shouldn't go boom.
|
| - """
|
| - try:
|
| - self.nice.__str__()
|
| - except Exception, e:
|
| - self.fail(e)
|
| -
|
| - def test_whitespaceStripFlagsAndParameters(self):
|
| - """
|
| - Extra whitespace in flag and parameters docs is stripped.
|
| - """
|
| - # We test this by making sure aflag and it's help string are on the
|
| - # same line.
|
| - lines = [s for s in str(self.nice).splitlines() if s.find("aflag")>=0]
|
| - self.failUnless(len(lines) > 0)
|
| - self.failUnless(lines[0].find("flagallicious") >= 0)
|
| -
|
| -
|
| -class PortCoerceTestCase(unittest.TestCase):
|
| - """
|
| - Test the behavior of L{usage.portCoerce}.
|
| - """
|
| - def test_validCoerce(self):
|
| - """
|
| - Test the answers with valid input.
|
| - """
|
| - self.assertEquals(0, usage.portCoerce("0"))
|
| - self.assertEquals(3210, usage.portCoerce("3210"))
|
| - self.assertEquals(65535, usage.portCoerce("65535"))
|
| -
|
| - def test_errorCoerce(self):
|
| - """
|
| - Test error path.
|
| - """
|
| - self.assertRaises(ValueError, usage.portCoerce, "")
|
| - self.assertRaises(ValueError, usage.portCoerce, "-21")
|
| - self.assertRaises(ValueError, usage.portCoerce, "212189")
|
| - self.assertRaises(ValueError, usage.portCoerce, "foo")
|
| -
|
| -
|
| -if __name__ == '__main__':
|
| - unittest.main()
|
| -
|
|
|