def testUsage(self): # default parser = ParseArguments() with stdout_replaced() as out: parser.print_help() s = out.getvalue() self.assertEqual(['Usage: _alltests.py [options]', ''], s.splitlines()[:2]) # explicit default: "%prog [options]" usage = "%prog [options]" parser = ParseArguments(usage=usage) with stdout_replaced() as out: parser.print_help() s = out.getvalue() self.assertEqual(['Usage: _alltests.py [options]', ''], s.splitlines()[:2]) # decidedly different usage = "|before| %prog [options] [more-stuff]" parser = ParseArguments(usage=usage) with stdout_replaced() as out: parser.print_help() s = out.getvalue() self.assertEqual( ['Usage: |before| _alltests.py [options] [more-stuff]', ''], s.splitlines()[:2])
def testMetaVars(self): parser = ParseArguments() parser.addOption('', '--option') parser.addOption('', '--defaultValue', default='default') parser.addOption('', '--noneValue', default=None) parser.addOption('', '--port', help='Port', type='int') parser.addOption('', '--otherPort', help='Port', type='int', default=10000) parser.addOption('', '--quiet', action='store_false', default=True, dest='verbose') with stdout_replaced() as out: parser.print_help() self.assertTrue("--option=<string>" in out.getvalue(), out.getvalue()) self.assertTrue("--defaultValue='default'" in out.getvalue(), out.getvalue()) self.assertTrue("--noneValue=<string>" in out.getvalue(), out.getvalue()) self.assertTrue("--port=<int>" in out.getvalue(), out.getvalue()) self.assertTrue("--otherPort=10000" in out.getvalue(), out.getvalue())
def testEpilog(self): epilog = 'And this is how they lived happily ever after.' parser = ParseArguments(epilog=epilog) parser.addOption('', '--option') with stdout_replaced() as out: parser.print_help() s = out.getvalue() self.assertTrue( s.endswith('--option=<string> \n\n{}\n'.format(epilog)), s)
def main(): parser = ParseArguments() parser.addOption('', '--port', type='int', mandatory=True) parser.addOption('', '--solrPort', type='int', mandatory=True) options, arguments = parser.parse() reactor = Reactor() server = createServer(reactor, **vars(options)) list(compose(server.once.observer_init())) reactor.loop()
def testMandatoryKey(self): parser = ParseArguments() parser.addOption('', '--name', help='Naam', mandatory=True) parser.addOption('', '--port', help='Port', type='int', mandatory=True) argv = ['script', '--name', 'TestServer', '--port', '1234'] options, arguments = parser.parse(argv) self.assertEqual(1234, options.port) self.assertEqual('TestServer', options.name) argv = ['script', '--port', '1234'] self.assertRaises(ValueError, parser._parse, argv)
def testError(self): parser = ParseArguments() parser.addOption('', '--option') with stderr_replaced() as err: try: parser.error('error msg.') self.fail() except SystemExit, e: self.assertEquals(2, e.code) lines = err.getvalue().split('\n')
def testDefaultValueInHelp(self): parser = ParseArguments() parser.addOption('', '--option', help='Option with a default value of {default}', default=42) with stdout_replaced() as out: parser.print_help() self.assertTrue( "Option with a default value of 42" in out.getvalue(), out.getvalue())
def testDescription(self): description = "Very nice program." parser = ParseArguments(description=description) parser.addOption('', '--option') with stdout_replaced() as out: parser.print_help() s = out.getvalue() self.assertEqual([ 'Usage: _alltests.py [options]', '', description, '', 'Options:' ], s.splitlines()[:5])
def testAdditionalOptions_optional(self): argv = ['script', '--name', 'TestServer'] parser = ParseArguments() parser.addOption('', '--name', help='Naam', mandatory=True) parser.addOption('', '--port', help='Port', type='int') parser.addOption('', '--withDefault', help='Default', default="default", type='str') options, arguments = parser.parse(argv) self.assertEqual('TestServer', options.name) self.assertEqual(None, options.port) self.assertEqual('default', options.withDefault)
def testError(self): parser = ParseArguments() parser.addOption('', '--option') with stderr_replaced() as err: try: parser.error('error msg.') self.fail() except SystemExit as e: self.assertEqual(2, e.code) lines = err.getvalue().split('\n') self.assertEqual(4, len(lines)) self.assertTrue(lines[0].startswith('Usage: ')) self.assertEqual('', lines[1]) self.assertTrue(lines[2].endswith(': error: error msg.')) self.assertEqual('', lines[3])