[Checkins] SVN: zope.publisher/branches/3.4/src/zope/publisher/ Backporting fix made in r84616.

Malthe Borch mborch at gmail.com
Wed Mar 12 11:22:43 EDT 2008


Log message for revision 84617:
  Backporting fix made in r84616.

Changed:
  U   zope.publisher/branches/3.4/src/zope/publisher/http.py
  U   zope.publisher/branches/3.4/src/zope/publisher/tests/test_httpcharsets.py

-=-
Modified: zope.publisher/branches/3.4/src/zope/publisher/http.py
===================================================================
--- zope.publisher/branches/3.4/src/zope/publisher/http.py	2008-03-12 15:10:40 UTC (rev 84616)
+++ zope.publisher/branches/3.4/src/zope/publisher/http.py	2008-03-12 15:22:43 UTC (rev 84617)
@@ -923,7 +923,7 @@
         '''See interface IUserPreferredCharsets'''
         charsets = []
         sawstar = sawiso88591 = 0
-        header_present = 'HTTP_ACCEPT_CHARSET' in self.request
+        header_present = bool(self.request.get('HTTP_ACCEPT_CHARSET'))
         for charset in self.request.get('HTTP_ACCEPT_CHARSET', '').split(','):
             charset = charset.strip().lower()
             if charset:

Modified: zope.publisher/branches/3.4/src/zope/publisher/tests/test_httpcharsets.py
===================================================================
--- zope.publisher/branches/3.4/src/zope/publisher/tests/test_httpcharsets.py	2008-03-12 15:10:40 UTC (rev 84616)
+++ zope.publisher/branches/3.4/src/zope/publisher/tests/test_httpcharsets.py	2008-03-12 15:22:43 UTC (rev 84617)
@@ -78,6 +78,15 @@
         self.assertEqual(list(browser_charsets.getPreferredCharsets()),
                          [])
 
+    def testTrivialHTTP_ACCEPT_CHARSET(self):
+        # If the client provides a trivial HTTP_ACCEPT_CHARSET, it should
+        # accept any charset (this test is aimed at Zope 2's handling
+        # of request queries for entries starting with HTTP_
+        # See: https://bugs.launchpad.net/zope2/+bug/143873
+        request = {'HTTP_ACCEPT_CHARSET': ''}
+        browser_charsets = HTTPCharsets(request)
+        self.assertEqual(list(browser_charsets.getPreferredCharsets()),
+                         [])
 
 def test_suite():
     loader=unittest.TestLoader()



More information about the Checkins mailing list