Skip to content

Conversation

@pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Sep 2, 2024

This PR updates pytest-django from 3.9.0 to 4.9.0.

Changelog

4.9.0

-------------------

Compatibility
^^^^^^^^^^^^^

* Added official support for Django 5.1.
* Dropped support for Django 3.2 and 4.1.

Improvements
^^^^^^^^^^^^

* Respect the ``string_if_invalid`` template setting when
``--fail-on-template-vars`` is active and
:func:`pytest.mark.ignore_template_errors <pytest.mark.ignore_template_errors>`
is used.

* Avoid running database migrations for :class:`~django.test.SimpleTestCase`
unittest tests.

* Added docstrings to public fixtures.

Bugfixes
^^^^^^^^

* Fix type hints for ``pytest_django.asserts.assertFormError()`` and
``pytest_django.asserts.assertForSetError()``.

4.8.0

-------------------

Improvements
^^^^^^^^^^^^

* Added ``pytest_django.asserts.assertMessages()`` to mimic the behaviour of the
:meth:`~django.contrib.messages.test.MessagesTestMixin.assertMessages` method
for Django versions >= 5.0.

Bugfixes
^^^^^^^^

* Fix `--help`/`--version` crash in a partially configured app.

4.7.0

-------------------

Compatibility
^^^^^^^^^^^^^

* Official Django 5.0 support.

* Official Python 3.12 support.

Improvements
^^^^^^^^^^^^

* The Django test tags from the previous release now works on any
:class:`~django.test.SimpleTestCase` (i.e. any Django test framework test
class), not just :class:`~django.test.TransactionTestCase` classes.

* Some improvements for those of us who like to type their tests:

- Add ``pytest_django.DjangoAssertNumQueries`` for typing
 :fixture:`django_assert_num_queries` and
 :fixture:`django_assert_max_num_queries`.

- Add ``pytest_django.DjangoCaptureOnCommitCallbacks`` for typing
 :fixture:`django_capture_on_commit_callbacks`.

- Add ``pytest_django.DjangoDbBlocker`` for typing
 :fixture:`django_db_blocker`.

4.6.0

-------------------

Compatibility
^^^^^^^^^^^^^

* Official Django 4.1 & 4.2 support.

* Official Python 3.11 support.

* Drop support for Python version 3.5, 3.6 & 3.7.

* Drop official support for Django 4.0 and 2.2

* Drop support for pytest < 7.

Improvements
^^^^^^^^^^^^

* Add support for setting :py:attr:`available_apps
<django.test.TransactionTestCase.available_apps>` in the :func:`django_db
<pytest.mark.django_db>` marker.

* Convert Django :ref:`test tags <django:topics-tagging-tests>` to :ref:`Pytest
markers <pytest:mark examples>`.

* Show Django's version in the pytest ``django`` report header.

* Add precise ``pytest_django.asserts.assertQuerySetEqual`` typing.

Bugfixes
^^^^^^^^

* Fix bug where the effect of :func:`pytest.mark.ignore_template_errors
<pytest.mark.ignore_template_errors>` was not reset when using
``--fail-on-template-vars``.

4.5.2

-------------------

Bugfixes
^^^^^^^^

* Fix regression in v4.5.0 - ``pytest.mark.django_db(reset_sequence=True)`` now
implies ``transaction=True`` again.

4.5.1

-------------------

Bugfixes
^^^^^^^^

* Fix regression in v4.5.0 - database tests inside (non-unittest) classes were
not ordered correctly to run before non-database tests, same for transactional
tests before non-transactional tests.

4.5.0

-------------------

Improvements
^^^^^^^^^^^^

* Add support for :ref:`rollback emulation/serialized rollback
<test-case-serialized-rollback>`. The :func:`pytest.mark.django_db` marker
has a new ``serialized_rollback`` option, and a
:fixture:`django_db_serialized_rollback` fixture is added.

* Official Python 3.10 support.

* Official Django 4.0 support (tested against 4.0rc1 at the time of release).

* Drop official Django 3.0 support. Django 2.2 is still supported, and 3.0
will likely keep working until 2.2 is dropped, but it's not tested.

* Added pyproject.toml file.

* Skip Django's `setUpTestData` mechanism in pytest-django tests. It is not
used for those, and interferes with some planned features. Note that this
does not affect ``setUpTestData`` in unittest tests (test classes which
inherit from Django's `TestCase`).

Bugfixes
^^^^^^^^

* Fix :fixture:`live_server` when using an in-memory SQLite database.

* Fix typing of ``assertTemplateUsed`` and ``assertTemplateNotUsed``.

4.4.0

-------------------

Improvements
^^^^^^^^^^^^

* Add a fixture :fixture:`django_capture_on_commit_callbacks` to capture
:func:`transaction.on_commit() <django.db.transaction.on_commit>` callbacks
in tests.

4.3.0

-------------------

Improvements
^^^^^^^^^^^^

* Add experimental :ref:`multiple databases <multi-db>` (multi db) support.

* Add type annotations. If you previously excluded ``pytest_django`` from
your type-checker, you can remove the exclusion.

* Documentation improvements.

4.2.0

-------------------

Improvements
^^^^^^^^^^^^

* Official Django 3.2 support.

* Documentation improvements.

Bugfixes
^^^^^^^^

* Disable atomic durability check on non-transactional tests (910).

4.1.0

-------------------

Improvements
^^^^^^^^^^^^

* Add the :fixture:`async_client` and :fixture:`async_rf` fixtures (864).

* Add :ref:`django_debug_mode <usage>` to configure how ``DEBUG`` is set in tests (228).

* Documentation improvements.

Bugfixes
^^^^^^^^

* Make :fixture:`admin_user` work for custom user models without an ``email`` field.

4.0.0

-------------------

Compatibility
^^^^^^^^^^^^^

This release contains no breaking changes, except dropping compatibility
with some older/unsupported versions.

* Drop support for Python versions before 3.5 (868).

Previously 2.7 and 3.4 were supported. Running ``pip install pytest-django``
on Python 2.7 or 3.4 would continue to install the compatible 3.x series.

* Drop support for Django versions before 2.2 (868).

Previously Django>=1.8 was supported.

* Drop support for pytest versions before 5.4 (868).

Previously pytest>=3.6 was supported.

Improvements
^^^^^^^^^^^^

* Officially support Python 3.9.

* Add ``pytest_django.__version__`` (880).

* Minor documentation improvements (882).

Bugfixes
^^^^^^^^

* Make the ``admin_user`` and ``admin_client`` fixtures compatible with custom
user models which don't have a ``username`` field (457).

* Change the ``admin_user`` fixture to use ``get_by_natural_key()`` to get the
user instead of directly using ``USERNAME_FIELD``, in case it is overridden,
and to match Django (879).

Misc
^^^^

* Fix pytest-django's own tests failing due to some deprecation warnings
(875).

3.10.0

--------------------

Improvements
^^^^^^^^^^^^

* Officially support Django 3.1

* Preliminary support for upcoming Django 3.2

* Support for pytest-xdist 2.0


Misc
^^^^

* Fix running pytest-django's own tests against pytest 6.0 (855)
Links

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants