comparison mercurial/httpclient/tests/util.py @ 14376:a75e0f4ba0ab

httpclient: import revision fc731618702a of py-nonblocking-http
author Augie Fackler <durin42@gmail.com>
date Tue, 17 May 2011 10:28:03 -0500
parents 5c3de67e7402
children 494b26ad8736
comparison
equal deleted inserted replaced
14375:436e5379d7ba 14376:a75e0f4ba0ab
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 http._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) 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
95 # correct exception yet 95 # correct exception yet
96 assert not self.closed, 'attempted to write to a closed socket' 96 assert not self.closed, 'attempted to write to a closed socket'
114 self._sock = sock 114 self._sock = sock
115 self._fail_recv = True 115 self._fail_recv = True
116 116
117 def __getattr__(self, key): 117 def __getattr__(self, key):
118 return getattr(self._sock, key) 118 return getattr(self._sock, key)
119
120 def __setattr__(self, key, value):
121 if key not in ('_sock', '_fail_recv'):
122 return setattr(self._sock, key, value)
123 return object.__setattr__(self, key, value)
119 124
120 def recv(self, amt=-1): 125 def recv(self, amt=-1):
121 try: 126 try:
122 if self._fail_recv: 127 if self._fail_recv:
123 raise socket.sslerror(socket.SSL_ERROR_WANT_READ) 128 raise socket.sslerror(socket.SSL_ERROR_WANT_READ)