diff options
| author | Gabriel Falcão <gabriel@nacaolivre.org> | 2015-02-12 16:39:29 -0500 |
|---|---|---|
| committer | Gabriel Falcão <gabriel@nacaolivre.org> | 2015-02-12 16:39:29 -0500 |
| commit | 1370ec3d852543e28e89a803d15c89923d43e84b (patch) | |
| tree | d1f78bdf466344a6b5366b001c3cb8ceb7cd0b3d | |
| parent | f78bcbe2eca652481abcd3e661956a80a22ea27a (diff) | |
| parent | ba2421ad3f6962ec0185332e05c8c2a468cadbf1 (diff) | |
| download | httpretty-frankamp-master.tar.gz | |
Merge branch 'master' of https://github.com/frankamp/HTTPretty into frankamp-masterfrankamp-master
| -rw-r--r-- | httpretty/core.py | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/httpretty/core.py b/httpretty/core.py index 3f2101e..6c0c4db 100644 --- a/httpretty/core.py +++ b/httpretty/core.py @@ -229,7 +229,9 @@ class HTTPrettyRequestEmpty(object): class FakeSockFile(StringIO): - pass + def close(self): + self.socket.close() + StringIO.close(self) class FakeSSLSocket(object): @@ -248,16 +250,16 @@ class fakesock(object): def __init__(self, family=socket.AF_INET, type=socket.SOCK_STREAM, protocol=0): - self.setsockopt(family, type, protocol) self.truesock = (old_socket(family, type, protocol) if httpretty.allow_net_connect else None) self._closed = True self.fd = FakeSockFile() + self.fd.socket = self self.timeout = socket._GLOBAL_DEFAULT_TIMEOUT self._sock = self self.is_http = False - self._bufsize = 16 + self._bufsize = 1024 def getpeercert(self, *a, **kw): now = datetime.now() @@ -286,10 +288,9 @@ class fakesock(object): def ssl(self, sock, *args, **kw): return sock - def setsockopt(self, family, type, protocol): - self.family = family - self.protocol = protocol - self.type = type + def setsockopt(self, level, optname, value): + if self.truesock: + self.truesock.setsockopt(level, optname, value) def connect(self, address): self._closed = False @@ -312,7 +313,7 @@ class fakesock(object): raise UnmockedError() def close(self): - if not (self.is_http and self._closed): + if not self.is_http and not self._closed: if self.truesock: self.truesock.close() self._closed = True @@ -350,7 +351,7 @@ class fakesock(object): # that self.truesock.connect(self._address) - self.truesock.settimeout(0) + self.truesock.setblocking(1) self.truesock.sendall(data, *args, **kw) should_continue = True @@ -358,7 +359,7 @@ class fakesock(object): try: received = self.truesock.recv(self._bufsize) self.fd.write(received) - should_continue = len(received) > 0 + should_continue = len(received) == self._bufsize except socket.error as e: if e.errno == EAGAIN: @@ -369,7 +370,8 @@ class fakesock(object): def sendall(self, data, *args, **kw): self._sent_data.append(data) - + self.fd = FakeSockFile() + self.fd.socket = self try: requestline, _ = data.split(b'\r\n', 1) method, path, version = parse_requestline(decode_utf8(requestline)) |
