summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@plope.com>2014-05-15 00:32:19 -0400
committerChris McDonough <chrism@plope.com>2014-05-15 00:32:19 -0400
commit2269e13ff71a66de1f1b69ce096b65a055654487 (patch)
treeab01e5bbf04e072893b8ae594d4fbaa4dd198cb3
parentffce665ede764b828ba4814c1c83ffffb063ee34 (diff)
downloadwaitress-2269e13ff71a66de1f1b69ce096b65a055654487.tar.gz
no need to alias close to _close now that ReadOnlyFileBasedBuffer actually has a close method that works both when called from inside waitress and from within wsgi code
-rw-r--r--waitress/buffers.py8
-rw-r--r--waitress/channel.py8
-rw-r--r--waitress/parser.py4
-rw-r--r--waitress/tests/test_buffers.py12
-rw-r--r--waitress/tests/test_channel.py8
-rw-r--r--waitress/tests/test_parser.py10
6 files changed, 23 insertions, 27 deletions
diff --git a/waitress/buffers.py b/waitress/buffers.py
index 0ac51aa..f174a79 100644
--- a/waitress/buffers.py
+++ b/waitress/buffers.py
@@ -104,14 +104,10 @@ class FileBasedBuffer(object):
return self.file
def close(self):
- # named _close because ReadOnlyFileBasedBuffer is used as
- # wsgi file.wrapper, and its protocol reserves "close"
if hasattr(self.file, 'close'):
self.file.close()
self.remain = 0
- _close = close
-
class TempfileBasedBuffer(FileBasedBuffer):
def __init__(self, from_buffer=None):
@@ -296,7 +292,7 @@ class OverflowableBuffer(object):
buf = self._create_buffer()
return buf.getfile()
- def _close(self):
+ def close(self):
buf = self.buf
if buf is not None:
- buf._close()
+ buf.close()
diff --git a/waitress/channel.py b/waitress/channel.py
index 11ac140..0233185 100644
--- a/waitress/channel.py
+++ b/waitress/channel.py
@@ -244,7 +244,7 @@ class HTTPChannel(logging_dispatcher, object):
if len(self.outbufs) > 1:
toclose = self.outbufs.pop(0)
try:
- toclose._close()
+ toclose.close()
except:
self.logger.exception(
'Unexpected error when closing an outbuf')
@@ -275,7 +275,7 @@ class HTTPChannel(logging_dispatcher, object):
def handle_close(self):
for outbuf in self.outbufs:
try:
- outbuf._close()
+ outbuf.close()
except:
self.logger.exception(
'Unknown exception while trying to close outbuf')
@@ -365,11 +365,11 @@ class HTTPChannel(logging_dispatcher, object):
if task.close_on_finish:
self.close_when_flushed = True
for request in self.requests:
- request._close()
+ request.close()
self.requests = []
else:
request = self.requests.pop(0)
- request._close()
+ request.close()
self.force_flush = True
self.server.pull_trigger()
diff --git a/waitress/parser.py b/waitress/parser.py
index dc3ec47..dec96f6 100644
--- a/waitress/parser.py
+++ b/waitress/parser.py
@@ -243,10 +243,10 @@ class HTTPRequestParser(object):
else:
return BytesIO()
- def _close(self):
+ def close(self):
body_rcv = self.body_rcv
if body_rcv is not None:
- body_rcv.getbuf()._close()
+ body_rcv.getbuf().close()
def split_uri(uri):
# urlsplit handles byte input by returning bytes on py3, so
diff --git a/waitress/tests/test_buffers.py b/waitress/tests/test_buffers.py
index 4a6bf5b..8a4ce6e 100644
--- a/waitress/tests/test_buffers.py
+++ b/waitress/tests/test_buffers.py
@@ -105,7 +105,7 @@ class TestFileBasedBuffer(unittest.TestCase):
inst.prune()
self.assertTrue(inst.file is f)
- def test__close(self):
+ def test_close(self):
f = io.BytesIO()
inst = self._makeOne(f)
inst.close()
@@ -407,19 +407,19 @@ class TestOverflowableBuffer(unittest.TestCase):
f = inst.getfile()
self.assertEqual(f, buf)
- def test__close_nobuf(self):
+ def test_close_nobuf(self):
inst = self._makeOne()
inst.buf = None
- self.assertEqual(inst._close(), None) # doesnt raise
+ self.assertEqual(inst.close(), None) # doesnt raise
- def test__close_withbuf(self):
+ def test_close_withbuf(self):
class Buffer(object):
- def _close(self):
+ def close(self):
self.closed = True
buf = Buffer()
inst = self._makeOne()
inst.buf = buf
- inst._close()
+ inst.close()
self.assertTrue(buf.closed)
class KindaFilelike(object):
diff --git a/waitress/tests/test_channel.py b/waitress/tests/test_channel.py
index 3ca97f0..afe6e51 100644
--- a/waitress/tests/test_channel.py
+++ b/waitress/tests/test_channel.py
@@ -261,7 +261,7 @@ class TestHTTPChannel(unittest.TestCase):
inst.logger = DummyLogger()
def doraise():
raise NotImplementedError
- inst.outbufs[0]._close = doraise
+ inst.outbufs[0].close = doraise
result = inst._flush_some()
self.assertEqual(result, True)
self.assertEqual(buffer.skipped, 3)
@@ -298,7 +298,7 @@ class TestHTTPChannel(unittest.TestCase):
inst, sock, map = self._makeOneWithMap()
def doraise():
raise NotImplementedError
- inst.outbufs[0]._close = doraise
+ inst.outbufs[0].close = doraise
inst.logger = DummyLogger()
inst.handle_close()
self.assertEqual(inst.connected, False)
@@ -636,7 +636,7 @@ class DummyBuffer(object):
def __len__(self):
return len(self.data)
- def _close(self):
+ def close(self):
self.closed = True
class DummyAdjustments(object):
@@ -692,7 +692,7 @@ class DummyRequest(object):
def __init__(self):
self.headers = {}
- def _close(self):
+ def close(self):
self.closed = True
class DummyLogger(object):
diff --git a/waitress/tests/test_parser.py b/waitress/tests/test_parser.py
index 72e3a01..ed3a66c 100644
--- a/waitress/tests/test_parser.py
+++ b/waitress/tests/test_parser.py
@@ -201,15 +201,15 @@ foo: bar"""
self.parser.parse_header(data)
self.assertEqual(self.parser.connection_close, True)
- def test__close_with_body_rcv(self):
+ def test_close_with_body_rcv(self):
body_rcv = DummyBodyStream()
self.parser.body_rcv = body_rcv
- self.parser._close()
+ self.parser.close()
self.assertTrue(body_rcv.closed)
- def test__close_with_no_body_rcv(self):
+ def test_close_with_no_body_rcv(self):
self.parser.body_rcv = None
- self.parser._close() # doesn't raise
+ self.parser.close() # doesn't raise
class Test_split_uri(unittest.TestCase):
@@ -407,5 +407,5 @@ class DummyBodyStream(object):
def getbuf(self):
return self
- def _close(self):
+ def close(self):
self.closed = True