mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-08-19 09:13:24 +00:00
test(api): dedupe the four archive-metadata search tests via a helper
test_search_by_asn/page_count/original_filename/checksum were all create-doc -> index -> GET -> assert 200 and doc.id in results, repeated verbatim four times. Extract _assert_query_finds() so each test states only its distinguishing field and query.
This commit is contained in:
@@ -2053,6 +2053,13 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase):
|
||||
response = self.client.get("/api/search/?query=no")
|
||||
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def _assert_query_finds(self, doc: Document, query: str) -> None:
|
||||
get_backend().add_or_update(doc)
|
||||
response = self.client.get("/api/documents/", {"query": query})
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
ids = [r["id"] for r in response.data["results"]]
|
||||
self.assertIn(doc.id, ids)
|
||||
|
||||
def test_search_by_asn(self) -> None:
|
||||
doc = Document.objects.create(
|
||||
title="Has ASN",
|
||||
@@ -2060,12 +2067,7 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase):
|
||||
checksum="asn-checksum",
|
||||
archive_serial_number=555,
|
||||
)
|
||||
backend = get_backend()
|
||||
backend.add_or_update(doc)
|
||||
response = self.client.get("/api/documents/", {"query": "asn:555"})
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
ids = [r["id"] for r in response.data["results"]]
|
||||
self.assertIn(doc.id, ids)
|
||||
self._assert_query_finds(doc, "asn:555")
|
||||
|
||||
def test_search_by_page_count(self) -> None:
|
||||
doc = Document.objects.create(
|
||||
@@ -2074,12 +2076,7 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase):
|
||||
checksum="page-count-checksum",
|
||||
page_count=42,
|
||||
)
|
||||
backend = get_backend()
|
||||
backend.add_or_update(doc)
|
||||
response = self.client.get("/api/documents/", {"query": "page_count:42"})
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
ids = [r["id"] for r in response.data["results"]]
|
||||
self.assertIn(doc.id, ids)
|
||||
self._assert_query_finds(doc, "page_count:42")
|
||||
|
||||
def test_search_by_original_filename(self) -> None:
|
||||
doc = Document.objects.create(
|
||||
@@ -2088,15 +2085,7 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase):
|
||||
checksum="filename-checksum",
|
||||
original_filename="quarterly-report.pdf",
|
||||
)
|
||||
backend = get_backend()
|
||||
backend.add_or_update(doc)
|
||||
response = self.client.get(
|
||||
"/api/documents/",
|
||||
{"query": "original_filename:quarterly-report.pdf"},
|
||||
)
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
ids = [r["id"] for r in response.data["results"]]
|
||||
self.assertIn(doc.id, ids)
|
||||
self._assert_query_finds(doc, "original_filename:quarterly-report.pdf")
|
||||
|
||||
def test_search_by_checksum(self) -> None:
|
||||
doc = Document.objects.create(
|
||||
@@ -2104,12 +2093,4 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase):
|
||||
content="content",
|
||||
checksum="deadbeef1234",
|
||||
)
|
||||
backend = get_backend()
|
||||
backend.add_or_update(doc)
|
||||
response = self.client.get(
|
||||
"/api/documents/",
|
||||
{"query": "checksum:deadbeef1234"},
|
||||
)
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
ids = [r["id"] for r in response.data["results"]]
|
||||
self.assertIn(doc.id, ids)
|
||||
self._assert_query_finds(doc, "checksum:deadbeef1234")
|
||||
|
||||
Reference in New Issue
Block a user