Compare commits

...

2 Commits

Author SHA1 Message Date
Trenton H
fecaf174b1 Try removing DirectoriesMixin from tests which probably don't actually need dirs, just DB 2026-04-01 07:35:23 -07:00
Trenton H
8d19e88b3d Test out setupTestData instead of setUp 2026-03-31 15:06:55 -07:00
9 changed files with 99 additions and 86 deletions

View File

@@ -15,48 +15,49 @@ 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(DirectoriesMixin, APITestCase):
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")
def setUp(self) -> None:
super().setUp()
user = User.objects.create_superuser(username="temp_admin")
self.user = user
self.client.force_authenticate(user=user)
self.client.force_authenticate(user=self.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,10 +13,9 @@ 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(DirectoriesMixin, APITestCase):
class TestCustomFieldsAPI(APITestCase):
ENDPOINT = "/api/custom_fields/"
def setUp(self) -> None:

View File

@@ -51,10 +51,13 @@ 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,10 +16,9 @@ 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(DirectoriesMixin, APITestCase):
class TestApiObjects(APITestCase):
def setUp(self) -> None:
super().setUp()
@@ -162,7 +161,7 @@ class TestApiObjects(DirectoriesMixin, APITestCase):
)
class TestApiStoragePaths(DirectoriesMixin, APITestCase):
class TestApiStoragePaths(APITestCase):
ENDPOINT = "/api/storage_paths/"
def setUp(self) -> None:

View File

@@ -19,10 +19,9 @@ 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(DirectoriesMixin, APITestCase):
class TestApiAuth(APITestCase):
def test_auth_required(self) -> None:
d = Document.objects.create(title="Test")
@@ -654,13 +653,16 @@ class TestApiAuth(DirectoriesMixin, APITestCase):
self.assertEqual(response.status_code, status.HTTP_200_OK)
class TestApiUser(DirectoriesMixin, APITestCase):
class TestApiUser(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:
@@ -993,13 +995,16 @@ class TestApiUser(DirectoriesMixin, APITestCase):
self.assertEqual(returned_user1.is_staff, True)
class TestApiGroup(DirectoriesMixin, APITestCase):
class TestApiGroup(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:
@@ -1097,21 +1102,24 @@ class TestApiGroup(DirectoriesMixin, 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:
@@ -1406,11 +1414,14 @@ 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,8 +8,6 @@ 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:
@@ -49,7 +47,7 @@ class MockOpenIDConnectProvider:
return f"{self.app.provider_id}/login/?process=connect"
class TestApiProfile(DirectoriesMixin, APITestCase):
class TestApiProfile(APITestCase):
ENDPOINT = "/api/profile/"
def setUp(self) -> None:

View File

@@ -6,11 +6,10 @@ 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(DirectoriesMixin, APITestCase):
class TestApiUiSettings(APITestCase):
ENDPOINT = "/api/ui_settings/"
def setUp(self) -> None:

View File

@@ -14,10 +14,9 @@ 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(DirectoriesMixin, APITestCase):
class TestApiWorkflows(APITestCase):
ENDPOINT = "/api/workflows/"
ENDPOINT_TRIGGERS = "/api/workflow_triggers/"
ENDPOINT_ACTIONS = "/api/workflow_actions/"

View File

@@ -76,24 +76,27 @@ class TestWorkflows(
SampleDirMixin,
APITestCase,
):
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(
@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(
name="Custom Field 2",
data_type="integer",
)
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")
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")
account1 = MailAccount.objects.create(
name="Email1",
@@ -104,7 +107,7 @@ class TestWorkflows(
imap_security=MailAccount.ImapSecurity.SSL,
character_set="UTF-8",
)
self.rule1 = MailRule.objects.create(
cls.rule1 = MailRule.objects.create(
name="Rule1",
account=account1,
folder="INBOX",
@@ -122,7 +125,8 @@ class TestWorkflows(
assign_owner_from_rule=False,
)
return super().setUp()
def setUp(self) -> None:
super().setUp()
def test_workflow_match(self) -> None:
"""