| Index: third_party/twisted_8_1/twisted/test/test_zshcomp.py
|
| diff --git a/third_party/twisted_8_1/twisted/test/test_zshcomp.py b/third_party/twisted_8_1/twisted/test/test_zshcomp.py
|
| deleted file mode 100644
|
| index 096f9d6b1c73983cf44cab9b23120cc021975aee..0000000000000000000000000000000000000000
|
| --- a/third_party/twisted_8_1/twisted/test/test_zshcomp.py
|
| +++ /dev/null
|
| @@ -1,210 +0,0 @@
|
| -# Copyright (c) 2006 Twisted Matrix Laboratories.
|
| -# See LICENSE for details.
|
| -
|
| -"""
|
| -Test cases for twisted.python.zshcomp
|
| -"""
|
| -
|
| -import os, os.path
|
| -from cStringIO import StringIO
|
| -
|
| -from twisted.trial import unittest
|
| -from twisted.python import zshcomp, usage
|
| -
|
| -class ZshcompTestCase(unittest.TestCase):
|
| - """
|
| - Tests for the zsh completion function builder in twisted/python/zshcomp.py
|
| - """
|
| - def test_buildAll(self):
|
| - """
|
| - Build all the completion functions for twisted commands - no errors
|
| - should be raised
|
| - """
|
| - dirname = self.mktemp()
|
| - os.mkdir(dirname)
|
| - skippedCmds = [x[0] for x in zshcomp.makeCompFunctionFiles(dirname)]
|
| -
|
| - # verify a zsh function was created for each twisted command
|
| - for info in zshcomp.generateFor:
|
| - if info[0] in skippedCmds:
|
| - continue
|
| - funcPath = os.path.join(dirname, '_' + info[0])
|
| - self.failUnless(os.path.exists(funcPath))
|
| -
|
| - def test_accumulateMetadata(self):
|
| - """
|
| - Test that the zsh_* variables you can place on Option classes gets
|
| - picked up correctly
|
| - """
|
| - opts = TestOptions2()
|
| - ag = zshcomp.ArgumentsGenerator('dummy_cmd', opts, 'dummy_value')
|
| -
|
| - altArgDescr = TestOptions.zsh_altArgDescr.copy()
|
| - altArgDescr.update(TestOptions2.zsh_altArgDescr)
|
| -
|
| - actionDescr = TestOptions.zsh_actionDescr.copy()
|
| - actionDescr.update(TestOptions2.zsh_actionDescr)
|
| -
|
| - self.failUnlessEquals(ag.altArgDescr, altArgDescr)
|
| - self.failUnlessEquals(ag.actionDescr, actionDescr)
|
| - self.failUnlessEquals(ag.multiUse, TestOptions.zsh_multiUse)
|
| - self.failUnlessEquals(ag.mutuallyExclusive,
|
| - TestOptions.zsh_mutuallyExclusive)
|
| - self.failUnlessEquals(ag.actions, TestOptions.zsh_actions)
|
| - self.failUnlessEquals(ag.extras, TestOptions.zsh_extras)
|
| -
|
| - def test_accumulateAdditionalOptions(self):
|
| - """
|
| - Test that we pick up options that are only defined by having an
|
| - appropriately named method on your Options class,
|
| - e.g. def opt_foo(self, foo)
|
| - """
|
| - opts = TestOptions2()
|
| - ag = zshcomp.ArgumentsGenerator('dummy_cmd', opts, 'dummy_value')
|
| -
|
| - self.failUnless('nocrash' in ag.optFlags_d and \
|
| - 'nocrash' in ag.optAll_d)
|
| - self.failUnless('difficulty' in ag.optParams_d and \
|
| - 'difficulty' in ag.optAll_d)
|
| -
|
| - def test_verifyZshNames(self):
|
| - """
|
| - Test that using a parameter/flag name that doesn't exist
|
| - will raise an error
|
| - """
|
| - class TmpOptions(TestOptions2):
|
| - zsh_actions = {'detaill' : 'foo'} # Note typo of detail
|
| -
|
| - opts = TmpOptions()
|
| - self.failUnlessRaises(ValueError, zshcomp.ArgumentsGenerator,
|
| - 'dummy_cmd', opts, 'dummy_value')
|
| -
|
| - def test_zshCode(self):
|
| - """
|
| - Generate a completion function, and test the textual output
|
| - against a known correct output
|
| - """
|
| - cmd_name = 'testprog'
|
| - opts = CodeTestOptions()
|
| - f = StringIO()
|
| - b = zshcomp.Builder(cmd_name, opts, f)
|
| - b.write()
|
| - f.reset()
|
| - self.failUnlessEquals(f.read(), testOutput1)
|
| -
|
| - def test_skipBuild(self):
|
| - """
|
| - Test that makeCompFunctionFiles skips building for commands whos
|
| - script module cannot be imported
|
| - """
|
| - generateFor = [('test_cmd', 'no.way.your.gonna.import.this', 'Foo')]
|
| - skips = zshcomp.makeCompFunctionFiles('out_dir', generateFor, {})
|
| - # no exceptions should be raised. hooray.
|
| - self.failUnlessEqual(len(skips), 1)
|
| - self.failUnlessEqual(len(skips[0]), 2)
|
| - self.failUnlessEqual(skips[0][0], 'test_cmd')
|
| - self.failUnless(isinstance(skips[0][1], ImportError))
|
| - self.flushLoggedErrors(self, ImportError)
|
| -
|
| -class TestOptions(usage.Options):
|
| - """
|
| - Command-line options for an imaginary game
|
| - """
|
| - optFlags = [['fokker', 'f',
|
| - 'Select the Fokker Dr.I as your dogfighter aircraft'],
|
| - ['albatros', 'a',
|
| - 'Select the Albatros D-III as your dogfighter aircraft'],
|
| - ['spad', 's',
|
| - 'Select the SPAD S.VII as your dogfighter aircraft'],
|
| - ['bristol', 'b',
|
| - 'Select the Bristol Scout as your dogfighter aircraft'],
|
| - ['physics', 'p',
|
| - 'Enable secret Twisted physics engine'],
|
| - ['jam', 'j',
|
| - 'Enable a small chance that your machine guns will jam!'],
|
| - ['verbose', 'v',
|
| - 'Verbose logging (may be specified more than once)'],
|
| - ]
|
| -
|
| - optParameters = [['pilot-name', None, "What's your name, Ace?",
|
| - 'Manfred von Richthofen'],
|
| - ['detail', 'd',
|
| - 'Select the level of rendering detail (1-5)', '3'],
|
| - ]
|
| -
|
| -
|
| - zsh_altArgDescr = {'physics' : 'Twisted-Physics',
|
| - 'detail' : 'Rendering detail level'}
|
| - zsh_actionDescr = {'detail' : 'Pick your detail'}
|
| - zsh_multiUse = ['verbose']
|
| - zsh_mutuallyExclusive = [['fokker', 'albatros', 'spad', 'bristol']]
|
| - zsh_actions = {'detail' : '(1 2 3 4 5)'}
|
| - zsh_extras = [':saved game file to load:_files']
|
| -
|
| -class TestOptions2(TestOptions):
|
| - """
|
| - Extend the options and zsh metadata provided by TestOptions. zshcomp must
|
| - accumulate options and metadata from all classes in the hiearchy so this
|
| - is important for testing
|
| - """
|
| - optFlags = [['no-stalls', None,
|
| - 'Turn off the ability to stall your aircraft']]
|
| - optParameters = [['reality-level', None,
|
| - 'Select the level of physics reality (1-5)', '5']]
|
| -
|
| - zsh_altArgDescr = {'no-stalls' : 'Can\'t stall your plane'}
|
| - zsh_actionDescr = {'reality-level' : 'Physics reality level'}
|
| -
|
| - def opt_nocrash(self):
|
| - """Select that you can't crash your plane"""
|
| -
|
| - def opt_difficulty(self, difficulty):
|
| - """How tough are you? (1-10)"""
|
| -
|
| -def _accuracyAction():
|
| - return '(1 2 3)'
|
| -
|
| -class CodeTestOptions(usage.Options):
|
| - """
|
| - Command-line options for an imaginary program
|
| - """
|
| - optFlags = [['color', 'c', 'Turn on color output'],
|
| - ['gray', 'g', 'Turn on gray-scale output'],
|
| - ['verbose', 'v',
|
| - 'Verbose logging (may be specified more than once)'],
|
| - ]
|
| -
|
| - optParameters = [['optimization', None,
|
| - 'Select the level of optimization (1-5)', '5'],
|
| - ['accuracy', 'a',
|
| - 'Select the level of accuracy (1-3)', '3'],
|
| - ]
|
| -
|
| -
|
| - zsh_altArgDescr = {'color' : 'Color on',
|
| - 'optimization' : 'Optimization level'}
|
| - zsh_actionDescr = {'optimization' : 'Optimization?',
|
| - 'accuracy' : 'Accuracy?'}
|
| - zsh_multiUse = ['verbose']
|
| - zsh_mutuallyExclusive = [['color', 'gray']]
|
| - zsh_actions = {'optimization' : '(1 2 3 4 5)',
|
| - 'accuracy' : _accuracyAction}
|
| - zsh_extras = [':output file:_files']
|
| -
|
| -testOutput1 = """#compdef testprog
|
| -_arguments -s -A "-*" \\
|
| -':output file:_files' \\
|
| -'(--accuracy)-a[3]:Accuracy?:(1 2 3)' \\
|
| -'(-a)--accuracy=[3]:Accuracy?:(1 2 3)' \\
|
| -'(--gray -g --color)-c[Color on]' \\
|
| -'(--gray -g -c)--color[Color on]' \\
|
| -'(--color -c --gray)-g[Turn on gray-scale output]' \\
|
| -'(--color -c -g)--gray[Turn on gray-scale output]' \\
|
| -'--help[Display this help and exit.]' \\
|
| -'--optimization=[Optimization level]:Optimization?:(1 2 3 4 5)' \\
|
| -'*-v[Verbose logging (may be specified more than once)]' \\
|
| -'*--verbose[Verbose logging (may be specified more than once)]' \\
|
| -'--version[version]' \\
|
| -&& return 0
|
| -"""
|
| -
|
|
|