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

ltucker at codespeak.net ltucker at codespeak.net
Wed Nov 1 00:17:30 CET 2006


Author: ltucker
Date: Wed Nov  1 00:17:28 2006
New Revision: 33989

Modified:
   z3/deliverance/branches/packaged/deliverance/test_wsgi.py
   z3/deliverance/branches/packaged/deliverance/wsgifilter.py
Log:
preliminary heuristic to ignore ajax responses in the wsgifilter

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	Wed Nov  1 00:17:28 2006
@@ -114,7 +114,7 @@
 
 
 RENDERER_TYPES = ['py', 'xslt']
-TEST_FUNCS = [ do_basic, do_text, do_tasktracker, do_xinclude, do_nycsr, do_necoro, do_guidesearch ] 
+TEST_FUNCS = [ do_basic, do_text, do_tasktracker, do_xinclude, do_nycsr, do_necoro, do_guidesearch, do_ajax ] 
 def test_all():
     for renderer_type in RENDERER_TYPES:
         for test_func in TEST_FUNCS: 

Modified: z3/deliverance/branches/packaged/deliverance/wsgifilter.py
==============================================================================
--- z3/deliverance/branches/packaged/deliverance/wsgifilter.py	(original)
+++ z3/deliverance/branches/packaged/deliverance/wsgifilter.py	Wed Nov  1 00:17:28 2006
@@ -133,12 +133,14 @@
                 self.should_intercept,
                 start_response)
 
-
+            # ignore non-html responses 
             if status is None:
-                # should_intercept returned False
                 return body
 
-            body = self.filter_body(environ, body)
+            # don't theme html snippets 
+            if self.hasHTMLTag(body):
+                body = self.filter_body(environ, body)
+
             replace_header(headers, 'content-length', str(len(body)))
             replace_header(headers, 'content-type', 'text/html; charset=utf-8')
             start_response(status, headers)
@@ -212,6 +214,16 @@
                    loc))
         return body
 
+    HTML_DOC_PAT = re.compile(r"^.*<\s*html(\s*|>).*$",re.I|re.M)
+    def hasHTMLTag(self, body):
+        """
+        a quick and dirty check to see if some text contains 
+        anything that looks like an html tag. This could 
+        certainly be improved if needed or there are 
+        ambiguous tags 
+        """
+        return self.HTML_DOC_PAT.search(body) is not None
+
 def make_filter(app, global_conf,
                 theme_uri=None, rule_uri=None):
     assert theme_uri is not None, (


More information about the z3-checkins mailing list