Skip to content

Commit 772eafc

Browse files
authored
Body sent via send() is not considered. (#67)
1 parent 79f9f5a commit 772eafc

File tree

3 files changed

+12
-9
lines changed

3 files changed

+12
-9
lines changed

mocket/mocket.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -222,8 +222,9 @@ def makefile(self, mode='r', bufsize=-1):
222222
def get_entry(self, data):
223223
return Mocket.get_entry(self._host, self._port, data)
224224

225-
def sendall(self, data, *args, **kwargs):
226-
entry = self.get_entry(data)
225+
def sendall(self, data, entry=None, *args, **kwargs):
226+
if entry is None:
227+
entry = self.get_entry(data)
227228

228229
if entry:
229230
entry.collect(data)
@@ -317,13 +318,14 @@ def true_sendall(self, data, *args, **kwargs):
317318
def send(self, data, *args, **kwargs): # pragma: no cover
318319
entry = self.get_entry(data)
319320
if entry and self._entry != entry:
320-
self.sendall(data, *args, **kwargs)
321+
self.sendall(data, entry=entry, *args, **kwargs)
322+
else:
323+
req = Mocket.last_request()
324+
if hasattr(req, 'add_data'):
325+
req.add_data(decode_from_bytes(data))
321326
self._entry = entry
322327
return len(data)
323328

324-
# def __getattribute__(self, name):
325-
# return super(MocketSocket, self).__getattribute__(name)
326-
327329
def __getattr__(self, name):
328330
""" Useful when clients call methods on real
329331
socket we do not provide on the fake one. """

mocket/mockhttp.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ def __init__(self, data):
3131
self.method = self.command
3232
self.querystring = parse_qs(unquote_utf8(urlsplit(self.path).query), keep_blank_values=True)
3333

34-
def __str__(self):
35-
return "{} - {} - {}".format(self.method, self.path, self.headers)
34+
def add_data(self, data):
35+
self.body += data
3636

3737
def __str__(self):
3838
return "{} - {} - {}".format(self.method, self.path, self.headers)

tests/tests35/test_http_aiohttp.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import async_timeout
66
from unittest import TestCase
77

8-
from mocket.mocket import mocketize
8+
from mocket.mocket import mocketize, Mocket
99
from mocket.mockhttp import Entry
1010
from mocket.plugins.httpretty import HTTPretty, httprettified
1111

@@ -29,6 +29,7 @@ async def main(l):
2929
async with session.post(url, data=body * 6) as post_response:
3030
assert post_response.status == 201
3131
assert await post_response.text() == body * 2
32+
assert Mocket.last_request().body == body * 6
3233

3334
loop = asyncio.get_event_loop()
3435
loop.set_debug(True)

0 commit comments

Comments
 (0)