[Checkins] SVN: Sandbox/J1m/customdoctests/src/zc/customdoctests/ Generalized api some more. Now pass in a source transformation function.

Jim Fulton jim at zope.com
Wed Jan 26 11:42:43 EST 2011


Log message for revision 119950:
  Generalized api some more. Now pass in a source transformation function.
  

Changed:
  U   Sandbox/J1m/customdoctests/src/zc/customdoctests/__init__.py
  U   Sandbox/J1m/customdoctests/src/zc/customdoctests/js.py

-=-
Modified: Sandbox/J1m/customdoctests/src/zc/customdoctests/__init__.py
===================================================================
--- Sandbox/J1m/customdoctests/src/zc/customdoctests/__init__.py	2011-01-26 15:45:24 UTC (rev 119949)
+++ Sandbox/J1m/customdoctests/src/zc/customdoctests/__init__.py	2011-01-26 16:42:43 UTC (rev 119950)
@@ -22,7 +22,7 @@
     def __init__(self, *args, **kw):
         ps1 = kw.pop('ps1', '>>>')
         ps2 = kw.pop('ps2', r'\.\.\.')
-        self.handler_name = kw.pop('handler_name', '')
+        self.transform = kw.pop('transform', lambda s: s)
         getattr(doctest.DocTestParser, '__init__', lambda : None)(*args, **kw)
 
         self._EXAMPLE_RE = re.compile(
@@ -43,5 +43,5 @@
         r =doctest.DocTestParser.parse(self, string, name)
         for s in r:
             if isinstance(s, doctest.Example):
-                s.source = "%s(%r)\n" % (self.handler_name, s.source)
+                s.source = self.transform(s.source)
         return r

Modified: Sandbox/J1m/customdoctests/src/zc/customdoctests/js.py
===================================================================
--- Sandbox/J1m/customdoctests/src/zc/customdoctests/js.py	2011-01-26 15:45:24 UTC (rev 119949)
+++ Sandbox/J1m/customdoctests/src/zc/customdoctests/js.py	2011-01-26 16:42:43 UTC (rev 119950)
@@ -20,8 +20,14 @@
 
 run_time = None
 
-parser = zc.customdoctests.DocTestParser(ps1='js>', handler_name='JS')
+parser = zc.customdoctests.DocTestParser(
+    ps1='js>', transform=lambda s: 'JS(r"""%s""")' % s)
 
+# parser_ is like parser, except adds: var _ = to
+# the fron of the executed code.
+eq_parser = zc.customdoctests.DocTestParser(
+    ps1='js!', transform=lambda s: 'JS("var _ = "+ r"""%s""")' % s)
+
 def setUp(test_or_self):
     globs = getattr(test_or_self, 'globs', test_or_self.__dict__)
 



More information about the checkins mailing list