Test sending/receiving multiple (binary-valued) headers.
()
| 2337 | |
| 2338 | |
| 2339 | def test_middleware_multi_header(): |
| 2340 | """Test sending/receiving multiple (binary-valued) headers.""" |
| 2341 | with MultiHeaderFlightServer(middleware={ |
| 2342 | "test": MultiHeaderServerMiddlewareFactory(), |
| 2343 | }) as server: |
| 2344 | headers = MultiHeaderClientMiddlewareFactory() |
| 2345 | with FlightClient( |
| 2346 | ('localhost', server.port), |
| 2347 | middleware=[headers]) as client: |
| 2348 | response = next(client.do_action(flight.Action(b"", b""))) |
| 2349 | # The server echoes the headers it got back to us. |
| 2350 | raw_headers = response.body.to_pybytes().decode("utf-8") |
| 2351 | client_headers = ast.literal_eval(raw_headers) |
| 2352 | # Don't directly compare; gRPC may add headers like User-Agent. |
| 2353 | for header, values in MultiHeaderClientMiddleware.EXPECTED.items(): |
| 2354 | header = header.lower() |
| 2355 | if isinstance(header, bytes): |
| 2356 | header = header.decode("ascii") |
| 2357 | assert client_headers.get(header) == values |
| 2358 | assert headers.last_headers.get(header) == values |
| 2359 | |
| 2360 | |
| 2361 | @pytest.mark.requires_testing_data |
nothing calls this directly
no test coverage detected