Skip to content

Commit f5802d8

Browse files
author
Dana Powers
committed
Implement last of the skipped test_conn.py tests
1 parent 635b293 commit f5802d8

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

test/test_conn.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,9 +177,25 @@ def raise_error(*args):
177177
except ConnectionError:
178178
self.assertEquals(self.conn._dirty, True)
179179

180-
@unittest2.skip("Not Implemented")
181180
def test_recv__doesnt_consume_extra_data_in_stream(self):
182-
pass
181+
data1 = self.config['payload']
182+
size1 = len(data1)
183+
encoded1 = struct.pack('>i%ds' % size1, size1, data1)
184+
data2 = "an extra payload"
185+
size2 = len(data2)
186+
encoded2 = struct.pack('>i%ds' % size2, size2, data2)
187+
188+
self.conn._recv_buffer = encoded1
189+
self.conn._recv_buffer += encoded2
190+
191+
def mock_socket_recv(num_bytes):
192+
data = self.conn._recv_buffer[0:num_bytes]
193+
self.conn._recv_buffer = self.conn._recv_buffer[num_bytes:]
194+
return data
195+
196+
with mock.patch.object(self.conn._sock, 'recv', new=mock_socket_recv):
197+
self.assertEquals(self.conn.recv(self.config['request_id']), self.config['payload'])
198+
self.assertEquals(str(self.conn._recv_buffer), encoded2)
183199

184200
def test_close__object_is_reusable(self):
185201

0 commit comments

Comments
 (0)