Chore: Move unittest directory setup onto the shared fixture (#14172)

The unittest side of the suite built its temp directory tree with
tempfile.mkdtemp and a manually enabled override_settings, cleaned up only if
tearDown ran. That is now gone. DirectoriesMixin lives alongside the layout it
bridges and does nothing but hand the paperless_dirs fixture to TestCase
subclasses as self.dirs, so both halves of the suite get the same twelve
settings, the same directory shapes and cleanup owned by tmp_path.

The mixin moves to paperless_testing.dirs rather than staying in the documents
test utilities, because modules in paperless and paperless_mail import it
across the app boundary. The thirty-eight consuming modules change only their
import line; self.dirs.scratch_dir and its siblings keep working.
This commit is contained in:
Trenton H
2026-09-21 10:57:12 -07:00
committed by GitHub
parent 4c264651e8
commit f440e8d33c
41 changed files with 87 additions and 144 deletions
+1 -1
View File
@@ -7,7 +7,6 @@ from guardian.shortcuts import assign_perm
from rest_framework import status
from rest_framework.test import APITestCase
from documents.tests.utils import DirectoriesMixin
from paperless_mail.models import MailAccount
from paperless_mail.models import MailRule
from paperless_mail.models import ProcessedMail
@@ -15,6 +14,7 @@ from paperless_mail.tests.factories import MailAccountFactory
from paperless_mail.tests.factories import MailRuleFactory
from paperless_mail.tests.factories import ProcessedMailFactory
from paperless_mail.tests.test_mail import BogusMailBox
from paperless_testing.dirs import DirectoriesMixin
from paperless_testing.factories import CorrespondentFactory
from paperless_testing.factories import DocumentTypeFactory
from paperless_testing.factories import TagFactory
+1 -1
View File
@@ -28,7 +28,6 @@ from rest_framework.test import APITestCase
from documents.models import Correspondent
from documents.models import MatchingModel
from documents.tests.utils import DirectoriesMixin
from documents.tests.utils import FileSystemAssertsMixin
from paperless_mail import tasks
from paperless_mail.mail import MailAccountHandler
@@ -42,6 +41,7 @@ from paperless_mail.models import MailRule
from paperless_mail.models import ProcessedMail
from paperless_mail.tests.factories import MailAccountFactory
from paperless_mail.tests.factories import MailRuleFactory
from paperless_testing.dirs import DirectoriesMixin
from paperless_testing.factories import CorrespondentFactory
+3 -12
View File
@@ -13,8 +13,6 @@ from unittest import mock
import pytest
from documents.tests.utils import remove_dirs
from documents.tests.utils import setup_directories
from paperless_mail.models import MailRule
from paperless_mail.tests.factories import MailAccountFactory
from paperless_mail.tests.test_mail import MessageBuilder
@@ -22,13 +20,6 @@ from paperless_mail.tests.test_mail import _AttachmentDef
from paperless_mail.tests.test_mail import fake_magic_from_buffer
@pytest.fixture()
def directories(settings):
dirs = setup_directories()
yield dirs
remove_dirs(dirs)
@pytest.fixture()
def queue_consumption_tasks_mock():
with mock.patch("paperless_mail.mail.queue_consumption_tasks") as m:
@@ -78,7 +69,7 @@ class TestMailNFCNormalization:
def test_attachment_nfd_filename_normalized_to_nfc(
self,
directories,
paperless_dirs,
queue_consumption_tasks_mock,
attachment_rule,
mail_account_handler,
@@ -123,7 +114,7 @@ class TestMailNFCNormalization:
def test_eml_subject_filename_nfc(
self,
directories,
paperless_dirs,
queue_consumption_tasks_mock,
eml_rule,
mail_account_handler,
@@ -156,7 +147,7 @@ class TestMailNFCNormalization:
def test_already_nfc_attachment_filename_unchanged(
self,
directories,
paperless_dirs,
queue_consumption_tasks_mock,
attachment_rule,
mail_account_handler,