Skip to content

Commit 648e1b6

Browse files
committed
tests: avoid if *all* connections support transactions
Only interested in one connection. This causes some mess with mutli-db support in MySQL, which ends up querying all connections.
1 parent 1ba6b3d commit 648e1b6

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

tests/test_database.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import pytest
22
from django.db import connection, transaction
3-
from django.test.testcases import connections_support_transactions
43

54
from pytest_django.lazy_django import get_django_version
65
from pytest_django_test.app.models import Item
@@ -66,21 +65,21 @@ def test_clean_db(self, all_dbs: None) -> None:
6665
assert Item.objects.count() == 0
6766

6867
def test_transactions_disabled(self, db: None) -> None:
69-
if not connections_support_transactions():
68+
if not connection.features.supports_transactions:
7069
pytest.skip("transactions required for this test")
7170

7271
assert connection.in_atomic_block
7372

7473
def test_transactions_enabled(self, transactional_db: None) -> None:
75-
if not connections_support_transactions():
74+
if not connection.features.supports_transactions:
7675
pytest.skip("transactions required for this test")
7776

7877
assert not connection.in_atomic_block
7978

8079
def test_transactions_enabled_via_reset_seq(
8180
self, django_db_reset_sequences: None,
8281
) -> None:
83-
if not connections_support_transactions():
82+
if not connection.features.supports_transactions:
8483
pytest.skip("transactions required for this test")
8584

8685
assert not connection.in_atomic_block
@@ -120,7 +119,7 @@ def mydb(self, all_dbs: None) -> None:
120119
Item.objects.create(name="spam")
121120

122121
def test_mydb(self, mydb: None) -> None:
123-
if not connections_support_transactions():
122+
if not connection.features.supports_transactions:
124123
pytest.skip("transactions required for this test")
125124

126125
# Check the fixture had access to the db
@@ -196,21 +195,21 @@ def test_clean_db(self) -> None:
196195

197196
@pytest.mark.django_db
198197
def test_transactions_disabled(self) -> None:
199-
if not connections_support_transactions():
198+
if not connection.features.supports_transactions:
200199
pytest.skip("transactions required for this test")
201200

202201
assert connection.in_atomic_block
203202

204203
@pytest.mark.django_db(transaction=False)
205204
def test_transactions_disabled_explicit(self) -> None:
206-
if not connections_support_transactions():
205+
if not connection.features.supports_transactions:
207206
pytest.skip("transactions required for this test")
208207

209208
assert connection.in_atomic_block
210209

211210
@pytest.mark.django_db(transaction=True)
212211
def test_transactions_enabled(self) -> None:
213-
if not connections_support_transactions():
212+
if not connection.features.supports_transactions:
214213
pytest.skip("transactions required for this test")
215214

216215
assert not connection.in_atomic_block

tests/test_fixtures.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
from django.core import mail
1515
from django.db import connection, transaction
1616
from django.test.client import Client, RequestFactory
17-
from django.test.testcases import connections_support_transactions
1817
from django.utils.encoding import force_str
1918

2019
from pytest_django_test.app.models import Item
@@ -374,7 +373,7 @@ def test_settings_restored(self) -> None:
374373
assert settings.ALLOWED_HOSTS == ["testserver"]
375374

376375
def test_transactions(self, live_server) -> None:
377-
if not connections_support_transactions():
376+
if not connection.features.support_transactions:
378377
pytest.skip("transactions required for this test")
379378

380379
assert not connection.in_atomic_block

0 commit comments

Comments
 (0)