Coverage for vcr.stubs.compat: 67%

# Coverage for vcr.stubs.compat : 67%

## 27 statements 18 run 9 missing 0 excluded

Hot-keys on this page

r m x p toggle line displays

j k next/prev highlighted chunk

0 (zero) top of page

1 (one) first highlighted chunk

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | import six from six import BytesIO from six.moves.http_client import HTTPMessage try: import http.client except ImportError: pass """ The python3 http.client api moved some stuff around, so this is an abstraction layer that tries to cope with this move. """ def get_header(message, name): if six.PY3: return message.getallmatchingheaders(name) else: return message.getheader(name) def get_header_items(message): for (key, values) in get_headers(message): for value in values: yield key, value def get_headers(message): for key in set(message.keys()): if six.PY3: yield key, message.get_all(key) else: yield key, message.getheaders(key) def get_httpmessage(headers): if six.PY3: return http.client.parse_headers(BytesIO(headers)) msg = HTTPMessage(BytesIO(headers)) msg.fp.seek(0) msg.readheaders() return msg