csu 2.4.0__tar.gz → 2.4.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {csu-2.4.0 → csu-2.4.1}/.bumpversion.cfg +1 -1
- {csu-2.4.0 → csu-2.4.1}/.cookiecutterrc +1 -1
- {csu-2.4.0 → csu-2.4.1}/PKG-INFO +3 -3
- {csu-2.4.0 → csu-2.4.1}/README.rst +2 -2
- {csu-2.4.0 → csu-2.4.1}/pyproject.toml +1 -1
- {csu-2.4.0 → csu-2.4.1}/src/csu/__init__.py +1 -1
- {csu-2.4.0 → csu-2.4.1}/src/csu/service.py +5 -3
- {csu-2.4.0 → csu-2.4.1}/src/csu.egg-info/PKG-INFO +3 -3
- {csu-2.4.0 → csu-2.4.1}/tests/test_service.py +14 -16
- {csu-2.4.0 → csu-2.4.1}/.coveragerc +0 -0
- {csu-2.4.0 → csu-2.4.1}/.editorconfig +0 -0
- {csu-2.4.0 → csu-2.4.1}/.github/workflows/github-actions.yml +0 -0
- {csu-2.4.0 → csu-2.4.1}/.pre-commit-config.yaml +0 -0
- {csu-2.4.0 → csu-2.4.1}/.tombi.toml +0 -0
- {csu-2.4.0 → csu-2.4.1}/AUTHORS.rst +0 -0
- {csu-2.4.0 → csu-2.4.1}/CHANGELOG.rst +0 -0
- {csu-2.4.0 → csu-2.4.1}/CONTRIBUTING.rst +0 -0
- {csu-2.4.0 → csu-2.4.1}/LICENSE +0 -0
- {csu-2.4.0 → csu-2.4.1}/MANIFEST.in +0 -0
- {csu-2.4.0 → csu-2.4.1}/ci/bootstrap.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/ci/requirements.txt +0 -0
- {csu-2.4.0 → csu-2.4.1}/ci/templates/.github/workflows/github-actions.yml +0 -0
- {csu-2.4.0 → csu-2.4.1}/pytest.ini +0 -0
- {csu-2.4.0 → csu-2.4.1}/setup.cfg +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/admin.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/conf.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/consts.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/drf/__init__.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/drf/auth.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/drf/fields.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/drf/forms.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/drf/perms.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/drf/phonenumber.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/drf/serializers.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/drf/test_auth.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/drf/test_fields.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/drf/test_forms.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/drf/test_phonenumber.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/drf/test_serializers.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/drf/views.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/enums.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/env.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/exceptions.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/export.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/fixups.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/forms/__init__.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/forms/crispy.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/forms/fields.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/gettext.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/gettext_lazy.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/locale/ro/LC_MESSAGES/django.mo +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/locale/ro/LC_MESSAGES/django.po +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/logging.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/management.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/models.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/query.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/routers.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/templates/api_exception.html +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/templates/forms/widgets/opaquewidget.html +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/test_consts.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/test_env.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/test_exceptions.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/test_logging.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/test_management.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/test_service.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/test_timezones.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/test_utils.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/test_xml.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/timezones.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/utils.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/views.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/worker/__init__.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/worker/admin.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/worker/asgi.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/worker/engine.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/worker/enums.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/worker/job.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/worker/models.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/worker/registry.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/wsgi.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu/xml.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu.egg-info/SOURCES.txt +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu.egg-info/dependency_links.txt +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu.egg-info/requires.txt +0 -0
- {csu-2.4.0 → csu-2.4.1}/src/csu.egg-info/top_level.txt +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/cassettes/test_service/test_custom_context.yaml +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/cassettes/test_service/test_custom_context_0_retries.yaml +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/cassettes/test_service/test_decoding.yaml +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/cassettes/test_service/test_error.yaml +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/cassettes/test_service/test_logging.yaml +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/cassettes/test_service/test_redirects.yaml +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/cassettes/test_service_auth/test_async.yaml +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/cassettes/test_service_auth/test_async_auth.yaml +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/cassettes/test_service_auth/test_sync.yaml +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/cassettes/test_service_auth/test_sync_auth.yaml +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/conftest.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/exampleworker.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/test_exampleworker.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/test_models.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/test_service_auth.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/test_views.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/test_worker.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/testproject/__init__.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/testproject/fixtures/testuser.json +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/testproject/models.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/testproject/settings.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/tests/testproject/urls.py +0 -0
- {csu-2.4.0 → csu-2.4.1}/tox.ini +0 -0
{csu-2.4.0 → csu-2.4.1}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: csu
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.1
|
|
4
4
|
Summary: Clean Slate Utils - bunch of utility code, mostly Django/DRF specific.
|
|
5
5
|
Author-email: Ionel Cristian Mărieș <contact@ionelmc.ro>
|
|
6
6
|
License-Expression: BSD-2-Clause
|
|
@@ -69,9 +69,9 @@ Overview
|
|
|
69
69
|
.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/csu.svg
|
|
70
70
|
:alt: Supported implementations
|
|
71
71
|
:target: https://pypi.org/project/csu
|
|
72
|
-
.. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-csu/v2.4.
|
|
72
|
+
.. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-csu/v2.4.1.svg
|
|
73
73
|
:alt: Commits since latest release
|
|
74
|
-
:target: https://github.com/ionelmc/python-csu/compare/v2.4.
|
|
74
|
+
:target: https://github.com/ionelmc/python-csu/compare/v2.4.1...main
|
|
75
75
|
.. |scrutinizer| image:: https://img.shields.io/scrutinizer/quality/g/ionelmc/python-csu/main.svg
|
|
76
76
|
:alt: Scrutinizer Status
|
|
77
77
|
:target: https://scrutinizer-ci.com/g/ionelmc/python-csu/
|
|
@@ -34,9 +34,9 @@ Overview
|
|
|
34
34
|
.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/csu.svg
|
|
35
35
|
:alt: Supported implementations
|
|
36
36
|
:target: https://pypi.org/project/csu
|
|
37
|
-
.. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-csu/v2.4.
|
|
37
|
+
.. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-csu/v2.4.1.svg
|
|
38
38
|
:alt: Commits since latest release
|
|
39
|
-
:target: https://github.com/ionelmc/python-csu/compare/v2.4.
|
|
39
|
+
:target: https://github.com/ionelmc/python-csu/compare/v2.4.1...main
|
|
40
40
|
.. |scrutinizer| image:: https://img.shields.io/scrutinizer/quality/g/ionelmc/python-csu/main.svg
|
|
41
41
|
:alt: Scrutinizer Status
|
|
42
42
|
:target: https://scrutinizer-ci.com/g/ionelmc/python-csu/
|
|
@@ -16,9 +16,9 @@ from niquests import Response
|
|
|
16
16
|
from niquests import Session
|
|
17
17
|
from niquests.auth import AsyncAuthBase
|
|
18
18
|
from niquests.auth import AuthBase
|
|
19
|
+
from niquests.exceptions import ConnectionError
|
|
19
20
|
from niquests.typing import TLSClientCertType
|
|
20
21
|
from niquests.typing import TLSVerifyType
|
|
21
|
-
from urllib3_future.exceptions import RequestError
|
|
22
22
|
|
|
23
23
|
from .conf import SERVICE_REQUEST_CONTENT_LOG_LIMIT
|
|
24
24
|
from .conf import SERVICE_REQUEST_SHOW_HEADERS
|
|
@@ -265,6 +265,7 @@ class HTTPServiceContext[RTYPE = HTTPServiceResponse]:
|
|
|
265
265
|
expect_json: bool = True,
|
|
266
266
|
follow_redirects: bool = False,
|
|
267
267
|
retry_statuses: Iterable[int] = (500, 502, 503, 504),
|
|
268
|
+
retry_exceptions: Iterable[type[Exception]] = (ConnectionError, RetryableError),
|
|
268
269
|
retry: bool = True,
|
|
269
270
|
proxy: str | None = None,
|
|
270
271
|
stream: bool | None = None,
|
|
@@ -300,7 +301,7 @@ class HTTPServiceContext[RTYPE = HTTPServiceResponse]:
|
|
|
300
301
|
elif response.status_code not in accept_statuses:
|
|
301
302
|
raise UnexpectedStatusError(response, accept_statuses, event_id=self.event_id)
|
|
302
303
|
return self.handle_process_response(response, expect_json=expect_json)
|
|
303
|
-
except
|
|
304
|
+
except retry_exceptions as exc:
|
|
304
305
|
retry_failures.append(exc)
|
|
305
306
|
self.handle_retriable_failure(method, prepared_request.url, exc, retries_left, retry_budget)
|
|
306
307
|
except (InternalServiceError, OpenServiceError) as exc:
|
|
@@ -364,6 +365,7 @@ class AsyncHTTPServiceContext[RTYPE = HTTPServiceResponse](HTTPServiceContext[RT
|
|
|
364
365
|
expect_json: bool = True,
|
|
365
366
|
follow_redirects: bool = False,
|
|
366
367
|
retry_statuses: Iterable[int] = (500, 502, 503, 504),
|
|
368
|
+
retry_exceptions: Iterable[type[Exception]] = (ConnectionError, RetryableError),
|
|
367
369
|
retry: bool = True,
|
|
368
370
|
proxy: str | None = None,
|
|
369
371
|
stream: bool | None = None,
|
|
@@ -405,7 +407,7 @@ class AsyncHTTPServiceContext[RTYPE = HTTPServiceResponse](HTTPServiceContext[RT
|
|
|
405
407
|
elif response.status_code not in accept_statuses:
|
|
406
408
|
raise UnexpectedStatusError(response, accept_statuses, event_id=self.event_id)
|
|
407
409
|
return await self.handle_process_response(response, expect_json=expect_json)
|
|
408
|
-
except
|
|
410
|
+
except retry_exceptions as exc:
|
|
409
411
|
retry_failures.append(exc)
|
|
410
412
|
self.handle_retriable_failure(method, prepared_request.url, exc, retries_left, retry_budget)
|
|
411
413
|
except (InternalServiceError, OpenServiceError) as exc:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: csu
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.1
|
|
4
4
|
Summary: Clean Slate Utils - bunch of utility code, mostly Django/DRF specific.
|
|
5
5
|
Author-email: Ionel Cristian Mărieș <contact@ionelmc.ro>
|
|
6
6
|
License-Expression: BSD-2-Clause
|
|
@@ -69,9 +69,9 @@ Overview
|
|
|
69
69
|
.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/csu.svg
|
|
70
70
|
:alt: Supported implementations
|
|
71
71
|
:target: https://pypi.org/project/csu
|
|
72
|
-
.. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-csu/v2.4.
|
|
72
|
+
.. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-csu/v2.4.1.svg
|
|
73
73
|
:alt: Commits since latest release
|
|
74
|
-
:target: https://github.com/ionelmc/python-csu/compare/v2.4.
|
|
74
|
+
:target: https://github.com/ionelmc/python-csu/compare/v2.4.1...main
|
|
75
75
|
.. |scrutinizer| image:: https://img.shields.io/scrutinizer/quality/g/ionelmc/python-csu/main.svg
|
|
76
76
|
:alt: Scrutinizer Status
|
|
77
77
|
:target: https://scrutinizer-ci.com/g/ionelmc/python-csu/
|
|
@@ -154,7 +154,6 @@ def test_error(fake_accident_id, caplogs, httpbin):
|
|
|
154
154
|
bingo.error()
|
|
155
155
|
assert exc.value.message == "It's ok."
|
|
156
156
|
api_exc = exc.value.as_api_service_error()
|
|
157
|
-
exc.value.details[0]
|
|
158
157
|
assert api_exc.status_code == 200
|
|
159
158
|
assert api_exc.detail == {"accident_id": "241212:01:000000.00", "code": "ok", "detail": "It's ok."}
|
|
160
159
|
|
|
@@ -270,13 +269,13 @@ niquests.exceptions.JSONDecodeError: Expecting value: line 2 column 5 (char 5)
|
|
|
270
269
|
The above exception was the direct cause of the following exception:
|
|
271
270
|
|
|
272
271
|
Traceback (most recent call last):
|
|
273
|
-
File "[&TEST_PATH]", line
|
|
272
|
+
File "[&TEST_PATH]", line 202, in test_decoding
|
|
274
273
|
bingo.json()
|
|
275
274
|
~~~~~~~~~~^^
|
|
276
275
|
File "[&TEST_PATH]", line 78, in json
|
|
277
276
|
return ctx.request("GET", "status/418", accept_statuses=[418]).json
|
|
278
277
|
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
279
|
-
File "[&SERVICE_PATH]", line
|
|
278
|
+
File "[&SERVICE_PATH]", line 303, in request
|
|
280
279
|
return self.handle_process_response(response, expect_json=expect_json)
|
|
281
280
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
282
281
|
File "[&SERVICE_PATH]", line 223, in handle_process_response
|
|
@@ -296,7 +295,6 @@ def test_logging(fake_accident_id, caplogs, httpbin):
|
|
|
296
295
|
bingo = BingoService(httpbin.url)
|
|
297
296
|
with pytest.raises(OkError) as exc:
|
|
298
297
|
bingo.error()
|
|
299
|
-
exc.value.details[0]
|
|
300
298
|
exception_handler(exc.value, {})
|
|
301
299
|
assert len(fake_accident_id.calls) == 1
|
|
302
300
|
assert fake_accident_id.calls[0].startswith("service.py:")
|
|
@@ -342,7 +340,7 @@ Traceback (most recent call last):
|
|
|
342
340
|
File "[&TEST_PATH]", line 47, in error
|
|
343
341
|
return ctx.request("GET", "status/599", expect_json=False)
|
|
344
342
|
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
345
|
-
File "[&SERVICE_PATH]", line
|
|
343
|
+
File "[&SERVICE_PATH]", line 302, in request
|
|
346
344
|
raise UnexpectedStatusError(response, accept_statuses, event_id=self.event_id)
|
|
347
345
|
csu.exceptions.UnexpectedStatusError: UnexpectedStatusError(<Response Dummy [599]>, accept_statuses=[200])
|
|
348
346
|
(599, b'')
|
|
@@ -350,7 +348,7 @@ csu.exceptions.UnexpectedStatusError: UnexpectedStatusError(<Response Dummy [599
|
|
|
350
348
|
The above exception was the direct cause of the following exception:
|
|
351
349
|
|
|
352
350
|
Traceback (most recent call last):
|
|
353
|
-
File "[&TEST_PATH]", line
|
|
351
|
+
File "[&TEST_PATH]", line 297, in test_logging
|
|
354
352
|
bingo.error()
|
|
355
353
|
~~~~~~~~~~~^^
|
|
356
354
|
File "[&TEST_PATH]", line 50, in error
|
|
@@ -542,7 +540,7 @@ INFO | [01:000000.00] POST [&HTTPBIN]/anything?foo=bar&accept_statuses=%7B999
|
|
|
542
540
|
"""\
|
|
543
541
|
ERROR | [01:000000.00] POST [&HTTPBIN]/anything?foo=bar&accept_statuses=%7B999%7D&expect_json=true&follow_redirects=false&retries_left=3&retry_count=0&retry_statuses=%7B200%7D !> RetryableStatusError('200 not in [999] but in [200]', 200, b'{"args":{"accept_statuses":"{999}","expect_json":"true","follow_redirects":"false","foo":"bar","retries_left":"3","retry_count":"0","retry_statuses":"{200}"},"data":"config={\\'custom\\': \\'config\\'}","files":{},"form":{},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate, br","Connection":"keep-alive","Content-Length":"27","Host":"127.0.0.1:12345","User-Agent":"python-httpx/0.X.X"},"json":null,"method":"POST","origin":"127.0.0.1","url":"http://127.0.0.1:12345/anything?foo=bar&accept_statuses={999}&expect_json=true&follow_redirects=false&retries_left=3&retry_count=0&retry_statuses={200}"}\\n', event_id=241212:01:000000.00) (will retry 3 more times)
|
|
544
542
|
Traceback (most recent call last):
|
|
545
|
-
File "[&SERVICE_PATH]", line
|
|
543
|
+
File "[&SERVICE_PATH]", line 300, in request
|
|
546
544
|
raise RetryableStatusError(response, accept_statuses, retry_statuses, event_id=self.event_id)
|
|
547
545
|
csu.exceptions.RetryableStatusError: RetryableStatusError(<Response Dummy [200]>, accept_statuses=[999], retry_statuses=[200])
|
|
548
546
|
(200, b'{"args":{"accept_statuses":"{999}","expect_json":"true","follow_redirects":"false","foo":"bar","retries_left":"3","retry_count":"0","retry_statuses":"{200}"},"data":"config={\\'custom\\': \\'config\\'}","files":{},"form":{},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate, br","Connection":"keep-alive","Content-Length":"27","Host":"127.0.0.1:12345","User-Agent":"python-httpx/0.X.X"},"json":null,"method":"POST","origin":"127.0.0.1","url":"http://127.0.0.1:12345/anything?foo=bar&accept_statuses={999}&expect_json=true&follow_redirects=false&retries_left=3&retry_count=0&retry_statuses={200}"}\\n')
|
|
@@ -576,7 +574,7 @@ INFO | [01:000000.00] POST [&HTTPBIN]/anything?foo=bar&accept_statuses=%7B999
|
|
|
576
574
|
"""\
|
|
577
575
|
ERROR | [01:000000.00] POST [&HTTPBIN]/anything?foo=bar&accept_statuses=%7B999%7D&expect_json=true&follow_redirects=false&retries_left=2&retry_count=1&retry_statuses=%7B200%7D !> RetryableStatusError('200 not in [999] but in [200]', 200, b'{"args":{"accept_statuses":"{999}","expect_json":"true","follow_redirects":"false","foo":"bar","retries_left":"2","retry_count":"1","retry_statuses":"{200}"},"data":"config={\\'custom\\': \\'config\\'}","files":{},"form":{},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate, br","Connection":"keep-alive","Content-Length":"27","Host":"127.0.0.1:12345","User-Agent":"python-httpx/0.X.X"},"json":null,"method":"POST","origin":"127.0.0.1","url":"http://127.0.0.1:12345/anything?foo=bar&accept_statuses={999}&expect_json=true&follow_redirects=false&retries_left=2&retry_count=1&retry_statuses={200}"}\\n', event_id=241212:01:000000.00) (will retry 2 more times)
|
|
578
576
|
Traceback (most recent call last):
|
|
579
|
-
File "[&SERVICE_PATH]", line
|
|
577
|
+
File "[&SERVICE_PATH]", line 300, in request
|
|
580
578
|
raise RetryableStatusError(response, accept_statuses, retry_statuses, event_id=self.event_id)
|
|
581
579
|
csu.exceptions.RetryableStatusError: RetryableStatusError(<Response Dummy [200]>, accept_statuses=[999], retry_statuses=[200])
|
|
582
580
|
(200, b'{"args":{"accept_statuses":"{999}","expect_json":"true","follow_redirects":"false","foo":"bar","retries_left":"2","retry_count":"1","retry_statuses":"{200}"},"data":"config={\\'custom\\': \\'config\\'}","files":{},"form":{},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate, br","Connection":"keep-alive","Content-Length":"27","Host":"127.0.0.1:12345","User-Agent":"python-httpx/0.X.X"},"json":null,"method":"POST","origin":"127.0.0.1","url":"http://127.0.0.1:12345/anything?foo=bar&accept_statuses={999}&expect_json=true&follow_redirects=false&retries_left=2&retry_count=1&retry_statuses={200}"}\\n')
|
|
@@ -610,7 +608,7 @@ INFO | [01:000000.00] POST [&HTTPBIN]/anything?foo=bar&accept_statuses=%7B999
|
|
|
610
608
|
"""\
|
|
611
609
|
ERROR | [01:000000.00] POST [&HTTPBIN]/anything?foo=bar&accept_statuses=%7B999%7D&expect_json=true&follow_redirects=false&retries_left=1&retry_count=2&retry_statuses=%7B200%7D !> RetryableStatusError('200 not in [999] but in [200]', 200, b'{"args":{"accept_statuses":"{999}","expect_json":"true","follow_redirects":"false","foo":"bar","retries_left":"1","retry_count":"2","retry_statuses":"{200}"},"data":"config={\\'custom\\': \\'config\\'}","files":{},"form":{},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate, br","Connection":"keep-alive","Content-Length":"27","Host":"127.0.0.1:12345","User-Agent":"python-httpx/0.X.X"},"json":null,"method":"POST","origin":"127.0.0.1","url":"http://127.0.0.1:12345/anything?foo=bar&accept_statuses={999}&expect_json=true&follow_redirects=false&retries_left=1&retry_count=2&retry_statuses={200}"}\\n', event_id=241212:01:000000.00) (will retry 1 more times)
|
|
612
610
|
Traceback (most recent call last):
|
|
613
|
-
File "[&SERVICE_PATH]", line
|
|
611
|
+
File "[&SERVICE_PATH]", line 300, in request
|
|
614
612
|
raise RetryableStatusError(response, accept_statuses, retry_statuses, event_id=self.event_id)
|
|
615
613
|
csu.exceptions.RetryableStatusError: RetryableStatusError(<Response Dummy [200]>, accept_statuses=[999], retry_statuses=[200])
|
|
616
614
|
(200, b'{"args":{"accept_statuses":"{999}","expect_json":"true","follow_redirects":"false","foo":"bar","retries_left":"1","retry_count":"2","retry_statuses":"{200}"},"data":"config={\\'custom\\': \\'config\\'}","files":{},"form":{},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate, br","Connection":"keep-alive","Content-Length":"27","Host":"127.0.0.1:12345","User-Agent":"python-httpx/0.X.X"},"json":null,"method":"POST","origin":"127.0.0.1","url":"http://127.0.0.1:12345/anything?foo=bar&accept_statuses={999}&expect_json=true&follow_redirects=false&retries_left=1&retry_count=2&retry_statuses={200}"}\\n')
|
|
@@ -649,40 +647,40 @@ ERROR | (renderer: NoneType)
|
|
|
649
647
|
{}
|
|
650
648
|
---------------------------------------------------------------- traceback -----------------------------------------------------------------
|
|
651
649
|
+ Exception Group Traceback (most recent call last):
|
|
652
|
-
| File "[&TEST_PATH]", line
|
|
650
|
+
| File "[&TEST_PATH]", line 435, in test_custom_context
|
|
653
651
|
| custom.run()
|
|
654
652
|
| ~~~~~~~~~~^^
|
|
655
|
-
| File "[&TEST_PATH]", line
|
|
653
|
+
| File "[&TEST_PATH]", line 418, in run
|
|
656
654
|
| resp = ctx.request(
|
|
657
655
|
| "POST",
|
|
658
656
|
| ...<6 lines>...
|
|
659
657
|
| accept_statuses=[999],
|
|
660
658
|
| )
|
|
661
|
-
| File "[&SERVICE_PATH]", line
|
|
659
|
+
| File "[&SERVICE_PATH]", line 314, in request
|
|
662
660
|
| raise ExhaustedRetriesError(retry_budget, retry_failures, event_id=self.event_id)
|
|
663
661
|
| csu.exceptions.ExhaustedRetriesError: ExhaustedRetriesError(3)
|
|
664
662
|
| ([RetryableStatusError('200 not in [999] but in [200]', 200, b'{"args":{"accept_statuses":"{999}","expect_json":"true","follow_redirects":"false","foo":"bar","retries_left":"3","retry_count":"0","retry_statuses":"{200}"},"data":"config={\\'custom\\': \\'config\\'}","files":{},"form":{},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate, br","Connection":"keep-alive","Content-Length":"27","Host":"127.0.0.1:12345","User-Agent":"python-httpx/0.X.X"},"json":null,"method":"POST","origin":"127.0.0.1","url":"http://127.0.0.1:12345/anything?foo=bar&accept_statuses={999}&expect_json=true&follow_redirects=false&retries_left=3&retry_count=0&retry_statuses={200}"}\\n', event_id=241212:01:000000.00), RetryableStatusError('200 not in [999] but in [200]', 200, b'{"args":{"accept_statuses":"{999}","expect_json":"true","follow_redirects":"false","foo":"bar","retries_left":"2","retry_count":"1","retry_statuses":"{200}"},"data":"config={\\'custom\\': \\'config\\'}","files":{},"form":{},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate, br","Connection":"keep-alive","Content-Length":"27","Host":"127.0.0.1:12345","User-Agent":"python-httpx/0.X.X"},"json":null,"method":"POST","origin":"127.0.0.1","url":"http://127.0.0.1:12345/anything?foo=bar&accept_statuses={999}&expect_json=true&follow_redirects=false&retries_left=2&retry_count=1&retry_statuses={200}"}\\n', event_id=241212:01:000000.00), RetryableStatusError('200 not in [999] but in [200]', 200, b'{"args":{"accept_statuses":"{999}","expect_json":"true","follow_redirects":"false","foo":"bar","retries_left":"1","retry_count":"2","retry_statuses":"{200}"},"data":"config={\\'custom\\': \\'config\\'}","files":{},"form":{},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate, br","Connection":"keep-alive","Content-Length":"27","Host":"127.0.0.1:12345","User-Agent":"python-httpx/0.X.X"},"json":null,"method":"POST","origin":"127.0.0.1","url":"http://127.0.0.1:12345/anything?foo=bar&accept_statuses={999}&expect_json=true&follow_redirects=false&retries_left=1&retry_count=2&retry_statuses={200}"}\\n', event_id=241212:01:000000.00), RetryableStatusError('200 not in [999] but in [200]', 200, b'{"args":{"accept_statuses":"{999}","expect_json":"true","follow_redirects":"false","foo":"bar","retries_left":"0","retry_count":"3","retry_statuses":"{200}"},"data":"config={\\'custom\\': \\'config\\'}","files":{},"form":{},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate, br","Connection":"keep-alive","Content-Length":"27","Host":"127.0.0.1:12345","User-Agent":"python-httpx/0.X.X"},"json":null,"method":"POST","origin":"127.0.0.1","url":"http://127.0.0.1:12345/anything?foo=bar&accept_statuses={999}&expect_json=true&follow_redirects=false&retries_left=0&retry_count=3&retry_statuses={200}"}\\n', event_id=241212:01:000000.00)],)
|
|
665
663
|
+-+---------------- 1 ----------------
|
|
666
664
|
| Traceback (most recent call last):
|
|
667
|
-
| File "[&SERVICE_PATH]", line
|
|
665
|
+
| File "[&SERVICE_PATH]", line 300, in request
|
|
668
666
|
| raise RetryableStatusError(response, accept_statuses, retry_statuses, event_id=self.event_id)
|
|
669
667
|
| csu.exceptions.RetryableStatusError: RetryableStatusError(<Response Dummy [200]>, accept_statuses=[999], retry_statuses=[200])
|
|
670
668
|
| (200, b'{"args":{"accept_statuses":"{999}","expect_json":"true","follow_redirects":"false","foo":"bar","retries_left":"3","retry_count":"0","retry_statuses":"{200}"},"data":"config={\\'custom\\': \\'config\\'}","files":{},"form":{},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate, br","Connection":"keep-alive","Content-Length":"27","Host":"127.0.0.1:12345","User-Agent":"python-httpx/0.X.X"},"json":null,"method":"POST","origin":"127.0.0.1","url":"http://127.0.0.1:12345/anything?foo=bar&accept_statuses={999}&expect_json=true&follow_redirects=false&retries_left=3&retry_count=0&retry_statuses={200}"}\\n')
|
|
671
669
|
+---------------- 2 ----------------
|
|
672
670
|
| Traceback (most recent call last):
|
|
673
|
-
| File "[&SERVICE_PATH]", line
|
|
671
|
+
| File "[&SERVICE_PATH]", line 300, in request
|
|
674
672
|
| raise RetryableStatusError(response, accept_statuses, retry_statuses, event_id=self.event_id)
|
|
675
673
|
| csu.exceptions.RetryableStatusError: RetryableStatusError(<Response Dummy [200]>, accept_statuses=[999], retry_statuses=[200])
|
|
676
674
|
| (200, b'{"args":{"accept_statuses":"{999}","expect_json":"true","follow_redirects":"false","foo":"bar","retries_left":"2","retry_count":"1","retry_statuses":"{200}"},"data":"config={\\'custom\\': \\'config\\'}","files":{},"form":{},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate, br","Connection":"keep-alive","Content-Length":"27","Host":"127.0.0.1:12345","User-Agent":"python-httpx/0.X.X"},"json":null,"method":"POST","origin":"127.0.0.1","url":"http://127.0.0.1:12345/anything?foo=bar&accept_statuses={999}&expect_json=true&follow_redirects=false&retries_left=2&retry_count=1&retry_statuses={200}"}\\n')
|
|
677
675
|
+---------------- 3 ----------------
|
|
678
676
|
| Traceback (most recent call last):
|
|
679
|
-
| File "[&SERVICE_PATH]", line
|
|
677
|
+
| File "[&SERVICE_PATH]", line 300, in request
|
|
680
678
|
| raise RetryableStatusError(response, accept_statuses, retry_statuses, event_id=self.event_id)
|
|
681
679
|
| csu.exceptions.RetryableStatusError: RetryableStatusError(<Response Dummy [200]>, accept_statuses=[999], retry_statuses=[200])
|
|
682
680
|
| (200, b'{"args":{"accept_statuses":"{999}","expect_json":"true","follow_redirects":"false","foo":"bar","retries_left":"1","retry_count":"2","retry_statuses":"{200}"},"data":"config={\\'custom\\': \\'config\\'}","files":{},"form":{},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate, br","Connection":"keep-alive","Content-Length":"27","Host":"127.0.0.1:12345","User-Agent":"python-httpx/0.X.X"},"json":null,"method":"POST","origin":"127.0.0.1","url":"http://127.0.0.1:12345/anything?foo=bar&accept_statuses={999}&expect_json=true&follow_redirects=false&retries_left=1&retry_count=2&retry_statuses={200}"}\\n')
|
|
683
681
|
+---------------- 4 ----------------
|
|
684
682
|
| Traceback (most recent call last):
|
|
685
|
-
| File "[&SERVICE_PATH]", line
|
|
683
|
+
| File "[&SERVICE_PATH]", line 300, in request
|
|
686
684
|
| raise RetryableStatusError(response, accept_statuses, retry_statuses, event_id=self.event_id)
|
|
687
685
|
| csu.exceptions.RetryableStatusError: RetryableStatusError(<Response Dummy [200]>, accept_statuses=[999], retry_statuses=[200])
|
|
688
686
|
| (200, b'{"args":{"accept_statuses":"{999}","expect_json":"true","follow_redirects":"false","foo":"bar","retries_left":"0","retry_count":"3","retry_statuses":"{200}"},"data":"config={\\'custom\\': \\'config\\'}","files":{},"form":{},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate, br","Connection":"keep-alive","Content-Length":"27","Host":"127.0.0.1:12345","User-Agent":"python-httpx/0.X.X"},"json":null,"method":"POST","origin":"127.0.0.1","url":"http://127.0.0.1:12345/anything?foo=bar&accept_statuses={999}&expect_json=true&follow_redirects=false&retries_left=0&retry_count=3&retry_statuses={200}"}\\n')
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csu-2.4.0 → csu-2.4.1}/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csu-2.4.0 → csu-2.4.1}/tox.ini
RENAMED
|
File without changes
|