lsrestclient 3.0.1__tar.gz → 3.1.0__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {lsrestclient-3.0.1 → lsrestclient-3.1.0}/PKG-INFO +1 -1
- {lsrestclient-3.0.1 → lsrestclient-3.1.0}/lsrestclient/client.py +14 -2
- {lsrestclient-3.0.1 → lsrestclient-3.1.0}/lsrestclient/response.py +3 -2
- {lsrestclient-3.0.1 → lsrestclient-3.1.0}/pyproject.toml +1 -1
- {lsrestclient-3.0.1 → lsrestclient-3.1.0}/README.md +0 -0
- {lsrestclient-3.0.1 → lsrestclient-3.1.0}/lsrestclient/__init__.py +0 -0
- {lsrestclient-3.0.1 → lsrestclient-3.1.0}/lsrestclient/auth.py +0 -0
- {lsrestclient-3.0.1 → lsrestclient-3.1.0}/lsrestclient/contexts/__init__.py +0 -0
- {lsrestclient-3.0.1 → lsrestclient-3.1.0}/lsrestclient/contexts/bearer_token.py +0 -0
- {lsrestclient-3.0.1 → lsrestclient-3.1.0}/lsrestclient/exceptions.py +0 -0
- {lsrestclient-3.0.1 → lsrestclient-3.1.0}/lsrestclient/fixtures.py +0 -0
- {lsrestclient-3.0.1 → lsrestclient-3.1.0}/lsrestclient/mock.py +0 -0
@@ -63,12 +63,21 @@ class LsRestClient(Session):
|
|
63
63
|
self,
|
64
64
|
base_url: str = None,
|
65
65
|
name: str = "default",
|
66
|
+
headers: dict = None,
|
67
|
+
ignore_bearer_token: bool = False,
|
66
68
|
) -> None:
|
67
69
|
"""Class representing a REST client for JSON API."""
|
68
70
|
|
69
71
|
self._mocks = {}
|
70
72
|
self.base_url = base_url
|
73
|
+
self.ignore_bearer_token = ignore_bearer_token
|
71
74
|
self.base_headers = {"content-type": "application/json"}
|
75
|
+
|
76
|
+
with bearer_token_context() as bearer_token:
|
77
|
+
bearer_headers = {"Authorization": f"Bearer {bearer_token}"} if bearer_token is not None else {}
|
78
|
+
self.base_headers.update(bearer_headers)
|
79
|
+
if headers is not None:
|
80
|
+
self.base_headers.update(headers)
|
72
81
|
self.base_kwargs = {}
|
73
82
|
self.name = name
|
74
83
|
super().__init__()
|
@@ -162,9 +171,12 @@ class LsRestClient(Session):
|
|
162
171
|
Note: This method raises a `ConnectionError` if a connection error occurs during the request.
|
163
172
|
"""
|
164
173
|
# apply base_headers
|
165
|
-
|
166
174
|
with bearer_token_context() as bearer_token:
|
167
|
-
bearer_headers =
|
175
|
+
bearer_headers = (
|
176
|
+
{"Authorization": f"Bearer {bearer_token}"}
|
177
|
+
if bearer_token is not None and not self.ignore_bearer_token
|
178
|
+
else {}
|
179
|
+
)
|
168
180
|
|
169
181
|
headers = self.base_headers | bearer_headers | kwargs.get("headers", {})
|
170
182
|
|
@@ -6,6 +6,7 @@ import pydash
|
|
6
6
|
from requests import Response
|
7
7
|
from requests.structures import CaseInsensitiveDict
|
8
8
|
|
9
|
+
|
9
10
|
@dataclass
|
10
11
|
class LsRestClientResponse:
|
11
12
|
"""
|
@@ -19,7 +20,7 @@ class LsRestClientResponse:
|
|
19
20
|
_json: Optional[dict] = None
|
20
21
|
|
21
22
|
def json(self):
|
22
|
-
if self._json is None:
|
23
|
+
if self._json is None and self.content != "":
|
23
24
|
self._json = lsjsonclasses.LSoftJSONDecoder.loads(self.content)
|
24
25
|
return self._json
|
25
26
|
|
@@ -37,7 +38,7 @@ class LsRestClientResponse:
|
|
37
38
|
encoding = pydash.get(response, "encoding", None)
|
38
39
|
headers = pydash.get(response, "headers", None)
|
39
40
|
content_type = headers.get("Content-Type", None)
|
40
|
-
if content_type ==
|
41
|
+
if content_type == "application/pdf":
|
41
42
|
content = response.content
|
42
43
|
else:
|
43
44
|
content = response.content.decode("utf8" if encoding is None else encoding)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|