Skip to content
This repository was archived by the owner on Jan 13, 2021. It is now read-only.

Commit e94a059

Browse files
committed
Clean up DummySocket buffer management.
1 parent 4b6f079 commit e94a059

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

test/test_http11.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -129,12 +129,12 @@ def test_iterable_header(self):
129129
c._sock = sock = DummySocket()
130130

131131
c.request('GET', '/get', headers=(
132-
('User-Agent', 'hyper'),
132+
('User-Agent', 'hyper'),
133133
('Custom-field', 'test'),
134134
('Custom-field2', 'test'),
135135
('Custom-field', 'test2'),
136136
))
137-
137+
138138
expected = (
139139
b"GET /get HTTP/1.1\r\n"
140140
b"User-Agent: hyper\r\n"
@@ -774,13 +774,16 @@ class DummySocket(object):
774774
def __init__(self):
775775
self.queue = []
776776
self._buffer = BytesIO()
777+
self._read_counter = 0
777778
self.can_read = False
778779

779780
@property
780781
def buffer(self):
781-
return memoryview(self._buffer.getvalue())
782+
return memoryview(self._buffer.getvalue()[self._read_counter:])
782783

783784
def advance_buffer(self, amt):
785+
print "advance buffer %d" % amt
786+
self._read_counter += amt
784787
self._buffer.read(amt)
785788

786789
def send(self, data):
@@ -790,13 +793,17 @@ def send(self, data):
790793
self.queue.append(data)
791794

792795
def recv(self, l):
793-
return memoryview(self._buffer.read(l))
796+
data = self._buffer.read(l)
797+
self._read_counter += len(data)
798+
return memoryview(data)
794799

795800
def close(self):
796801
pass
797802

798803
def readline(self):
799-
return memoryview(self._buffer.readline())
804+
line = self._buffer.readline()
805+
self._read_counter += len(line)
806+
return memoryview(line)
800807

801808
def fill(self):
802809
pass
@@ -817,4 +824,3 @@ def readline(self):
817824

818825
def __iter__(self):
819826
return self.buffer.__iter__()
820-

test/test_hyper.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -960,14 +960,17 @@ def buffer(self, value):
960960

961961
def advance_buffer(self, amt):
962962
self._read_counter += amt
963+
self._buffer.read(amt)
963964

964965
def send(self, data):
965966
self.queue.append(data)
966967

967968
sendall = send
968969

969970
def recv(self, l):
970-
return memoryview(self.buffer.read(l))
971+
data = self._buffer.read(l)
972+
self._read_counter += len(data)
973+
return memoryview(data)
971974

972975
def close(self):
973976
pass

0 commit comments

Comments
 (0)