diff cmd2.py @ 254:07dff0ba981e

multiple test files
author Catherine Devlin <catherine.devlin@gmail.com>
date Wed, 01 Apr 2009 18:05:51 -0400
parents 24289178b367
children 573bf9c2a043
line wrap: on
line diff
--- a/cmd2.py	Tue Mar 31 17:47:04 2009 -0400
+++ b/cmd2.py	Wed Apr 01 18:05:51 2009 -0400
@@ -21,9 +21,6 @@
 - Catherine Devlin, Jan 03 2008 - catherinedevlin.blogspot.com
 
 mercurial repository at http://www.assembla.com/wiki/show/python-cmd2
-CHANGES:
-As of 0.3.0, options should be specified as `optparse` options.  See README.txt.
-flagReader.py options are still supported for backward compatibility
 """
 import cmd, re, os, sys, optparse, subprocess, tempfile, pyparsing, doctest
 import unittest, string, datetime, urllib, glob
@@ -1115,18 +1112,17 @@
     transcriptFileName = ''
     transcriptExtension = ''
     def fetchTranscripts(self):
-        self.transcripts = {}
-        if self.transcriptExtension:
-            for fname in glob.glob('*.' + self.transcriptExtension):
-                tfile = open(fname)
-                self.transcripts[fname] = iter(tfile.readlines())
-                tfile.close()
+        self.transcripts = []
+        if self.CmdApp.testfile:
+            transcriptfilenames = [self.CmdApp.testfile]
+        elif self.transcriptExtension:
+            transcriptfilenames = glob.glob('*.' + self.transcriptExtension)
         elif self.transcriptFileName:
-            tfile = open(os.path.expanduser(self.transcriptFileName))
-            self.transcripts = {'transcript': iter(tfile.readlines())}
+            transcriptfilenames = [self.transcriptFileName]
+        for fname in transcriptfilenames:
+            tfile = open(fname)
+            self.transcripts.append(iter(tfile.readlines()))
             tfile.close()
-        else:
-            raise AttributeError, 'Cmd2TestCase must define transcriptFileName or transcriptExtension'
             
     def setUp(self):
         if self.CmdApp:
@@ -1143,18 +1139,10 @@
             self.assert_(re.match(matchme, linegot.strip()), message)
     def testall(self):
         if self.CmdApp:
-            setup = 'setup.' + self.transcriptExtension
-            teardown = 'teardown.' + self.transcriptExtension
-            transcripts = self.transcripts.copy()
-            transcriptfiles = []
-            if setup in transcripts:
-                transcriptfiles.append((setup, transcripts.pop(setup)))
-            transcriptfiles.extend(sorted((fname, transcripts[fname]) for fname in transcripts if fname != teardown))
-            if teardown in transcripts:
-                transcriptfiles.append((teardown, transcripts[teardown]))
-            for transcript in transcriptfiles:
-                self.testone(transcript)        
-    def testone(self, transcript):
+            self.fetchTranscripts()
+            for transcript in self.transcripts:
+                self._test_transcript(transcript)
+    def _test_transcript(self, transcript):
         lineNum = 0
         try:
             line = transcript.next()
@@ -1190,5 +1178,4 @@
             self.outputTrap.tearDown()
         
 if __name__ == '__main__':
-    doctest.testmod(optionflags = doctest.NORMALIZE_WHITESPACE)
-    #c = Cmd()
+    doctest.testmod(optionflags = doctest.NORMALIZE_WHITESPACE)
\ No newline at end of file