def test_headers(self): """ Check that setting a header with L{FakeRequest.setHeader} actually places it in the headers dictionary. """ host = "divmod.com" req = FakeRequest() req.setHeader("host", host) self.assertEqual(req.responseHeaders.getRawHeaders("host"), [host])
def test_headers(self): """ Check that setting a header with L{FakeRequest.setHeader} actually places it in the headers dictionary. """ host = 'divmod.com' req = FakeRequest() req.setHeader('host', host) self.assertEqual(req.responseHeaders.getRawHeaders('host'), [host])
def test_headers(self): """ Check that setting a header with L{FakeRequest.setHeader} actually places it in the headers dictionary. """ host = 'divmod.com' req = FakeRequest() req.setHeader('host', host) self.assertEqual(req.headers['host'], host)
def test_headers(self): """ Check that one can get headers from L{FakeRequest} after they have been set with L{FakeRequest.setHeader}. """ host = 'divmod.com' req = FakeRequest() req.setHeader('host', host) self.assertEqual(req.getHeader('host'), host)
def test_headers(self): """ Check that setting a header with L{FakeRequest.setHeader} actually places it in the headers dictionary. """ host = 'divmod.com' req = FakeRequest() req.setHeader(b'host', host) self.assertEqual(req.headers['host'], host)
def test_headerSeparation(self): """ Request headers and response headers are different things. Test that they are handled separately. """ req = FakeRequest() req.setHeader('foo', 'bar') self.assertFalse(req.requestHeaders.hasHeader('foo')) self.assertEqual(req.getHeader('foo'), None) req.requestHeaders.setRawHeaders('foo', ['bar']) self.assertEqual(req.getHeader('foo'), 'bar')
def test_headerSeparation(self): """ Request headers and response headers are different things. Test that they are handled separately. """ req = FakeRequest() req.setHeader('foo', 'bar') self.assertNotIn('foo', req.received_headers) self.assertEqual(req.getHeader('foo'), None) req.received_headers['foo'] = 'bar' self.assertEqual(req.getHeader('foo'), 'bar')
def test_headerSeparation(self): """ Request headers and response headers are different things. Test that they are handled separately. """ req = FakeRequest() req.setHeader("foo", "bar") self.assertFalse(req.requestHeaders.hasHeader("foo")) self.assertEqual(req.getHeader("foo"), None) req.requestHeaders.setRawHeaders("foo", ["bar"]) self.assertEqual(req.getHeader("foo"), "bar")
class RequestWrapperTests(TestCase): """ Tests for L{CompressingRequestWrapper}. """ def setUp(self): """ Wrap a request fake to test the wrapper. """ self.request = FakeRequest() self.wrapper = CompressingRequestWrapper(self.request) def test_attributes(self): """ Attributes on the wrapper should be forwarded to the underlying request. """ attributes = ['method', 'uri', 'path', 'args', 'requestHeaders'] for attrName in attributes: self.assertIdentical(getattr(self.wrapper, attrName), getattr(self.request, attrName)) def test_missingAttributes(self): """ Attributes that are not part of the interfaces being proxied should not be proxied. """ self.assertRaises(AttributeError, getattr, self.wrapper, 'doesntexist') self.request._privateTestAttribute = 42 self.assertRaises(AttributeError, getattr, self.wrapper, '_privateTestAttribute') def test_contentLength(self): """ Content-Length header should be discarded when compression is in use. """ self.assertFalse( self.request.responseHeaders.hasHeader('content-length')) self.wrapper.setHeader('content-length', 1234) self.assertFalse( self.request.responseHeaders.hasHeader('content-length')) self.request.setHeader('content-length', 1234) self.wrapper = CompressingRequestWrapper(self.request) self.assertFalse( self.request.responseHeaders.hasHeader('content-length')) def test_responseHeaders(self): """ Content-Encoding header should be set appropriately. """ self.assertEqual( self.request.responseHeaders.getRawHeaders('content-encoding'), ['gzip']) def test_lazySetup(self): """ The gzip prelude should only be written once real data is written. This is necessary to avoid terminating the header too quickly. """ self.assertEqual(self.request.accumulator, '') self.wrapper.write('foo') self.assertNotEqual(self.request.accumulator, '') def _ungzip(self, data): """ Un-gzip some data. """ s = StringIO(data) return GzipFile(fileobj=s, mode='rb').read() def test_encoding(self): """ Response content should be written out in compressed format. """ self.wrapper.write('foo') self.wrapper.write('bar') self.wrapper.finishRequest(True) self.assertEqual(self._ungzip(self.request.accumulator), 'foobar') def test_finish(self): """ Calling C{finishRequest()} on the wrapper should cause the underlying implementation to be called. """ self.wrapper.finishRequest(True) self.assertTrue(self.request.finished)
class RequestWrapperTests(TestCase): """ Tests for L{CompressingRequestWrapper}. """ def setUp(self): """ Wrap a request fake to test the wrapper. """ self.request = FakeRequest() self.wrapper = CompressingRequestWrapper(self.request) def test_attributes(self): """ Attributes on the wrapper should be forwarded to the underlying request. """ attributes = ['method', 'uri', 'path', 'args', 'received_headers'] for attrName in attributes: self.assertIdentical(getattr(self.wrapper, attrName), getattr(self.request, attrName)) def test_missingAttributes(self): """ Attributes that are not part of the interfaces being proxied should not be proxied. """ self.assertRaises(AttributeError, getattr, self.wrapper, 'doesntexist') self.request._privateTestAttribute = 42 self.assertRaises(AttributeError, getattr, self.wrapper, '_privateTestAttribute') def test_contentLength(self): """ Content-Length header should be discarded when compression is in use. """ self.assertNotIn('content-length', self.request.headers) self.wrapper.setHeader(b'content-length', 1234) self.assertNotIn('content-length', self.request.headers) self.request.setHeader(b'content-length', 1234) self.wrapper = CompressingRequestWrapper(self.request) self.assertNotIn('content-length', self.request.headers) def test_responseHeaders(self): """ Content-Encoding header should be set appropriately. """ self.assertEqual(self.request.headers['content-encoding'], 'gzip') def test_lazySetup(self): """ The gzip prelude should only be written once real data is written. This is necessary to avoid terminating the header too quickly. """ self.assertEqual(self.request.accumulator, '') self.wrapper.write('foo') self.assertNotEqual(self.request.accumulator, '') def _ungzip(self, data): """ Un-gzip some data. """ s = StringIO(data) return GzipFile(fileobj=s, mode='rb').read() def test_encoding(self): """ Response content should be written out in compressed format. """ self.wrapper.write('foo') self.wrapper.write('bar') self.wrapper.finishRequest(True) self.assertEqual(self._ungzip(self.request.accumulator), 'foobar') def test_finish(self): """ Calling C{finishRequest()} on the wrapper should cause the underlying implementation to be called. """ self.wrapper.finishRequest(True) self.assertTrue(self.request.finished)