Skip to content

Commit e73c3e6

Browse files
committed
Fix failing tests with responses ≥ 0.22.0
Close #1461 Close #1467 Thanks, @alexshpilkin!
1 parent f0563de commit e73c3e6

File tree

1 file changed

+27
-19
lines changed

1 file changed

+27
-19
lines changed

httpie/models.py

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
from .compat import cached_property
1717
from .utils import split_cookies, parse_content_type_header
1818

19-
2019
ELAPSED_TIME_LABEL = 'Elapsed time'
2120

2221

@@ -67,27 +66,10 @@ def iter_body(self, chunk_size=1):
6766
def iter_lines(self, chunk_size):
6867
return ((line, b'\n') for line in self._orig.iter_lines(chunk_size))
6968

70-
# noinspection PyProtectedMember
7169
@property
7270
def headers(self):
73-
try:
74-
raw = self._orig.raw
75-
if getattr(raw, '_original_response', None):
76-
raw_version = raw._original_response.version
77-
else:
78-
raw_version = raw.version
79-
except AttributeError:
80-
# Assume HTTP/1.1
81-
raw_version = 11
82-
version = {
83-
9: '0.9',
84-
10: '1.0',
85-
11: '1.1',
86-
20: '2.0',
87-
}[raw_version]
88-
8971
original = self._orig
90-
status_line = f'HTTP/{version} {original.status_code} {original.reason}'
72+
status_line = f'HTTP/{self.version} {original.status_code} {original.reason}'
9173
headers = [status_line]
9274
headers.extend(
9375
': '.join(header)
@@ -117,6 +99,32 @@ def metadata(self) -> str:
11799
for key, value in data.items()
118100
)
119101

102+
@property
103+
def version(self) -> str:
104+
"""
105+
Return the HTTP version used by the server, e.g. '1.1'.
106+
107+
Assume HTTP/1.1 if version is not available.
108+
109+
"""
110+
mapping = {
111+
9: '0.9',
112+
10: '1.0',
113+
11: '1.1',
114+
20: '2.0',
115+
}
116+
fallback = 11
117+
version = None
118+
try:
119+
raw = self._orig.raw
120+
if getattr(raw, '_original_response', None):
121+
version = raw._original_response.version
122+
else:
123+
version = raw.version
124+
except AttributeError:
125+
pass
126+
return mapping[version or fallback]
127+
120128

121129
class HTTPRequest(HTTPMessage):
122130
"""A :class:`requests.models.Request` wrapper."""

0 commit comments

Comments
 (0)