def test_reading_chunked_request(self): tracker = TrackingDelegate(ValidatingDelegate(self)) parser = ResponseParser(tracker) chunk_message(CHUNKED_RESPONSE, parser) tracker.validate_hits({ RESPONSE_HTTP_VERSION_SLOT: 1, RESPONSE_CODE_SLOT: 1, HEADER_FIELD_SLOT: 1, HEADER_VALUE_SLOT: 1, BODY_SLOT: 4, BODY_COMPLETE_SLOT: 1}, self)
def test_reading_request_with_content_length(self): tracker = TrackingDelegate(ValidatingDelegate(self)) parser = ResponseParser(tracker) chunk_message(NORMAL_RESPONSE, parser) tracker.validate_hits({ RESPONSE_HTTP_VERSION_SLOT: 1, RESPONSE_CODE_SLOT: 1, HEADER_FIELD_SLOT: 1, HEADER_VALUE_SLOT: 1, BODY_SLOT: 3, BODY_COMPLETE_SLOT: 1}, self)
def _on_upstream_live(self, upstream): self._upstream_handler = UpstreamHandler( self._downstream, upstream, self._us_filter_pl, self._request) if self._upstream_parser: self._upstream_parser.destroy() self._upstream_parser = ResponseParser(self._upstream_handler) # Set the read callback upstream.read(self._on_upstream_read) # Send the proxied request object upstream.write(self._request.to_bytes()) # Drop the ref to the proxied request head self._request = None # Set up our downstream handler self._downstream_handler.on_upstream_connect(upstream)