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 ::