[z3-checkins] r33927 - z3/deliverance/branches/packaged/deliverance

ltucker at codespeak.net ltucker at codespeak.net
Mon Oct 30 21:45:43 CET 2006


Author: ltucker
Date: Mon Oct 30 21:45:39 2006
New Revision: 33927

Modified:
   z3/deliverance/branches/packaged/deliverance/test_wsgi.py
   z3/deliverance/branches/packaged/deliverance/tests.py
Log:
making tests test both renderers

Modified: z3/deliverance/branches/packaged/deliverance/test_wsgi.py
==============================================================================
--- z3/deliverance/branches/packaged/deliverance/test_wsgi.py	(original)
+++ z3/deliverance/branches/packaged/deliverance/test_wsgi.py	Mon Oct 30 21:45:39 2006
@@ -15,6 +15,7 @@
 tasktracker_app = StaticURLParser(tasktracker_data)
 nycsr_app = StaticURLParser(nycsr_data)
 
+
 def html_string_compare(astr, bstr):
     def reporter(x):
         print x
@@ -39,44 +40,59 @@
             "Comparison failed between actual:\n==================\n%s\n\nexpected:\n==================\n%s\n\nReport:\n%s"
             % (astr, bstr, '\n'.join(reporter)))
 
-def test_basic():
-    wsgi_app = DeliveranceMiddleware(static_app, 'theme.html', 'rules.xml')
+
+
+def do_basic(renderer_type):
+    wsgi_app = DeliveranceMiddleware(static_app, 'theme.html', 'rules.xml',
+                                     renderer_type)
     app = TestApp(wsgi_app)
     res = app.get('/example.html')
     res2 = app.get('/example_expected.html?notheme')
     html_string_compare(res.body, res2.body)
 
-def test_text():
-    wsgi_app = DeliveranceMiddleware(static_app, 'theme.html', 'text-rules.xml')
+def do_text(renderer_type):
+    wsgi_app = DeliveranceMiddleware(static_app, 'theme.html', 'text-rules.xml',
+                                     renderer_type)
     app = TestApp(wsgi_app)
     res = app.get('/example.html')
     res2 = app.get('/texttest_expected.html?notheme')
     html_string_compare(res.body, res2.body)
 
-def test_tasktracker():
-    wsgi_app = DeliveranceMiddleware(tasktracker_app, 'http://www.nycsr.org/nyc/video.php', 'tasktracker.xml')
+def do_tasktracker(renderer_type):
+    wsgi_app = DeliveranceMiddleware(tasktracker_app, 'http://www.nycsr.org/nyc/video.php', 
+                                     'tasktracker.xml',renderer_type)
     app = TestApp(wsgi_app)
     res = app.get('/content.html')
     res2 = app.get('/expected.html?notheme')
     html_string_compare(res.body, res2.body)
 
 
-def test_xinclude():
-    wsgi_app = DeliveranceMiddleware(static_app, 'xinclude_theme.html', 'xinclude_rules.xml')
+def do_xinclude(renderer_type):
+    wsgi_app = DeliveranceMiddleware(static_app, 'xinclude_theme.html', 'xinclude_rules.xml',
+                                     renderer_type)
     app = TestApp(wsgi_app)
     res = app.get('/example.html')
     res2 = app.get('/xinclude_expected.html?notheme')
     html_string_compare(res.body, res2.body)
 
 
-def test_nycsr():
-    wsgi_app = DeliveranceMiddleware(nycsr_app, 'http://www.nycsr.org','nycsr.xml')
+def do_nycsr(renderer_type):
+    wsgi_app = DeliveranceMiddleware(nycsr_app, 'http://www.nycsr.org','nycsr.xml',
+                                     renderer_type)
     app = TestApp(wsgi_app)
     res = app.get('/openplans.html')
     res2 = app.get('/nycsr_expected.html?notheme')
     html_string_compare(res.body, res2.body)
 
 
+RENDERER_TYPES = ['py','xslt']
+TEST_FUNCS = [ do_basic, do_text, do_tasktracker, do_xinclude, do_nycsr ]
+def test_all():
+    for renderer_type in RENDERER_TYPES:
+        for test_func in TEST_FUNCS: 
+            yield lambda(name): test_func(renderer_type), ("[%s] : %s" % (renderer_type, test_func.func_name))
+            
+
 if __name__ == '__main__':
     pass
 

Modified: z3/deliverance/branches/packaged/deliverance/tests.py
==============================================================================
--- z3/deliverance/branches/packaged/deliverance/tests.py	(original)
+++ z3/deliverance/branches/packaged/deliverance/tests.py	Mon Oct 30 21:45:39 2006
@@ -2,20 +2,23 @@
 import os
 from lxml import etree
 from formencode.doctest_xml_compare import xml_compare
-from interpreter import Renderer
-#from xslt import Renderer
+from interpreter import Renderer as PyRenderer
+from xslt import Renderer as XSLTRenderer
 import copy 
 import urllib
 
+RENDERER_CLASSES = [ PyRenderer, XSLTRenderer ]
+
 class DeliveranceTestCase:
 
-    def __init__(self, rules, rules_uri, theme, theme_uri, content, output):
+    def __init__(self, rules, rules_uri, theme, theme_uri, content, output, renderer_class):
         self.rules = rules
         self.rules_uri = rules_uri
         self.theme = theme
         self.theme_uri = theme_uri
         self.content = content
         self.output = output
+        self.renderer_class = renderer_class
 
     def __call__(self, name):
         def reference_resolver(href, parse, encoding=None):
@@ -27,7 +30,7 @@
             elif encoding:
                 return content.decode(encoding)
 
-        renderer = Renderer(
+        renderer = self.renderer_class(
             theme=self.theme,
             theme_uri=self.theme_uri,
             rule=self.rules, rule_uri=self.rules_uri,
@@ -50,12 +53,13 @@
 test_dir = os.path.join(os.path.dirname(__file__), 'test-data')
 
 def test_examples():
-    for fn in os.listdir(test_dir):
-        fn = os.path.join(test_dir, fn)
-        for case in cases(fn):
-            yield case
+    for renderer_class in RENDERER_CLASSES:
+        for fn in os.listdir(test_dir):
+            fn = os.path.join(test_dir, fn)
+            for case in cases(fn,renderer_class):
+                yield case
 
-def cases(fn):
+def cases(fn, renderer_class):
     if not os.path.basename(fn).startswith('test_'):
         return
     if fn.endswith('~'):
@@ -97,8 +101,9 @@
             theme=themebody,
             theme_uri=el.find('theme').attrib['base'],
             content=contentbody,
-            output=outputbody)
-        yield case, ('%s:%s' % (fn, index))
+            output=outputbody, 
+            renderer_class=renderer_class)
+        yield case, ('[%s] %s:%s' % (renderer_class, fn, index))
 
 
 


More information about the z3-checkins mailing list