Mercurial > python-cmd2
diff README.txt @ 112:e3b8eaadea56
going to collapse down out of overdone package structure
author | catherine@Elli.myhome.westell.com |
---|---|
date | Sat, 25 Oct 2008 19:28:51 -0400 |
parents | 234fb764becd |
children | 0820c42ea23e |
line wrap: on
line diff
--- a/README.txt Fri Oct 24 17:47:56 2008 -0400 +++ b/README.txt Sat Oct 25 19:28:51 2008 -0400 @@ -63,15 +63,18 @@ Cheese Shop page: http://pypi.python.org/pypi/cmd2 -Example cmd2 application (cmd2_example.py) :: +Example cmd2 application (example/example.py) :: - from cmd2 import Cmd, make_option, options - + '''A sample application for cmd2.''' + + from cmd2 import Cmd, make_option, options, Cmd2TestCase + import unittest, optparse, sys + class CmdLineApp(Cmd): multilineCommands = ['orate'] Cmd.shortcuts.update({'&': 'speak'}) maxrepeats = 3 - Cmd.settable.append('maxrepeats') + Cmd.settable.append('maxrepeats') @options([make_option('-p', '--piglatin', action="store_true", help="atinLay"), make_option('-s', '--shout', action="store_true", help="N00B EMULATION MODE"), @@ -79,23 +82,34 @@ ]) def do_speak(self, arg, opts=None): """Repeats what you tell me to.""" - arg = ' '.join(arg) + arg = ''.join(arg) if opts.piglatin: arg = '%s%say' % (arg[1:], arg[0]) if opts.shout: - arg = arg.upper() + arg = arg.upper() repetitions = opts.repeat or 1 for i in range(min(repetitions, self.maxrepeats)): self.stdout.write(arg) self.stdout.write('\n') - # self.stdout.write is better than "print", because Cmd can be + # self.stdout.write is better than "print", because Cmd can be # initialized with a non-standard output destination - + do_say = do_speak # now "say" is a synonym for "speak" do_orate = do_speak # another synonym, but this one takes multi-line input - app = CmdLineApp() - app.cmdloop() + class TestMyAppCase(Cmd2TestCase): + CmdApp = CmdLineApp + transcriptFileName = 'exampleSession.txt' + + parser = optparse.OptionParser() + parser.add_option('-t', '--test', dest='unittests', action='store_true', default=False, help='Run unit test suite') + (callopts, callargs) = parser.parse_args() + if callopts.unittests: + sys.argv = [sys.argv[0]] # the --test argument upsets unittest.main() + unittest.main() + else: + app = CmdLineApp() + app.cmdloop() Sample session using the above code ::