Skip to content

Commit cf3f0bb

Browse files
committed
fixtures: fixup a regression in previous release for TestCase multi-db support
Accidentally used the wrong variable. Fixes #1188.
1 parent 6d5c272 commit cf3f0bb

File tree

3 files changed

+32
-2
lines changed

3 files changed

+32
-2
lines changed

docs/changelog.rst

+8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
Changelog
22
=========
33

4+
v4.11.1 (TBD)
5+
-------------
6+
7+
Bugfixes
8+
^^^^^^^^
9+
10+
* Fixed a regression in v4.11.0 for Django ``TestCase`` tests using the ``databases`` class variable (`#1188 <https://github.com/pytest-dev/pytest-django/issues/1188>`__).
11+
412
v4.11.0 (2025-04-01)
513
--------------------
614

pytest_django/fixtures.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,8 @@ def _get_databases_for_test(test: pytest.Item) -> tuple[Iterable[str], bool]:
129129

130130
test_cls = getattr(test, "cls", None)
131131
if test_cls and issubclass(test_cls, TransactionTestCase):
132-
serialized_rollback = getattr(test, "serialized_rollback", False)
133-
databases = getattr(test, "databases", None)
132+
serialized_rollback = getattr(test_cls, "serialized_rollback", False)
133+
databases = getattr(test_cls, "databases", None)
134134
else:
135135
fixtures = getattr(test, "fixturenames", ())
136136
marker_db = test.get_closest_marker("django_db")

tests/test_database.py

+22
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,28 @@ def test_db_access_3(self):
432432
)
433433

434434

435+
def test_django_testcase_multi_db(django_pytester: DjangoPytester) -> None:
436+
"""Test that Django TestCase multi-db support works."""
437+
438+
django_pytester.create_test_module(
439+
"""
440+
import pytest
441+
from django.test import TestCase
442+
from .app.models import Item, SecondItem
443+
444+
class TestCase(TestCase):
445+
databases = ["default", "second"]
446+
447+
def test_db_access(self):
448+
Item.objects.count() == 0
449+
SecondItem.objects.count() == 0
450+
"""
451+
)
452+
453+
result = django_pytester.runpytest_subprocess("-v", "--reuse-db")
454+
result.assert_outcomes(passed=1)
455+
456+
435457
class Test_database_blocking:
436458
def test_db_access_in_conftest(self, django_pytester: DjangoPytester) -> None:
437459
"""Make sure database access in conftest module is prohibited."""

0 commit comments

Comments
 (0)