[Zope-Checkins] SVN: Zope/branches/tseaver-fix_wsgi/src/ZPublisher/tests/testHTTPResponse.py Finish coverage for __str__.
Tres Seaver
tseaver at palladion.com
Mon Dec 21 23:53:11 EST 2009
Log message for revision 106846:
Finish coverage for __str__.
Changed:
U Zope/branches/tseaver-fix_wsgi/src/ZPublisher/tests/testHTTPResponse.py
-=-
Modified: Zope/branches/tseaver-fix_wsgi/src/ZPublisher/tests/testHTTPResponse.py
===================================================================
--- Zope/branches/tseaver-fix_wsgi/src/ZPublisher/tests/testHTTPResponse.py 2009-12-22 04:45:49 UTC (rev 106845)
+++ Zope/branches/tseaver-fix_wsgi/src/ZPublisher/tests/testHTTPResponse.py 2009-12-22 04:53:10 UTC (rev 106846)
@@ -913,7 +913,11 @@
# def test_exception_* WAAAAAA!
- #TODO
+ def test___str__already_wrote(self):
+ response = self._makeOne()
+ response._wrote = True
+ self.assertEqual(str(response), '')
+
def test___str__empty(self):
response = self._makeOne()
result = str(response)
@@ -926,9 +930,38 @@
self.assertEqual(lines[3], '')
self.assertEqual(lines[4], '')
+ def test___str__existing_content_length(self):
+ # The application can break clients by setting a bogus length; we
+ # don't do anything to stop that.
+ response = self._makeOne()
+ response.setHeader('Content-Length', 42)
+ result = str(response)
+ lines = result.split('\r\n')
+ self.assertEqual(len(lines), 5)
+ self.assertEqual(lines[0], 'Status: 200 OK')
+ self.assertEqual(lines[1], 'X-Powered-By: Zope (www.zope.org), '
+ 'Python (www.python.org)')
+ self.assertEqual(lines[2], 'Content-Length: 42')
+ self.assertEqual(lines[3], '')
+ self.assertEqual(lines[4], '')
+
+ def test___str__existing_transfer_encoding(self):
+ # If 'Transfer-Encoding' is set, don't force 'Content-Length'.
+ response = self._makeOne()
+ response.setHeader('Transfer-Encoding', 'slurry')
+ result = str(response)
+ lines = result.split('\r\n')
+ self.assertEqual(len(lines), 5)
+ self.assertEqual(lines[0], 'Status: 200 OK')
+ self.assertEqual(lines[1], 'X-Powered-By: Zope (www.zope.org), '
+ 'Python (www.python.org)')
+ self.assertEqual(lines[2], 'Transfer-Encoding: slurry')
+ self.assertEqual(lines[3], '')
+ self.assertEqual(lines[4], '')
+
def test___str__after_setHeader(self):
response = self._makeOne()
- response.setHeader('X-Consistency', 'Foolish')
+ response.setHeader('x-consistency', 'Foolish')
result = str(response)
lines = result.split('\r\n')
self.assertEqual(len(lines), 6)
@@ -940,6 +973,20 @@
self.assertEqual(lines[4], '')
self.assertEqual(lines[5], '')
+ def test___str__after_setHeader_literal(self):
+ response = self._makeOne()
+ response.setHeader('X-consistency', 'Foolish', literal=True)
+ result = str(response)
+ lines = result.split('\r\n')
+ self.assertEqual(len(lines), 6)
+ self.assertEqual(lines[0], 'Status: 200 OK')
+ self.assertEqual(lines[1], 'X-Powered-By: Zope (www.zope.org), '
+ 'Python (www.python.org)')
+ self.assertEqual(lines[2], 'Content-Length: 0')
+ self.assertEqual(lines[3], 'X-consistency: Foolish')
+ self.assertEqual(lines[4], '')
+ self.assertEqual(lines[5], '')
+
def test___str__after_redirect(self):
response = self._makeOne()
response.redirect('http://example.com/')
@@ -1018,6 +1065,7 @@
self.assertEqual(lines[4], '')
self.assertEqual(lines[5], 'BLAH')
+ # TODO
# def test_write_already_wrote
# def test_write_not_already_wrote
More information about the Zope-Checkins
mailing list