[Zope-Checkins] CVS: Zope/lib/python/ZServer/tests - test_responses.py:1.1.2.3

Jens Vagelpohl jens at dataflake.org
Sat Oct 1 09:18:19 EDT 2005


Update of /cvs-repository/Zope/lib/python/ZServer/tests
In directory cvs.zope.org:/tmp/cvs-serv19060/lib/python/ZServer/tests

Modified Files:
      Tag: Zope-2_7-branch
	test_responses.py 
Log Message:
- Collector #1863: Prevent possibly sensitive information to leak via
  the TransientObject's __repr__ method.


=== Zope/lib/python/ZServer/tests/test_responses.py 1.1.2.2 => 1.1.2.3 ===
--- Zope/lib/python/ZServer/tests/test_responses.py:1.1.2.2	Sun Mar 28 06:11:49 2004
+++ Zope/lib/python/ZServer/tests/test_responses.py	Sat Oct  1 09:18:19 2005
@@ -57,6 +57,30 @@
         self.assertRaises(AssertionError,
                           one.setBody, test_streamiterator())
 
+    def test_304NoContentLength(self):
+        # For 304 responses, there should be no content-length header
+        response = ZServerHTTPResponse()
+        if response.getHeader('content-length') is not None:
+            # remove it for this test
+            del response.headers['content-length']
+        self.assertEqual(response.getHeader('content-length'), None)
+
+        # By default, we are at either status 200 or 204. In this case, we 
+        # want a content-length header. __str__ will add it if it does not
+        # exist.
+        self.failUnless(response.getStatus() in (200, 204))
+        self.failUnless(str(response).lower().find('content-length') != -1)
+
+        # Now we set the status to 304. 304 responses, according to RFC 2616,
+        # should not have a content-length header. __str__ should not add it
+        # back in if it is missing.
+        if response.getHeader('content-length') is not None:
+            # remove it for this test
+            del response.headers['content-length']
+        response.setStatus(304)
+        self.assertEqual(response.getStatus(), 304)
+        self.failIf(str(response).lower().find('content-length') != -1)
+
 class DummyChannel:
     def __init__(self):
         self.out = StringIO()



More information about the Zope-Checkins mailing list