Skip to content

Commit 8e8dec1

Browse files
committed
Woohoo
1 parent 6504122 commit 8e8dec1

5 files changed

Lines changed: 26 additions & 10 deletions

File tree

pytest_django/asserts.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ def assertion_func(*args: Any, **kwargs: Any) -> Any:
5656

5757
if TYPE_CHECKING:
5858
from collections.abc import Collection, Iterator, Sequence
59-
from typing import ContextManager, overload
59+
from contextlib import AbstractContextManager
60+
from typing import overload
6061

6162
from django import forms
6263
from django.db.models import Model, QuerySet, RawQuerySet
@@ -215,7 +216,7 @@ def assertQuerySetEqual(
215216
@overload
216217
def assertNumQueries(
217218
num: int, func: None = None, *, using: str = ...
218-
) -> ContextManager[None]: ...
219+
) -> AbstractContextManager[None]: ...
219220

220221
@overload
221222
def assertNumQueries(

pytest_django/django_compat.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,23 @@
22
# this is the case before you call them.
33
from __future__ import annotations
44

5+
from typing import TYPE_CHECKING
6+
57
import pytest
68

79

10+
if TYPE_CHECKING:
11+
from typing import TypeAlias
12+
13+
from django.contrib.auth.models import AbstractBaseUser
14+
15+
_User: TypeAlias = AbstractBaseUser
16+
17+
_UserModel: TypeAlias = type[_User]
18+
19+
__all__ = ("_User", "_UserModel")
20+
21+
822
def is_django_unittest(request_or_item: pytest.FixtureRequest | pytest.Item) -> bool:
923
"""Returns whether the request or item is a Django test case."""
1024
from django.test import SimpleTestCase

pytest_django/fixtures.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import django.test
2323

2424
from . import DjangoDbBlocker
25+
from .django_compat import _User, _UserModel
2526

2627

2728
_DjangoDbDatabases = Optional[Union[Literal["__all__"], Iterable[str]]]
@@ -458,15 +459,15 @@ def async_client() -> django.test.AsyncClient:
458459

459460

460461
@pytest.fixture
461-
def django_user_model(db: None) -> type[django.contrib.auth.models.User]:
462+
def django_user_model(db: None) -> _UserModel:
462463
"""The class of Django's user model."""
463464
from django.contrib.auth import get_user_model
464465

465466
return get_user_model() # type: ignore[no-any-return]
466467

467468

468469
@pytest.fixture
469-
def django_username_field(django_user_model: type[django.contrib.auth.models.User]) -> str:
470+
def django_username_field(django_user_model: _UserModel) -> str:
470471
"""The fieldname for the username used with Django's user model."""
471472
field: str = django_user_model.USERNAME_FIELD
472473
return field
@@ -475,9 +476,9 @@ def django_username_field(django_user_model: type[django.contrib.auth.models.Use
475476
@pytest.fixture
476477
def admin_user(
477478
db: None,
478-
django_user_model: type[django.contrib.auth.models.User],
479+
django_user_model: _User,
479480
django_username_field: str,
480-
) -> django.contrib.auth.models.User:
481+
) -> _User:
481482
"""A Django admin user.
482483
483484
This uses an existing user with username "admin", or creates a new one with
@@ -506,7 +507,7 @@ def admin_user(
506507
@pytest.fixture
507508
def admin_client(
508509
db: None,
509-
admin_user: django.contrib.auth.models.User,
510+
admin_user: _User,
510511
) -> django.test.Client:
511512
"""A Django test client logged in as an admin user."""
512513
from django.test import Client

pytest_django/plugin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -573,7 +573,7 @@ def _django_setup_unittest(
573573

574574
original_runtest = TestCaseFunction.runtest
575575

576-
def non_debugging_runtest(self) -> None:
576+
def non_debugging_runtest(self) -> None: # noqa: ANN001
577577
self._testcase(result=self)
578578

579579
from django.test import SimpleTestCase

tests/test_fixtures.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030

3131
if TYPE_CHECKING:
32-
from django.contrib.auth.models import User
32+
from pytest_django.django_compat import _User, _UserModel
3333

3434

3535
@contextmanager
@@ -67,7 +67,7 @@ def test_admin_client_no_db_marker(db: None, admin_client: Client) -> None:
6767

6868
# For test below.
6969
@pytest.fixture
70-
def existing_admin_user(django_user_model: type[User]) -> User:
70+
def existing_admin_user(django_user_model: _UserModel) -> _User:
7171
return django_user_model._default_manager.create_superuser("admin", None, None)
7272

7373

0 commit comments

Comments
 (0)