[Checkins] SVN: zope.testbrowser/branches/rossp-validator/src/zope/testbrowser/validate.py Make sure the validation only happens only on successful, non-redirecting responses

Ross Patterson me at rpatterson.net
Sat Feb 20 07:44:21 EST 2010


Log message for revision 109175:
  Make sure the validation only happens only on successful, non-redirecting responses

Changed:
  U   zope.testbrowser/branches/rossp-validator/src/zope/testbrowser/validate.py

-=-
Modified: zope.testbrowser/branches/rossp-validator/src/zope/testbrowser/validate.py
===================================================================
--- zope.testbrowser/branches/rossp-validator/src/zope/testbrowser/validate.py	2010-02-20 12:44:17 UTC (rev 109174)
+++ zope.testbrowser/branches/rossp-validator/src/zope/testbrowser/validate.py	2010-02-20 12:44:20 UTC (rev 109175)
@@ -6,20 +6,20 @@
 class ValidatingHandler(urllib2.BaseHandler):
 
     def http_response(self, request, response):
-        source = response.read()
-        response.seek(0)
-        check = urllib2.urlopen(
-            os.environ.get('ZOPE_TESTBROWSER_VALIDATE',
-                           'http://validator.w3.org/check'),
-            urllib.urlencode(dict(fragment=source)))
+        if (200 <= response.code < 300):
+            source = response.read()
+            response.seek(0)
+            check = urllib2.urlopen(
+                os.environ.get('ZOPE_TESTBROWSER_VALIDATE',
+                               'http://validator.w3.org/check'),
+                urllib.urlencode(dict(fragment=source)))
+            
+            if check.info().get(
+                'X-W3C-Validator-Status').lower() != 'valid':
+                hdrs = check.info()
+                hdrs['X-W3C-Validator-Source'] = source
+                return self.parent.error(
+                    'http', request, check, '500', 'Invalid HTML', hdrs)
 
-        if check.info().get(
-            'X-W3C-Validator-Status').lower() != 'valid':
-            hdrs = check.info()
-            hdrs['X-W3C-Validator-Source'] = source
-            return self.parent.error(
-                'http', request, check, '500', 'Invalid HTML', hdrs)
-            return check
-
         return response
         



More information about the checkins mailing list