[Zope-Checkins] SVN: Zope/branches/2.9/ Collector #2136: Map ResourceLockedError to the correct response code.

Tres Seaver cvs-admin at zope.org
Wed Jun 21 12:48:29 EDT 2006


Log message for revision 68779:
  Collector #2136: Map ResourceLockedError to the correct response code.

Changed:
  U   Zope/branches/2.9/doc/CHANGES.txt
  U   Zope/branches/2.9/lib/python/ZPublisher/HTTPResponse.py
  U   Zope/branches/2.9/lib/python/ZPublisher/tests/testHTTPResponse.py

-=-
Modified: Zope/branches/2.9/doc/CHANGES.txt
===================================================================
--- Zope/branches/2.9/doc/CHANGES.txt	2006-06-21 16:47:12 UTC (rev 68778)
+++ Zope/branches/2.9/doc/CHANGES.txt	2006-06-21 16:48:26 UTC (rev 68779)
@@ -18,6 +18,8 @@
 
    Bugs fixed
 
+      - Collector #2136: Map ResourceLockedError to the correct response code.
+
       - Collector #2109: XML-RPC did not handle DateTime.DateTime objects.
 
       - Collector #2016: DemoStorage couldn't wrap base storages without

Modified: Zope/branches/2.9/lib/python/ZPublisher/HTTPResponse.py
===================================================================
--- Zope/branches/2.9/lib/python/ZPublisher/HTTPResponse.py	2006-06-21 16:47:12 UTC (rev 68778)
+++ Zope/branches/2.9/lib/python/ZPublisher/HTTPResponse.py	2006-06-21 16:48:26 UTC (rev 68779)
@@ -97,6 +97,7 @@
 status_codes['nameerror'] = 503
 status_codes['keyerror'] = 503
 status_codes['redirect'] = 300
+status_codes['resourcelockederror'] = 423
 
 
 start_of_header_search = re.compile('(<head[^>]*>)', re.IGNORECASE).search

Modified: Zope/branches/2.9/lib/python/ZPublisher/tests/testHTTPResponse.py
===================================================================
--- Zope/branches/2.9/lib/python/ZPublisher/tests/testHTTPResponse.py	2006-06-21 16:47:12 UTC (rev 68778)
+++ Zope/branches/2.9/lib/python/ZPublisher/tests/testHTTPResponse.py	2006-06-21 16:48:26 UTC (rev 68779)
@@ -51,7 +51,8 @@
         # Verify that the cookie is expired even if an expires kw arg is passed
         # http://zope.org/Collectors/Zope/1160
         response = self._makeOne()
-        response.expireCookie('foo', path='/', expires='Mon, 22-Mar-2004 17:59 GMT', max_age=99)
+        response.expireCookie('foo', path='/',
+                              expires='Mon, 22-Mar-2004 17:59 GMT', max_age=99)
         cookie = response.cookies.get('foo', None)
         self.failUnless(cookie)
         self.assertEqual(cookie.get('expires'), 'Wed, 31-Dec-97 23:59:59 GMT')
@@ -76,27 +77,43 @@
         response.appendHeader('XXX', 'foo')
         self.assertEqual(response.headers.get('xxx'), 'bar,\n\tfoo')
 
-    def test_CharsetNoHeader(self):
+    def test_setStatus_ResourceLockedError(self):
+        response = self._makeOne()
+        from webdav.Lockable import ResourceLockedError
+        response.setStatus(ResourceLockedError)
+        self.assertEqual(response.status, 423)
+
+    def test_charset_no_header(self):
         response = self._makeOne(body='foo')
-        self.assertEqual(response.headers.get('content-type'), 'text/plain; charset=iso-8859-15')
+        self.assertEqual(response.headers.get('content-type'),
+                         'text/plain; charset=iso-8859-15')
 
-    def test_CharsetTextHeader(self):
-        response = self._makeOne(body='foo', headers={'content-type': 'text/plain'})
-        self.assertEqual(response.headers.get('content-type'), 'text/plain; charset=iso-8859-15')
+    def test_charset_text_header(self):
+        response = self._makeOne(body='foo',
+                    headers={'content-type': 'text/plain'})
+        self.assertEqual(response.headers.get('content-type'),
+                         'text/plain; charset=iso-8859-15')
 
-    def test_CharsetApplicationHeader(self):
-        response = self._makeOne(body='foo', headers={'content-type': 'application/foo'})
-        self.assertEqual(response.headers.get('content-type'), 'application/foo; charset=iso-8859-15')
+    def test_charset_application_header(self):
+        response = self._makeOne(body='foo',
+                    headers={'content-type': 'application/foo'})
+        self.assertEqual(response.headers.get('content-type'),
+                         'application/foo; charset=iso-8859-15')
     
-    def test_CharsetApplicationHeaderUnicode(self):
-        response = self._makeOne(body=unicode('ärger', 'iso-8859-15'), headers={'content-type': 'application/foo'})
-        self.assertEqual(response.headers.get('content-type'), 'application/foo; charset=iso-8859-15')
+    def test_charset_application_header_unicode(self):
+        response = self._makeOne(body=unicode('ärger', 'iso-8859-15'),
+                    headers={'content-type': 'application/foo'})
+        self.assertEqual(response.headers.get('content-type'),
+                         'application/foo; charset=iso-8859-15')
         self.assertEqual(response.body, 'ärger')
 
-    def test_CharsetApplicationHeader1Unicode(self):
-        response = self._makeOne(body=unicode('ärger', 'iso-8859-15'), headers={'content-type': 'application/foo; charset=utf-8'})
-        self.assertEqual(response.headers.get('content-type'), 'application/foo; charset=utf-8')
-        self.assertEqual(response.body, unicode('ärger', 'iso-8859-15').encode('utf-8'))
+    def test_charset_application_header_unicode_1(self):
+        response = self._makeOne(body=unicode('ärger', 'iso-8859-15'),
+                    headers={'content-type': 'application/foo; charset=utf-8'})
+        self.assertEqual(response.headers.get('content-type'),
+                         'application/foo; charset=utf-8')
+        self.assertEqual(response.body, unicode('ärger',
+                         'iso-8859-15').encode('utf-8'))
 
 def test_suite():
     suite = unittest.TestSuite()



More information about the Zope-Checkins mailing list