paperless-ngx/src/documents/tests/test_admin.py

67 lines
2.2 KiB
Python
Raw Normal View History

2020-12-20 14:39:17 +01:00
from unittest import mock
from django.contrib.admin.sites import AdminSite
from django.test import TestCase
from django.utils import timezone
2021-02-15 13:26:36 +01:00
from documents import index
2020-12-20 14:39:17 +01:00
from documents.admin import DocumentAdmin
2021-01-14 14:54:04 +01:00
from documents.models import Document
from documents.tests.utils import DirectoriesMixin
2020-12-20 14:39:17 +01:00
2021-01-14 14:54:04 +01:00
class TestDocumentAdmin(DirectoriesMixin, TestCase):
2021-02-15 13:26:36 +01:00
def get_document_from_index(self, doc):
ix = index.open_index()
with ix.searcher() as searcher:
return searcher.document(id=doc.id)
2020-12-20 14:39:17 +01:00
def setUp(self) -> None:
2021-01-14 14:54:04 +01:00
super(TestDocumentAdmin, self).setUp()
2020-12-20 14:39:17 +01:00
self.doc_admin = DocumentAdmin(model=Document, admin_site=AdminSite())
2021-02-15 13:26:36 +01:00
def test_save_model(self):
2020-12-20 14:39:17 +01:00
doc = Document.objects.create(title="test")
2021-02-15 13:26:36 +01:00
2020-12-20 14:39:17 +01:00
doc.title = "new title"
self.doc_admin.save_model(None, doc, None, None)
self.assertEqual(Document.objects.get(id=doc.id).title, "new title")
2022-02-27 15:26:41 +01:00
self.assertEqual(self.get_document_from_index(doc)["id"], doc.id)
2020-12-20 14:39:17 +01:00
2021-02-15 13:26:36 +01:00
def test_delete_model(self):
2020-12-20 14:39:17 +01:00
doc = Document.objects.create(title="test")
2021-02-15 13:26:36 +01:00
index.add_or_update_document(doc)
self.assertIsNotNone(self.get_document_from_index(doc))
2020-12-20 14:39:17 +01:00
self.doc_admin.delete_model(None, doc)
2021-02-15 13:26:36 +01:00
2020-12-20 14:39:17 +01:00
self.assertRaises(Document.DoesNotExist, Document.objects.get, id=doc.id)
2021-02-15 13:26:36 +01:00
self.assertIsNone(self.get_document_from_index(doc))
2020-12-20 14:39:17 +01:00
2021-02-15 13:26:36 +01:00
def test_delete_queryset(self):
docs = []
2020-12-20 14:39:17 +01:00
for i in range(42):
2022-02-27 15:26:41 +01:00
doc = Document.objects.create(
title="Many documents with the same title", checksum=f"{i:02}"
)
2021-02-15 13:26:36 +01:00
docs.append(doc)
index.add_or_update_document(doc)
2020-12-20 14:39:17 +01:00
self.assertEqual(Document.objects.count(), 42)
2021-02-15 13:26:36 +01:00
for doc in docs:
self.assertIsNotNone(self.get_document_from_index(doc))
2020-12-20 14:39:17 +01:00
self.doc_admin.delete_queryset(None, Document.objects.all())
self.assertEqual(Document.objects.count(), 0)
2021-02-15 13:26:36 +01:00
for doc in docs:
self.assertIsNone(self.get_document_from_index(doc))
2020-12-20 14:39:17 +01:00
def test_created(self):
2022-02-27 15:26:41 +01:00
doc = Document.objects.create(
title="test", created=timezone.make_aware(timezone.datetime(2020, 4, 12))
2022-02-27 15:26:41 +01:00
)
2020-12-20 14:39:17 +01:00
self.assertEqual(self.doc_admin.created_(doc), "2020-04-12")