Mercurial > public > mercurial-scm > hg
comparison mercurial/httpclient/tests/util.py @ 16643:24dbef11f477
httpclient: update to revision 892730fe7f46 of httpplus
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Fri, 04 May 2012 16:00:33 -0500 |
parents | 494b26ad8736 |
children | 69af967b6d6f |
comparison
equal
deleted
inserted
replaced
16642:5cf18921bb7b | 16643:24dbef11f477 |
---|---|
27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 import difflib | 29 import difflib |
30 import socket | 30 import socket |
31 | 31 |
32 import http | 32 import httpplus |
33 | 33 |
34 | 34 |
35 class MockSocket(object): | 35 class MockSocket(object): |
36 """Mock non-blocking socket object. | 36 """Mock non-blocking socket object. |
37 | 37 |
55 self.early_data = [] | 55 self.early_data = [] |
56 self.data = [] | 56 self.data = [] |
57 self.remote_closed = self.closed = False | 57 self.remote_closed = self.closed = False |
58 self.close_on_empty = False | 58 self.close_on_empty = False |
59 self.sent = '' | 59 self.sent = '' |
60 self.read_wait_sentinel = http._END_HEADERS | 60 self.read_wait_sentinel = httpplus._END_HEADERS |
61 | 61 |
62 def close(self): | 62 def close(self): |
63 self.closed = True | 63 self.closed = True |
64 | 64 |
65 def connect(self, sa): | 65 def connect(self, sa): |
84 self.remote_closed = True | 84 self.remote_closed = True |
85 return data[:amt] | 85 return data[:amt] |
86 | 86 |
87 @property | 87 @property |
88 def ready_for_read(self): | 88 def ready_for_read(self): |
89 return ((self.early_data and http._END_HEADERS in self.sent) | 89 return ((self.early_data and httpplus._END_HEADERS in self.sent) |
90 or (self.read_wait_sentinel in self.sent and self.data) | 90 or (self.read_wait_sentinel in self.sent and self.data) |
91 or self.closed or self.remote_closed) | 91 or self.closed or self.remote_closed) |
92 | 92 |
93 def send(self, data): | 93 def send(self, data): |
94 # this is a horrible mock, but nothing needs us to raise the | 94 # this is a horrible mock, but nothing needs us to raise the |
130 finally: | 130 finally: |
131 self._fail_recv = not self._fail_recv | 131 self._fail_recv = not self._fail_recv |
132 | 132 |
133 | 133 |
134 def mocksslwrap(sock, keyfile=None, certfile=None, | 134 def mocksslwrap(sock, keyfile=None, certfile=None, |
135 server_side=False, cert_reqs=http.socketutil.CERT_NONE, | 135 server_side=False, cert_reqs=httpplus.socketutil.CERT_NONE, |
136 ssl_version=None, ca_certs=None, | 136 ssl_version=None, ca_certs=None, |
137 do_handshake_on_connect=True, | 137 do_handshake_on_connect=True, |
138 suppress_ragged_eofs=True): | 138 suppress_ragged_eofs=True): |
139 return MockSSLSocket(sock) | 139 return MockSSLSocket(sock) |
140 | 140 |
154 socket.socket = MockSocket | 154 socket.socket = MockSocket |
155 | 155 |
156 self.orig_getaddrinfo = socket.getaddrinfo | 156 self.orig_getaddrinfo = socket.getaddrinfo |
157 socket.getaddrinfo = mockgetaddrinfo | 157 socket.getaddrinfo = mockgetaddrinfo |
158 | 158 |
159 self.orig_select = http.select.select | 159 self.orig_select = httpplus.select.select |
160 http.select.select = mockselect | 160 httpplus.select.select = mockselect |
161 | 161 |
162 self.orig_sslwrap = http.socketutil.wrap_socket | 162 self.orig_sslwrap = httpplus.socketutil.wrap_socket |
163 http.socketutil.wrap_socket = mocksslwrap | 163 httpplus.socketutil.wrap_socket = mocksslwrap |
164 | 164 |
165 def tearDown(self): | 165 def tearDown(self): |
166 socket.socket = self.orig_socket | 166 socket.socket = self.orig_socket |
167 http.select.select = self.orig_select | 167 httpplus.select.select = self.orig_select |
168 http.socketutil.wrap_socket = self.orig_sslwrap | 168 httpplus.socketutil.wrap_socket = self.orig_sslwrap |
169 socket.getaddrinfo = self.orig_getaddrinfo | 169 socket.getaddrinfo = self.orig_getaddrinfo |
170 | 170 |
171 def assertStringEqual(self, l, r): | 171 def assertStringEqual(self, l, r): |
172 try: | 172 try: |
173 self.assertEqual(l, r, ('failed string equality check, ' | 173 self.assertEqual(l, r, ('failed string equality check, ' |