def test_delete_model(self): doc = Document.objects.create(title="test") index.add_or_update_document(doc) self.assertIsNotNone(self.get_document_from_index(doc)) self.doc_admin.delete_model(None, doc) self.assertRaises(Document.DoesNotExist, Document.objects.get, id=doc.id) self.assertIsNone(self.get_document_from_index(doc))
def test_delete_queryset(self): docs = [] for i in range(42): doc = Document.objects.create( title="Many documents with the same title", checksum=f"{i:02}") docs.append(doc) index.add_or_update_document(doc) self.assertEqual(Document.objects.count(), 42) for doc in docs: self.assertIsNotNone(self.get_document_from_index(doc)) self.doc_admin.delete_queryset(None, Document.objects.all()) self.assertEqual(Document.objects.count(), 0) for doc in docs: self.assertIsNone(self.get_document_from_index(doc))
def test_auto_complete(self): doc1 = Document.objects.create(title="doc1", checksum="A", content="test test2 test3") doc2 = Document.objects.create(title="doc2", checksum="B", content="test test2") doc3 = Document.objects.create(title="doc3", checksum="C", content="test2") index.add_or_update_document(doc1) index.add_or_update_document(doc2) index.add_or_update_document(doc3) ix = index.open_index() self.assertListEqual(index.autocomplete(ix, "tes"), [b"test3", b"test", b"test2"]) self.assertListEqual(index.autocomplete(ix, "tes", limit=3), [b"test3", b"test", b"test2"]) self.assertListEqual(index.autocomplete(ix, "tes", limit=1), [b"test3"]) self.assertListEqual(index.autocomplete(ix, "tes", limit=0), [])
def update(self, request, *args, **kwargs): response = super(DocumentViewSet, self).update(request, *args, **kwargs) from documents import index index.add_or_update_document(self.get_object()) return response
def save_model(self, request, obj, form, change): from documents import index index.add_or_update_document(obj) super(DocumentAdmin, self).save_model(request, obj, form, change)
def add_to_index(sender, document, **kwargs): from documents import index index.add_or_update_document(document)