MCPcopy Create free account
hub / github.com/apache/arrow / test_headers_trailers

Function test_headers_trailers

python/pyarrow/tests/test_flight.py:2691–2729  ·  view source on GitHub ↗

Ensure that server-sent headers/trailers make it through.

()

Source from the content-addressed store, hash-verified

2689
2690
2691def test_headers_trailers():
2692 """Ensure that server-sent headers/trailers make it through."""
2693
2694 class HeadersTrailersFlightServer(FlightServerBase):
2695 def get_flight_info(self, context, descriptor):
2696 context.add_header("x-header", "header-value")
2697 context.add_header("x-header-bin", "header\x01value")
2698 context.add_trailer("x-trailer", "trailer-value")
2699 context.add_trailer("x-trailer-bin", "trailer\x01value")
2700 return flight.FlightInfo(
2701 pa.schema([]),
2702 descriptor,
2703 []
2704 )
2705
2706 class HeadersTrailersMiddlewareFactory(ClientMiddlewareFactory):
2707 def __init__(self):
2708 self.headers = []
2709
2710 def start_call(self, info):
2711 return HeadersTrailersMiddleware(self)
2712
2713 class HeadersTrailersMiddleware(ClientMiddleware):
2714 def __init__(self, factory):
2715 self.factory = factory
2716
2717 def received_headers(self, headers):
2718 for key, values in headers.items():
2719 for value in values:
2720 self.factory.headers.append((key, value))
2721
2722 factory = HeadersTrailersMiddlewareFactory()
2723 with HeadersTrailersFlightServer() as server, \
2724 FlightClient(("localhost", server.port), middleware=[factory]) as client:
2725 client.get_flight_info(flight.FlightDescriptor.for_path(""))
2726 assert ("x-header", "header-value") in factory.headers
2727 assert ("x-header-bin", b"header\x01value") in factory.headers
2728 assert ("x-trailer", "trailer-value") in factory.headers
2729 assert ("x-trailer-bin", b"trailer\x01value") in factory.headers
2730
2731
2732def test_flight_dictionary_deltas_do_exchange():

Callers

nothing calls this directly

Calls 4

FlightClientClass · 0.90
get_flight_infoMethod · 0.45

Tested by

no test coverage detected