mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-08-07 03:13:19 +00:00
test: type-hint TestPermittedObjectIdsGenericModels parametrized signatures
Matches the project convention of annotating fixture params and test signatures, applied elsewhere in the test suite (e.g. test_matchables.py).
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from http import HTTPStatus
|
||||
from typing import TYPE_CHECKING
|
||||
from unittest.mock import patch
|
||||
|
||||
import pytest
|
||||
@@ -25,6 +26,10 @@ from documents.tests.factories import DocumentTypeFactory
|
||||
from documents.tests.factories import StoragePathFactory
|
||||
from documents.tests.factories import TagFactory
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from django.db.models import Model
|
||||
from factory.django import DjangoModelFactory
|
||||
|
||||
|
||||
def assert_visible_document_ids(actual_ids, *, expected_visible, expected_hidden):
|
||||
actual_ids = set(actual_ids)
|
||||
@@ -453,7 +458,12 @@ class TestTrashRestorePermissionBoundary:
|
||||
],
|
||||
)
|
||||
class TestPermittedObjectIdsGenericModels:
|
||||
def test_owner_sees_own_object(self, model, factory, perm):
|
||||
def test_owner_sees_own_object(
|
||||
self,
|
||||
model: type[Model],
|
||||
factory: type[DjangoModelFactory],
|
||||
perm: str,
|
||||
) -> None:
|
||||
owner = User.objects.create_user(username=f"owner_{model.__name__}")
|
||||
stranger = User.objects.create_user(username=f"stranger_{model.__name__}")
|
||||
owned = factory(owner=owner)
|
||||
@@ -465,7 +475,12 @@ class TestPermittedObjectIdsGenericModels:
|
||||
expected_hidden=[strangers.pk],
|
||||
)
|
||||
|
||||
def test_unowned_object_visible_to_everyone(self, model, factory, perm):
|
||||
def test_unowned_object_visible_to_everyone(
|
||||
self,
|
||||
model: type[Model],
|
||||
factory: type[DjangoModelFactory],
|
||||
perm: str,
|
||||
) -> None:
|
||||
user = User.objects.create_user(username=f"user_{model.__name__}")
|
||||
unowned = factory(owner=None)
|
||||
|
||||
@@ -475,7 +490,12 @@ class TestPermittedObjectIdsGenericModels:
|
||||
expected_hidden=[],
|
||||
)
|
||||
|
||||
def test_explicit_permission_grants_visibility(self, model, factory, perm):
|
||||
def test_explicit_permission_grants_visibility(
|
||||
self,
|
||||
model: type[Model],
|
||||
factory: type[DjangoModelFactory],
|
||||
perm: str,
|
||||
) -> None:
|
||||
owner = User.objects.create_user(username=f"owner2_{model.__name__}")
|
||||
grantee = User.objects.create_user(username=f"grantee_{model.__name__}")
|
||||
stranger = User.objects.create_user(username=f"stranger2_{model.__name__}")
|
||||
@@ -496,10 +516,10 @@ class TestPermittedObjectIdsGenericModels:
|
||||
|
||||
def test_group_permission_grants_visibility_to_members_only(
|
||||
self,
|
||||
model,
|
||||
factory,
|
||||
perm,
|
||||
):
|
||||
model: type[Model],
|
||||
factory: type[DjangoModelFactory],
|
||||
perm: str,
|
||||
) -> None:
|
||||
owner = User.objects.create_user(username=f"owner3_{model.__name__}")
|
||||
member = User.objects.create_user(username=f"member_{model.__name__}")
|
||||
non_member = User.objects.create_user(username=f"nonmember_{model.__name__}")
|
||||
@@ -519,7 +539,12 @@ class TestPermittedObjectIdsGenericModels:
|
||||
expected_hidden=[shared.pk],
|
||||
)
|
||||
|
||||
def test_superuser_sees_everything(self, model, factory, perm):
|
||||
def test_superuser_sees_everything(
|
||||
self,
|
||||
model: type[Model],
|
||||
factory: type[DjangoModelFactory],
|
||||
perm: str,
|
||||
) -> None:
|
||||
superuser = User.objects.create_superuser(username=f"root_{model.__name__}")
|
||||
owner = User.objects.create_user(username=f"owner4_{model.__name__}")
|
||||
obj = factory(owner=owner)
|
||||
|
||||
Reference in New Issue
Block a user