|
@@ -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]
|