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 get(self, request, format=None): if 'term' in request.query_params: term = request.query_params['term'] else: return HttpResponseBadRequest("Term required") if 'limit' in request.query_params: limit = int(request.query_params['limit']) if limit <= 0: return HttpResponseBadRequest("Invalid limit") else: limit = 10 return Response(index.autocomplete(self.ix, term, limit))