From d31f4669a26090de992a3bfc51cb7dee46178afe Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed, 30 Apr 2025 00:07:36 -0700 Subject: [PATCH] Mock auto-trigger llm index --- src/documents/tests/test_api_app_config.py | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/documents/tests/test_api_app_config.py b/src/documents/tests/test_api_app_config.py index e87802cf0..01ec0debe 100644 --- a/src/documents/tests/test_api_app_config.py +++ b/src/documents/tests/test_api_app_config.py @@ -1,5 +1,6 @@ import json from pathlib import Path +from unittest.mock import patch from django.contrib.auth.models import User from rest_framework import status @@ -196,3 +197,34 @@ class TestApiAppConfig(DirectoriesMixin, APITestCase): ) self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) self.assertEqual(ApplicationConfiguration.objects.count(), 1) + + def test_enable_ai_index_triggers_update(self): + """ + GIVEN: + - Existing config with AI disabled + WHEN: + - Config is updated to enable AI with llm_embedding_backend + THEN: + - LLM index is triggered to update + """ + config = ApplicationConfiguration.objects.first() + config.ai_enabled = False + config.llm_embedding_backend = None + config.save() + + with ( + patch("documents.tasks.llmindex_index.delay") as mock_update, + patch("paperless_ai.indexing.vector_store_file_exists") as mock_exists, + ): + mock_exists.return_value = False + self.client.patch( + f"{self.ENDPOINT}1/", + json.dumps( + { + "ai_enabled": True, + "llm_embedding_backend": "openai", + }, + ), + content_type="application/json", + ) + mock_update.assert_called_once()