Explorar el Código

fix(file_upload): correct validation method and add unit tests (#10477)

-LAN- hace 5 meses
padre
commit
172c7eb270

+ 1 - 1
api/core/app/app_config/features/file_upload/manager.py

@@ -41,6 +41,6 @@ class FileUploadConfigManager:
         if not config.get("file_upload"):
             config["file_upload"] = {}
         else:
-            FileExtraConfig.model_validate(config["file_upload"])
+            FileUploadConfig.model_validate(config["file_upload"])
 
         return config, ["file_upload"]

+ 61 - 0
api/tests/unit_tests/core/app/app_config/features/file_upload/test_manager.py

@@ -0,0 +1,61 @@
+from core.app.app_config.features.file_upload.manager import FileUploadConfigManager
+from core.file.models import FileTransferMethod, FileUploadConfig, ImageConfig
+from core.model_runtime.entities.message_entities import ImagePromptMessageContent
+
+
+def test_convert_with_vision():
+    config = {
+        "file_upload": {
+            "enabled": True,
+            "number_limits": 5,
+            "allowed_file_upload_methods": [FileTransferMethod.REMOTE_URL],
+            "image": {"detail": "high"},
+        }
+    }
+    result = FileUploadConfigManager.convert(config, is_vision=True)
+    expected = FileUploadConfig(
+        image_config=ImageConfig(
+            number_limits=5,
+            transfer_methods=[FileTransferMethod.REMOTE_URL],
+            detail=ImagePromptMessageContent.DETAIL.HIGH,
+        )
+    )
+    assert result == expected
+
+
+def test_convert_without_vision():
+    config = {
+        "file_upload": {
+            "enabled": True,
+            "number_limits": 5,
+            "allowed_file_upload_methods": [FileTransferMethod.REMOTE_URL],
+        }
+    }
+    result = FileUploadConfigManager.convert(config, is_vision=False)
+    expected = FileUploadConfig(
+        image_config=ImageConfig(number_limits=5, transfer_methods=[FileTransferMethod.REMOTE_URL])
+    )
+    assert result == expected
+
+
+def test_validate_and_set_defaults():
+    config = {}
+    result, keys = FileUploadConfigManager.validate_and_set_defaults(config)
+    assert "file_upload" in result
+    assert keys == ["file_upload"]
+
+
+def test_validate_and_set_defaults_with_existing_config():
+    config = {
+        "file_upload": {
+            "enabled": True,
+            "number_limits": 5,
+            "allowed_file_upload_methods": [FileTransferMethod.REMOTE_URL],
+        }
+    }
+    result, keys = FileUploadConfigManager.validate_and_set_defaults(config)
+    assert "file_upload" in result
+    assert keys == ["file_upload"]
+    assert result["file_upload"]["enabled"] is True
+    assert result["file_upload"]["number_limits"] == 5
+    assert result["file_upload"]["allowed_file_upload_methods"] == [FileTransferMethod.REMOTE_URL]