mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-12 03:29:01 +08:00
fix(file_upload): correct validation method and add unit tests (#10477)
This commit is contained in:
parent
eb6c0b8027
commit
172c7eb270
@ -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"]
|
||||
|
@ -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]
|
Loading…
x
Reference in New Issue
Block a user