From 0c8ca5684dae91f8a603dfd04f18539e27ffc8ce Mon Sep 17 00:00:00 2001 From: stumpylog <797416+stumpylog@users.noreply.github.com> Date: Thu, 17 Sep 2026 15:05:38 -0700 Subject: [PATCH] Chore: Move model factories to the shared test layer The model factories lived in the documents test package, but three other apps needed them. The AI, mail and testing suites all reached across an app boundary to import from documents.tests.factories, which made a private test package into a shared dependency. The factories now live in the shared testing package, where cross-app use is the intended use. --- src/documents/tests/conftest.py | 2 +- .../management/test_management_sanity_checker.py | 2 +- src/documents/tests/search/conftest.py | 2 +- src/documents/tests/search/test_acceptance.py | 2 +- src/documents/tests/search/test_backend.py | 10 +++++----- src/documents/tests/search/test_documented_syntax.py | 2 +- .../tests/search/test_highlight_query_guard.py | 2 +- .../tests/search/test_json_field_prefixes.py | 2 +- src/documents/tests/search/test_lock_backoff.py | 2 +- src/documents/tests/test_admin.py | 6 +++--- src/documents/tests/test_api_documents.py | 4 ++-- src/documents/tests/test_api_search.py | 2 +- src/documents/tests/test_api_status.py | 2 +- src/documents/tests/test_api_tasks.py | 4 ++-- src/documents/tests/test_classifier.py | 4 ++-- ...est_document_list_effective_content_annotation.py | 2 +- src/documents/tests/test_file_handling.py | 2 +- src/documents/tests/test_filepath_nfc.py | 8 ++++---- src/documents/tests/test_management_fuzzy.py | 2 +- src/documents/tests/test_management_retagger.py | 10 +++++----- src/documents/tests/test_matchables.py | 8 ++++---- src/documents/tests/test_models.py | 4 ++-- .../tests/test_permission_filtering_security.py | 10 +++++----- src/documents/tests/test_permitted_objects_filter.py | 2 +- src/documents/tests/test_share_link_bundles.py | 2 +- src/documents/tests/test_task_signals.py | 2 +- src/paperless_ai/tests/test_ai_classifier.py | 6 +++--- src/paperless_ai/tests/test_ai_indexing.py | 4 ++-- src/paperless_ai/tests/test_chat.py | 2 +- src/paperless_ai/tests/test_matching.py | 10 +++++----- src/paperless_ai/tests/test_taxonomy.py | 12 ++++++------ src/paperless_mail/tests/test_api.py | 6 +++--- src/paperless_mail/tests/test_mail.py | 2 +- .../tests => paperless_testing}/factories.py | 0 34 files changed, 71 insertions(+), 71 deletions(-) rename src/{documents/tests => paperless_testing}/factories.py (100%) diff --git a/src/documents/tests/conftest.py b/src/documents/tests/conftest.py index 9c49a02c1..4788c04ba 100644 --- a/src/documents/tests/conftest.py +++ b/src/documents/tests/conftest.py @@ -10,7 +10,7 @@ from django.contrib.auth import get_user_model from pytest_django.fixtures import Settings from rest_framework.test import APIClient -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import DocumentFactory UserModelT = get_user_model() diff --git a/src/documents/tests/management/test_management_sanity_checker.py b/src/documents/tests/management/test_management_sanity_checker.py index f0752ef10..1d3a84ad9 100644 --- a/src/documents/tests/management/test_management_sanity_checker.py +++ b/src/documents/tests/management/test_management_sanity_checker.py @@ -15,7 +15,7 @@ from rich.console import Console from documents.management.commands.document_sanity_checker import Command from documents.sanity_checker import SanityCheckMessages -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import DocumentFactory if TYPE_CHECKING: from documents.models import Document diff --git a/src/documents/tests/search/conftest.py b/src/documents/tests/search/conftest.py index 64dfcfe0c..ce805cdd4 100644 --- a/src/documents/tests/search/conftest.py +++ b/src/documents/tests/search/conftest.py @@ -9,7 +9,7 @@ from documents.search._backend import TantivyBackend from documents.search._backend import reset_backend from documents.search._schema import build_schema from documents.search._tokenizer import register_tokenizers -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import DocumentFactory if TYPE_CHECKING: from collections.abc import Callable diff --git a/src/documents/tests/search/test_acceptance.py b/src/documents/tests/search/test_acceptance.py index 097fc28de..5ef09b8b0 100644 --- a/src/documents/tests/search/test_acceptance.py +++ b/src/documents/tests/search/test_acceptance.py @@ -22,7 +22,7 @@ from documents.models import DocumentType from documents.models import Note from documents.models import StoragePath from documents.search._query import parse_user_query -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import DocumentFactory if TYPE_CHECKING: from collections.abc import Callable diff --git a/src/documents/tests/search/test_backend.py b/src/documents/tests/search/test_backend.py index 60b5d62da..e5b87d436 100644 --- a/src/documents/tests/search/test_backend.py +++ b/src/documents/tests/search/test_backend.py @@ -19,11 +19,11 @@ from documents.search._backend import WriteBatch from documents.search._backend import get_backend from documents.search._backend import reset_backend from documents.signals.handlers import add_to_index -from documents.tests.factories import CorrespondentFactory -from documents.tests.factories import DocumentFactory -from documents.tests.factories import DocumentTypeFactory -from documents.tests.factories import TagFactory -from documents.tests.factories import UserFactory +from paperless_testing.factories import CorrespondentFactory +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import DocumentTypeFactory +from paperless_testing.factories import TagFactory +from paperless_testing.factories import UserFactory pytestmark = [pytest.mark.search, pytest.mark.django_db] diff --git a/src/documents/tests/search/test_documented_syntax.py b/src/documents/tests/search/test_documented_syntax.py index d00551c25..55d446e20 100644 --- a/src/documents/tests/search/test_documented_syntax.py +++ b/src/documents/tests/search/test_documented_syntax.py @@ -27,7 +27,7 @@ import time_machine from documents.models import Note from documents.models import Tag from documents.search._errors import InvalidDateQuery -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import DocumentFactory if TYPE_CHECKING: from collections.abc import Callable diff --git a/src/documents/tests/search/test_highlight_query_guard.py b/src/documents/tests/search/test_highlight_query_guard.py index cf9e96378..ed61b8df9 100644 --- a/src/documents/tests/search/test_highlight_query_guard.py +++ b/src/documents/tests/search/test_highlight_query_guard.py @@ -29,7 +29,7 @@ from rest_framework import status from documents.search._backend import SearchMode from documents.search._query import parse_simple_text_highlight_query -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import DocumentFactory if TYPE_CHECKING: from rest_framework.test import APIClient diff --git a/src/documents/tests/search/test_json_field_prefixes.py b/src/documents/tests/search/test_json_field_prefixes.py index df737f39d..8468e2e65 100644 --- a/src/documents/tests/search/test_json_field_prefixes.py +++ b/src/documents/tests/search/test_json_field_prefixes.py @@ -22,7 +22,7 @@ from django.contrib.auth.models import User from documents.models import CustomField from documents.models import CustomFieldInstance from documents.models import Note -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import DocumentFactory if TYPE_CHECKING: from collections.abc import Callable diff --git a/src/documents/tests/search/test_lock_backoff.py b/src/documents/tests/search/test_lock_backoff.py index 936bd7f2a..2af4696c1 100644 --- a/src/documents/tests/search/test_lock_backoff.py +++ b/src/documents/tests/search/test_lock_backoff.py @@ -15,7 +15,7 @@ from documents.search._backend import SearchIndexLockError from documents.search._backend import TantivyBackend from documents.tasks import index_document from documents.tasks import remove_document_from_index -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import DocumentFactory if TYPE_CHECKING: from collections.abc import Generator diff --git a/src/documents/tests/test_admin.py b/src/documents/tests/test_admin.py index 22899d2ae..e90808784 100644 --- a/src/documents/tests/test_admin.py +++ b/src/documents/tests/test_admin.py @@ -16,11 +16,11 @@ from documents.models import Document from documents.models import Tag from documents.search import get_backend from documents.search import reset_backend -from documents.tests.factories import DocumentFactory -from documents.tests.factories import TagFactory -from documents.tests.factories import UserFactory from documents.tests.utils import DirectoriesMixin from paperless.admin import PaperlessUserAdmin +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import TagFactory +from paperless_testing.factories import UserFactory @pytest.fixture diff --git a/src/documents/tests/test_api_documents.py b/src/documents/tests/test_api_documents.py index adee77b64..8c17926c5 100644 --- a/src/documents/tests/test_api_documents.py +++ b/src/documents/tests/test_api_documents.py @@ -48,11 +48,11 @@ from documents.models import Workflow from documents.models import WorkflowAction from documents.models import WorkflowTrigger from documents.signals.handlers import run_workflows -from documents.tests.factories import DocumentFactory -from documents.tests.factories import TagFactory from documents.tests.utils import ConsumeTaskMixin from documents.tests.utils import DirectoriesMixin from documents.tests.utils import read_streaming_response +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import TagFactory class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): diff --git a/src/documents/tests/test_api_search.py b/src/documents/tests/test_api_search.py index f191ba175..bb2dd6b91 100644 --- a/src/documents/tests/test_api_search.py +++ b/src/documents/tests/test_api_search.py @@ -27,10 +27,10 @@ from documents.models import Tag from documents.models import Workflow from documents.search import get_backend from documents.search import reset_backend -from documents.tests.factories import DocumentFactory from documents.tests.utils import DirectoriesMixin from paperless_mail.models import MailAccount from paperless_mail.models import MailRule +from paperless_testing.factories import DocumentFactory pytestmark = pytest.mark.search diff --git a/src/documents/tests/test_api_status.py b/src/documents/tests/test_api_status.py index ca6613573..ae21e5ffb 100644 --- a/src/documents/tests/test_api_status.py +++ b/src/documents/tests/test_api_status.py @@ -14,8 +14,8 @@ from rest_framework.test import APITestCase from documents.models import PaperlessTask from documents.permissions import has_system_status_permission -from documents.tests.factories import PaperlessTaskFactory from paperless import version +from paperless_testing.factories import PaperlessTaskFactory class TestSystemStatus(APITestCase): diff --git a/src/documents/tests/test_api_tasks.py b/src/documents/tests/test_api_tasks.py index 59767f9af..8f8493417 100644 --- a/src/documents/tests/test_api_tasks.py +++ b/src/documents/tests/test_api_tasks.py @@ -20,8 +20,8 @@ from rest_framework.test import APIClient from documents.filters import PaperlessTaskFilterSet from documents.models import PaperlessTask -from documents.tests.factories import DocumentFactory -from documents.tests.factories import PaperlessTaskFactory +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import PaperlessTaskFactory pytestmark = pytest.mark.api diff --git a/src/documents/tests/test_classifier.py b/src/documents/tests/test_classifier.py index 69f78ca01..827247ac4 100644 --- a/src/documents/tests/test_classifier.py +++ b/src/documents/tests/test_classifier.py @@ -28,12 +28,12 @@ from documents.models import DocumentType from documents.models import MatchingModel from documents.models import StoragePath from documents.models import Tag -from documents.tests.factories import DocumentFactory -from documents.tests.factories import TagFactory from documents.tests.utils import DirectoriesMixin from paperless.settings import CLASSIFIER_LANGUAGES from paperless.signed_pickle import HMAC_SIZE from paperless.signed_pickle import signed_pickle_dumps +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import TagFactory def dummy_preprocess(content: str) -> str: diff --git a/src/documents/tests/test_document_list_effective_content_annotation.py b/src/documents/tests/test_document_list_effective_content_annotation.py index 717ee950b..4656bff5f 100644 --- a/src/documents/tests/test_document_list_effective_content_annotation.py +++ b/src/documents/tests/test_document_list_effective_content_annotation.py @@ -9,11 +9,11 @@ from django.test.utils import CaptureQueriesContext from rest_framework import status from documents.models import Document -from documents.tests.factories import DocumentFactory from documents.versioning import LATEST_VERSION_CONTENT_PREFETCH_ATTR from documents.versioning import has_prefetched_effective_content from documents.versioning import latest_version_content_prefetch from documents.views import DocumentViewSet +from paperless_testing.factories import DocumentFactory if TYPE_CHECKING: from rest_framework.test import APIClient diff --git a/src/documents/tests/test_file_handling.py b/src/documents/tests/test_file_handling.py index 081ffdcbd..66d6f3c85 100644 --- a/src/documents/tests/test_file_handling.py +++ b/src/documents/tests/test_file_handling.py @@ -30,9 +30,9 @@ from documents.models import DocumentType from documents.models import StoragePath from documents.serialisers import DocumentSerializer from documents.tasks import empty_trash -from documents.tests.factories import DocumentFactory from documents.tests.utils import DirectoriesMixin from documents.tests.utils import FileSystemAssertsMixin +from paperless_testing.factories import DocumentFactory class TestFileHandling(DirectoriesMixin, FileSystemAssertsMixin, TestCase): diff --git a/src/documents/tests/test_filepath_nfc.py b/src/documents/tests/test_filepath_nfc.py index e1d3ef9a8..0647d737d 100644 --- a/src/documents/tests/test_filepath_nfc.py +++ b/src/documents/tests/test_filepath_nfc.py @@ -13,10 +13,10 @@ import pytest from documents.file_handling import generate_filename from documents.models import CustomField from documents.models import CustomFieldInstance -from documents.tests.factories import CorrespondentFactory -from documents.tests.factories import DocumentFactory -from documents.tests.factories import StoragePathFactory -from documents.tests.factories import TagFactory +from paperless_testing.factories import CorrespondentFactory +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import StoragePathFactory +from paperless_testing.factories import TagFactory @pytest.mark.django_db diff --git a/src/documents/tests/test_management_fuzzy.py b/src/documents/tests/test_management_fuzzy.py index a5f98a2ec..1921ee795 100644 --- a/src/documents/tests/test_management_fuzzy.py +++ b/src/documents/tests/test_management_fuzzy.py @@ -8,7 +8,7 @@ from django.core.management import call_command from django.test import TestCase from documents.models import Document -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import DocumentFactory @pytest.mark.management diff --git a/src/documents/tests/test_management_retagger.py b/src/documents/tests/test_management_retagger.py index 605068038..23be6e2f2 100644 --- a/src/documents/tests/test_management_retagger.py +++ b/src/documents/tests/test_management_retagger.py @@ -14,12 +14,12 @@ from documents.models import DocumentType from documents.models import MatchingModel from documents.models import StoragePath from documents.models import Tag -from documents.tests.factories import CorrespondentFactory -from documents.tests.factories import DocumentFactory -from documents.tests.factories import DocumentTypeFactory -from documents.tests.factories import StoragePathFactory -from documents.tests.factories import TagFactory from documents.tests.utils import DirectoriesMixin +from paperless_testing.factories import CorrespondentFactory +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import DocumentTypeFactory +from paperless_testing.factories import StoragePathFactory +from paperless_testing.factories import TagFactory # --------------------------------------------------------------------------- # Module-level type aliases diff --git a/src/documents/tests/test_matchables.py b/src/documents/tests/test_matchables.py index 9ac406787..3ff6fd335 100644 --- a/src/documents/tests/test_matchables.py +++ b/src/documents/tests/test_matchables.py @@ -7,10 +7,10 @@ from documents import matching from documents.models import Document from documents.models import MatchingModel from documents.signals import document_consumption_finished -from documents.tests.factories import CorrespondentFactory -from documents.tests.factories import DocumentFactory -from documents.tests.factories import DocumentTypeFactory -from documents.tests.factories import TagFactory +from paperless_testing.factories import CorrespondentFactory +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import DocumentTypeFactory +from paperless_testing.factories import TagFactory @pytest.fixture( diff --git a/src/documents/tests/test_models.py b/src/documents/tests/test_models.py index 4aa28cfdc..44440be29 100644 --- a/src/documents/tests/test_models.py +++ b/src/documents/tests/test_models.py @@ -2,8 +2,8 @@ import pytest from documents.models import Correspondent from documents.models import Document -from documents.tests.factories import CorrespondentFactory -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import CorrespondentFactory +from paperless_testing.factories import DocumentFactory @pytest.mark.django_db diff --git a/src/documents/tests/test_permission_filtering_security.py b/src/documents/tests/test_permission_filtering_security.py index d8cdc98aa..638be2d41 100644 --- a/src/documents/tests/test_permission_filtering_security.py +++ b/src/documents/tests/test_permission_filtering_security.py @@ -24,11 +24,11 @@ from documents.permissions import permitted_document_ids from documents.permissions import permitted_object_ids from documents.permissions import restrict_queryset_to_visible from documents.serialisers import _get_viewable_duplicates -from documents.tests.factories import CorrespondentFactory -from documents.tests.factories import DocumentFactory -from documents.tests.factories import DocumentTypeFactory -from documents.tests.factories import StoragePathFactory -from documents.tests.factories import TagFactory +from paperless_testing.factories import CorrespondentFactory +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import DocumentTypeFactory +from paperless_testing.factories import StoragePathFactory +from paperless_testing.factories import TagFactory def assert_visible_document_ids(actual_ids, *, expected_visible, expected_hidden): diff --git a/src/documents/tests/test_permitted_objects_filter.py b/src/documents/tests/test_permitted_objects_filter.py index b087f091b..5200cd94e 100644 --- a/src/documents/tests/test_permitted_objects_filter.py +++ b/src/documents/tests/test_permitted_objects_filter.py @@ -5,7 +5,7 @@ from rest_framework.test import APIRequestFactory from documents.filters import PermittedObjectsFilter from documents.models import Tag -from documents.tests.factories import TagFactory +from paperless_testing.factories import TagFactory class _DummyView: diff --git a/src/documents/tests/test_share_link_bundles.py b/src/documents/tests/test_share_link_bundles.py index 9934ffe99..b86406924 100644 --- a/src/documents/tests/test_share_link_bundles.py +++ b/src/documents/tests/test_share_link_bundles.py @@ -20,8 +20,8 @@ from documents.models import ShareLinkBundle from documents.serialisers import ShareLinkBundleSerializer from documents.tasks import build_share_link_bundle from documents.tasks import cleanup_expired_share_link_bundles -from documents.tests.factories import DocumentFactory from documents.tests.utils import DirectoriesMixin +from paperless_testing.factories import DocumentFactory class ShareLinkBundleAPITests(DirectoriesMixin, APITestCase): diff --git a/src/documents/tests/test_task_signals.py b/src/documents/tests/test_task_signals.py index 41856236f..43e519d1a 100644 --- a/src/documents/tests/test_task_signals.py +++ b/src/documents/tests/test_task_signals.py @@ -17,7 +17,7 @@ from documents.signals.handlers import task_failure_handler from documents.signals.handlers import task_postrun_handler from documents.signals.handlers import task_prerun_handler from documents.signals.handlers import task_revoked_handler -from documents.tests.factories import PaperlessTaskFactory +from paperless_testing.factories import PaperlessTaskFactory @pytest.fixture diff --git a/src/paperless_ai/tests/test_ai_classifier.py b/src/paperless_ai/tests/test_ai_classifier.py index 10342a305..08940f883 100644 --- a/src/paperless_ai/tests/test_ai_classifier.py +++ b/src/paperless_ai/tests/test_ai_classifier.py @@ -12,9 +12,6 @@ from guardian.shortcuts import remove_perm from documents.models import Document from documents.search import TantivyBackend -from documents.tests.factories import DocumentFactory -from documents.tests.factories import TagFactory -from documents.tests.factories import UserFactory from paperless.config import AIConfig from paperless_ai.ai_classifier import TAXONOMY_CANDIDATE_TOP_K from paperless_ai.ai_classifier import _fulltext_similar_documents @@ -27,6 +24,9 @@ from paperless_ai.ai_classifier import get_taxonomy_context from paperless_ai.taxonomy import SimilarDocument from paperless_ai.taxonomy import TaxonomyCandidate from paperless_ai.taxonomy import TaxonomyCandidates +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import TagFactory +from paperless_testing.factories import UserFactory @pytest.fixture diff --git a/src/paperless_ai/tests/test_ai_indexing.py b/src/paperless_ai/tests/test_ai_indexing.py index 3866e6345..99a11f35f 100644 --- a/src/paperless_ai/tests/test_ai_indexing.py +++ b/src/paperless_ai/tests/test_ai_indexing.py @@ -21,12 +21,12 @@ from documents.models import Note from documents.models import PaperlessTask from documents.signals import document_consumption_finished from documents.signals import document_updated -from documents.tests.factories import DocumentFactory -from documents.tests.factories import PaperlessTaskFactory from paperless.models import ApplicationConfiguration from paperless_ai import indexing from paperless_ai.tests.conftest import FakeEmbedding from paperless_ai.vector_store import PaperlessSqliteVecVectorStore +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import PaperlessTaskFactory @pytest.fixture diff --git a/src/paperless_ai/tests/test_chat.py b/src/paperless_ai/tests/test_chat.py index be28d0a14..696aa250f 100644 --- a/src/paperless_ai/tests/test_chat.py +++ b/src/paperless_ai/tests/test_chat.py @@ -14,7 +14,6 @@ from llama_index.core.embeddings.mock_embed_model import MockEmbedding from llama_index.core.schema import TextNode from documents.models import Document -from documents.tests.factories import DocumentFactory from paperless_ai import chat from paperless_ai import indexing from paperless_ai.chat import CHAT_ERROR_MESSAGE @@ -22,6 +21,7 @@ from paperless_ai.chat import CHAT_METADATA_DELIMITER from paperless_ai.chat import _build_chat_prompt from paperless_ai.chat import _build_refine_prompt from paperless_ai.chat import stream_chat_with_documents +from paperless_testing.factories import DocumentFactory if TYPE_CHECKING: from pathlib import Path diff --git a/src/paperless_ai/tests/test_matching.py b/src/paperless_ai/tests/test_matching.py index bbf972ad9..d98745922 100644 --- a/src/paperless_ai/tests/test_matching.py +++ b/src/paperless_ai/tests/test_matching.py @@ -10,11 +10,6 @@ from documents.models import Correspondent from documents.models import DocumentType from documents.models import StoragePath from documents.models import Tag -from documents.tests.factories import CorrespondentFactory -from documents.tests.factories import DocumentTypeFactory -from documents.tests.factories import StoragePathFactory -from documents.tests.factories import TagFactory -from documents.tests.factories import UserFactory from paperless_ai.matching import extract_unmatched_names from paperless_ai.matching import match_correspondents_by_name from paperless_ai.matching import match_document_types_by_name @@ -24,6 +19,11 @@ from paperless_ai.matching import resolve_correspondent_ids from paperless_ai.matching import resolve_document_type_ids from paperless_ai.matching import resolve_storage_path_ids from paperless_ai.matching import resolve_tag_ids +from paperless_testing.factories import CorrespondentFactory +from paperless_testing.factories import DocumentTypeFactory +from paperless_testing.factories import StoragePathFactory +from paperless_testing.factories import TagFactory +from paperless_testing.factories import UserFactory class TestAIMatching(TestCase): diff --git a/src/paperless_ai/tests/test_taxonomy.py b/src/paperless_ai/tests/test_taxonomy.py index 18d81135f..eb225a1fe 100644 --- a/src/paperless_ai/tests/test_taxonomy.py +++ b/src/paperless_ai/tests/test_taxonomy.py @@ -3,16 +3,16 @@ import json import pytest import pytest_mock -from documents.tests.factories import CorrespondentFactory -from documents.tests.factories import DocumentFactory -from documents.tests.factories import DocumentTypeFactory -from documents.tests.factories import StoragePathFactory -from documents.tests.factories import TagFactory -from documents.tests.factories import UserFactory from paperless_ai.taxonomy import SimilarDocument from paperless_ai.taxonomy import TaxonomyCandidates from paperless_ai.taxonomy import build_taxonomy_candidates from paperless_ai.taxonomy import format_taxonomy_for_prompt +from paperless_testing.factories import CorrespondentFactory +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import DocumentTypeFactory +from paperless_testing.factories import StoragePathFactory +from paperless_testing.factories import TagFactory +from paperless_testing.factories import UserFactory def make_similar(document_id: int, weight: float) -> SimilarDocument: diff --git a/src/paperless_mail/tests/test_api.py b/src/paperless_mail/tests/test_api.py index 74715ace0..f96b1cbc2 100644 --- a/src/paperless_mail/tests/test_api.py +++ b/src/paperless_mail/tests/test_api.py @@ -7,9 +7,6 @@ from guardian.shortcuts import assign_perm from rest_framework import status from rest_framework.test import APITestCase -from documents.tests.factories import CorrespondentFactory -from documents.tests.factories import DocumentTypeFactory -from documents.tests.factories import TagFactory from documents.tests.utils import DirectoriesMixin from paperless_mail.models import MailAccount from paperless_mail.models import MailRule @@ -18,6 +15,9 @@ 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.factories import CorrespondentFactory +from paperless_testing.factories import DocumentTypeFactory +from paperless_testing.factories import TagFactory class TestAPIMailAccounts(DirectoriesMixin, APITestCase): diff --git a/src/paperless_mail/tests/test_mail.py b/src/paperless_mail/tests/test_mail.py index 3a128fd4e..609ac8947 100644 --- a/src/paperless_mail/tests/test_mail.py +++ b/src/paperless_mail/tests/test_mail.py @@ -28,7 +28,6 @@ from rest_framework.test import APITestCase from documents.models import Correspondent from documents.models import MatchingModel -from documents.tests.factories import CorrespondentFactory from documents.tests.utils import DirectoriesMixin from documents.tests.utils import FileSystemAssertsMixin from paperless_mail import tasks @@ -43,6 +42,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.factories import CorrespondentFactory @dataclasses.dataclass diff --git a/src/documents/tests/factories.py b/src/paperless_testing/factories.py similarity index 100% rename from src/documents/tests/factories.py rename to src/paperless_testing/factories.py