Compare commits

..

1 Commits

Author SHA1 Message Date
dependabot[bot]
ab938bd18b Chore(deps): Bump the pre-commit-dependencies group with 2 updates
Bumps the pre-commit-dependencies group with 2 updates: [https://github.com/astral-sh/ruff-pre-commit](https://github.com/astral-sh/ruff-pre-commit) and [https://github.com/tox-dev/pyproject-fmt](https://github.com/tox-dev/pyproject-fmt).


Updates `https://github.com/astral-sh/ruff-pre-commit` from v0.15.6 to 0.15.8
- [Release notes](https://github.com/astral-sh/ruff-pre-commit/releases)
- [Commits](https://github.com/astral-sh/ruff-pre-commit/compare/v0.15.6...v0.15.8)

Updates `https://github.com/tox-dev/pyproject-fmt` from v2.12.1 to 2.21.0
- [Release notes](https://github.com/tox-dev/pyproject-fmt/releases)
- [Commits](https://github.com/tox-dev/pyproject-fmt/compare/v2.12.1...v2.21.0)

---
updated-dependencies:
- dependency-name: https://github.com/astral-sh/ruff-pre-commit
  dependency-version: 0.15.8
  dependency-type: direct:production
  dependency-group: pre-commit-dependencies
- dependency-name: https://github.com/tox-dev/pyproject-fmt
  dependency-version: 2.21.0
  dependency-type: direct:production
  dependency-group: pre-commit-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-02 01:03:29 +00:00
10 changed files with 88 additions and 101 deletions

View File

@@ -50,12 +50,12 @@ repos:
- 'prettier-plugin-organize-imports@4.3.0'
# Python hooks
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.15.6
rev: v0.15.8
hooks:
- id: ruff-check
- id: ruff-format
- repo: https://github.com/tox-dev/pyproject-fmt
rev: "v2.12.1"
rev: "v2.21.0"
hooks:
- id: pyproject-fmt
# Dockerfile hooks

View File

@@ -15,49 +15,48 @@ from documents.models import Document
from documents.models import DocumentType
from documents.models import StoragePath
from documents.models import Tag
from documents.tests.utils import DirectoriesMixin
class TestBulkEditAPI(APITestCase):
@classmethod
def setUpTestData(cls) -> None:
super().setUpTestData()
cls.user = User.objects.create_superuser(username="temp_admin")
cls.c1 = Correspondent.objects.create(name="c1")
cls.c2 = Correspondent.objects.create(name="c2")
cls.dt1 = DocumentType.objects.create(name="dt1")
cls.dt2 = DocumentType.objects.create(name="dt2")
cls.t1 = Tag.objects.create(name="t1")
cls.t2 = Tag.objects.create(name="t2")
cls.doc1 = Document.objects.create(checksum="A", title="A")
cls.doc2 = Document.objects.create(
checksum="B",
title="B",
correspondent=cls.c1,
document_type=cls.dt1,
page_count=5,
)
cls.doc3 = Document.objects.create(
checksum="C",
title="C",
correspondent=cls.c2,
document_type=cls.dt2,
)
cls.doc4 = Document.objects.create(checksum="D", title="D")
cls.doc5 = Document.objects.create(checksum="E", title="E")
cls.doc2.tags.add(cls.t1)
cls.doc3.tags.add(cls.t2)
cls.doc4.tags.add(cls.t1, cls.t2)
cls.sp1 = StoragePath.objects.create(name="sp1", path="Something/{checksum}")
cls.cf1 = CustomField.objects.create(name="cf1", data_type="string")
cls.cf2 = CustomField.objects.create(name="cf2", data_type="string")
class TestBulkEditAPI(DirectoriesMixin, APITestCase):
def setUp(self) -> None:
super().setUp()
self.client.force_authenticate(user=self.user)
user = User.objects.create_superuser(username="temp_admin")
self.user = user
self.client.force_authenticate(user=user)
patcher = mock.patch("documents.bulk_edit.bulk_update_documents.delay")
self.async_task = patcher.start()
self.addCleanup(patcher.stop)
self.c1 = Correspondent.objects.create(name="c1")
self.c2 = Correspondent.objects.create(name="c2")
self.dt1 = DocumentType.objects.create(name="dt1")
self.dt2 = DocumentType.objects.create(name="dt2")
self.t1 = Tag.objects.create(name="t1")
self.t2 = Tag.objects.create(name="t2")
self.doc1 = Document.objects.create(checksum="A", title="A")
self.doc2 = Document.objects.create(
checksum="B",
title="B",
correspondent=self.c1,
document_type=self.dt1,
page_count=5,
)
self.doc3 = Document.objects.create(
checksum="C",
title="C",
correspondent=self.c2,
document_type=self.dt2,
)
self.doc4 = Document.objects.create(checksum="D", title="D")
self.doc5 = Document.objects.create(checksum="E", title="E")
self.doc2.tags.add(self.t1)
self.doc3.tags.add(self.t2)
self.doc4.tags.add(self.t1, self.t2)
self.sp1 = StoragePath.objects.create(name="sp1", path="Something/{checksum}")
self.cf1 = CustomField.objects.create(name="cf1", data_type="string")
self.cf2 = CustomField.objects.create(name="cf2", data_type="string")
def setup_mock(self, m, method_name, return_value="OK") -> None:
m.return_value = return_value

View File

@@ -13,9 +13,10 @@ from rest_framework.test import APITestCase
from documents.models import CustomField
from documents.models import CustomFieldInstance
from documents.models import Document
from documents.tests.utils import DirectoriesMixin
class TestCustomFieldsAPI(APITestCase):
class TestCustomFieldsAPI(DirectoriesMixin, APITestCase):
ENDPOINT = "/api/custom_fields/"
def setUp(self) -> None:

View File

@@ -51,13 +51,10 @@ from documents.tests.utils import DocumentConsumeDelayMixin
class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
@classmethod
def setUpTestData(cls) -> None:
super().setUpTestData()
cls.user = User.objects.create_superuser(username="temp_admin")
def setUp(self) -> None:
super().setUp()
self.user = User.objects.create_superuser(username="temp_admin")
self.client.force_authenticate(user=self.user)
cache.clear()

View File

@@ -16,9 +16,10 @@ from documents.models import Document
from documents.models import DocumentType
from documents.models import StoragePath
from documents.models import Tag
from documents.tests.utils import DirectoriesMixin
class TestApiObjects(APITestCase):
class TestApiObjects(DirectoriesMixin, APITestCase):
def setUp(self) -> None:
super().setUp()
@@ -161,7 +162,7 @@ class TestApiObjects(APITestCase):
)
class TestApiStoragePaths(APITestCase):
class TestApiStoragePaths(DirectoriesMixin, APITestCase):
ENDPOINT = "/api/storage_paths/"
def setUp(self) -> None:

View File

@@ -19,9 +19,10 @@ from documents.models import DocumentType
from documents.models import MatchingModel
from documents.models import StoragePath
from documents.models import Tag
from documents.tests.utils import DirectoriesMixin
class TestApiAuth(APITestCase):
class TestApiAuth(DirectoriesMixin, APITestCase):
def test_auth_required(self) -> None:
d = Document.objects.create(title="Test")
@@ -653,16 +654,13 @@ class TestApiAuth(APITestCase):
self.assertEqual(response.status_code, status.HTTP_200_OK)
class TestApiUser(APITestCase):
class TestApiUser(DirectoriesMixin, APITestCase):
ENDPOINT = "/api/users/"
@classmethod
def setUpTestData(cls) -> None:
super().setUpTestData()
cls.user = User.objects.create_superuser(username="temp_admin")
def setUp(self) -> None:
super().setUp()
self.user = User.objects.create_superuser(username="temp_admin")
self.client.force_authenticate(user=self.user)
def test_get_users(self) -> None:
@@ -995,16 +993,13 @@ class TestApiUser(APITestCase):
self.assertEqual(returned_user1.is_staff, True)
class TestApiGroup(APITestCase):
class TestApiGroup(DirectoriesMixin, APITestCase):
ENDPOINT = "/api/groups/"
@classmethod
def setUpTestData(cls) -> None:
super().setUpTestData()
cls.user = User.objects.create_superuser(username="temp_admin")
def setUp(self) -> None:
super().setUp()
self.user = User.objects.create_superuser(username="temp_admin")
self.client.force_authenticate(user=self.user)
def test_get_groups(self) -> None:
@@ -1102,24 +1097,21 @@ class TestApiGroup(APITestCase):
class TestBulkEditObjectPermissions(APITestCase):
@classmethod
def setUpTestData(cls) -> None:
super().setUpTestData()
cls.temp_admin = User.objects.create_superuser(username="temp_admin")
cls.t1 = Tag.objects.create(name="t1")
cls.t2 = Tag.objects.create(name="t2")
cls.c1 = Correspondent.objects.create(name="c1")
cls.dt1 = DocumentType.objects.create(name="dt1")
cls.sp1 = StoragePath.objects.create(name="sp1")
cls.user1 = User.objects.create(username="user1")
cls.user2 = User.objects.create(username="user2")
cls.user3 = User.objects.create(username="user3")
def setUp(self) -> None:
super().setUp()
self.temp_admin = User.objects.create_superuser(username="temp_admin")
self.client.force_authenticate(user=self.temp_admin)
self.t1 = Tag.objects.create(name="t1")
self.t2 = Tag.objects.create(name="t2")
self.c1 = Correspondent.objects.create(name="c1")
self.dt1 = DocumentType.objects.create(name="dt1")
self.sp1 = StoragePath.objects.create(name="sp1")
self.user1 = User.objects.create(username="user1")
self.user2 = User.objects.create(username="user2")
self.user3 = User.objects.create(username="user3")
def test_bulk_object_set_permissions(self) -> None:
"""
GIVEN:
@@ -1414,14 +1406,11 @@ class TestBulkEditObjectPermissions(APITestCase):
class TestFullPermissionsFlag(APITestCase):
@classmethod
def setUpTestData(cls) -> None:
super().setUpTestData()
cls.admin = User.objects.create_superuser(username="admin")
def setUp(self) -> None:
super().setUp()
self.admin = User.objects.create_superuser(username="admin")
def test_full_perms_flag(self) -> None:
"""
GIVEN:

View File

@@ -8,6 +8,8 @@ from rest_framework import status
from rest_framework.authtoken.models import Token
from rest_framework.test import APITestCase
from documents.tests.utils import DirectoriesMixin
# see allauth.socialaccount.providers.openid.provider.OpenIDProvider
class MockOpenIDProvider:
@@ -47,7 +49,7 @@ class MockOpenIDConnectProvider:
return f"{self.app.provider_id}/login/?process=connect"
class TestApiProfile(APITestCase):
class TestApiProfile(DirectoriesMixin, APITestCase):
ENDPOINT = "/api/profile/"
def setUp(self) -> None:

View File

@@ -6,10 +6,11 @@ from django.test import override_settings
from rest_framework import status
from rest_framework.test import APITestCase
from documents.tests.utils import DirectoriesMixin
from paperless.version import __full_version_str__
class TestApiUiSettings(APITestCase):
class TestApiUiSettings(DirectoriesMixin, APITestCase):
ENDPOINT = "/api/ui_settings/"
def setUp(self) -> None:

View File

@@ -14,9 +14,10 @@ from documents.models import Tag
from documents.models import Workflow
from documents.models import WorkflowAction
from documents.models import WorkflowTrigger
from documents.tests.utils import DirectoriesMixin
class TestApiWorkflows(APITestCase):
class TestApiWorkflows(DirectoriesMixin, APITestCase):
ENDPOINT = "/api/workflows/"
ENDPOINT_TRIGGERS = "/api/workflow_triggers/"
ENDPOINT_ACTIONS = "/api/workflow_actions/"

View File

@@ -76,27 +76,24 @@ class TestWorkflows(
SampleDirMixin,
APITestCase,
):
@classmethod
def setUpTestData(cls) -> None:
super().setUpTestData()
cls.c = Correspondent.objects.create(name="Correspondent Name")
cls.c2 = Correspondent.objects.create(name="Correspondent Name 2")
cls.dt = DocumentType.objects.create(name="DocType Name")
cls.t1 = Tag.objects.create(name="t1")
cls.t2 = Tag.objects.create(name="t2")
cls.t3 = Tag.objects.create(name="t3")
cls.sp = StoragePath.objects.create(path="/test/")
cls.cf1 = CustomField.objects.create(name="Custom Field 1", data_type="string")
cls.cf2 = CustomField.objects.create(
def setUp(self) -> None:
self.c = Correspondent.objects.create(name="Correspondent Name")
self.c2 = Correspondent.objects.create(name="Correspondent Name 2")
self.dt = DocumentType.objects.create(name="DocType Name")
self.t1 = Tag.objects.create(name="t1")
self.t2 = Tag.objects.create(name="t2")
self.t3 = Tag.objects.create(name="t3")
self.sp = StoragePath.objects.create(path="/test/")
self.cf1 = CustomField.objects.create(name="Custom Field 1", data_type="string")
self.cf2 = CustomField.objects.create(
name="Custom Field 2",
data_type="integer",
)
cls.user2 = User.objects.create(username="user2")
cls.user3 = User.objects.create(username="user3")
cls.group1 = Group.objects.create(name="group1")
cls.group2 = Group.objects.create(name="group2")
self.user2 = User.objects.create(username="user2")
self.user3 = User.objects.create(username="user3")
self.group1 = Group.objects.create(name="group1")
self.group2 = Group.objects.create(name="group2")
account1 = MailAccount.objects.create(
name="Email1",
@@ -107,7 +104,7 @@ class TestWorkflows(
imap_security=MailAccount.ImapSecurity.SSL,
character_set="UTF-8",
)
cls.rule1 = MailRule.objects.create(
self.rule1 = MailRule.objects.create(
name="Rule1",
account=account1,
folder="INBOX",
@@ -125,8 +122,7 @@ class TestWorkflows(
assign_owner_from_rule=False,
)
def setUp(self) -> None:
super().setUp()
return super().setUp()
def test_workflow_match(self) -> None:
"""