|
from pathlib import Path |
|
|
|
import gradio as gr |
|
from gradio import utils |
|
|
|
|
|
class TestChatbot: |
|
def test_component_functions(self): |
|
""" |
|
Postprocess, get_config |
|
""" |
|
chatbot = gr.Chatbot() |
|
assert chatbot.postprocess( |
|
[["You are **cool**\nand fun", "so are *you*"]] |
|
).model_dump() == [("You are **cool**\nand fun", "so are *you*")] |
|
|
|
multimodal_msg = [ |
|
[("test/test_files/video_sample.mp4",), "cool video"], |
|
[("test/test_files/audio_sample.wav",), "cool audio"], |
|
[("test/test_files/bus.png", "A bus"), "cool pic"], |
|
[(Path("test/test_files/video_sample.mp4"),), "cool video"], |
|
[(Path("test/test_files/audio_sample.wav"),), "cool audio"], |
|
[(Path("test/test_files/bus.png"), "A bus"), "cool pic"], |
|
] |
|
postprocessed_multimodal_msg = chatbot.postprocess(multimodal_msg).model_dump() |
|
for msg in postprocessed_multimodal_msg: |
|
assert "file" in msg[0] |
|
assert msg[1] in {"cool video", "cool audio", "cool pic"} |
|
assert msg[0]["file"]["path"].split(".")[-1] in {"mp4", "wav", "png"} |
|
if msg[0]["alt_text"]: |
|
assert msg[0]["alt_text"] == "A bus" |
|
|
|
assert chatbot.get_config() == { |
|
"value": [], |
|
"label": None, |
|
"show_label": True, |
|
"name": "chatbot", |
|
"show_share_button": False, |
|
"visible": True, |
|
"elem_id": None, |
|
"elem_classes": [], |
|
"container": True, |
|
"min_width": 160, |
|
"scale": None, |
|
"placeholder": None, |
|
"height": 400, |
|
"max_height": None, |
|
"min_height": None, |
|
"autoscroll": True, |
|
"proxy_url": None, |
|
"_selectable": False, |
|
"_retryable": False, |
|
"_undoable": False, |
|
"key": None, |
|
"type": "tuples", |
|
"latex_delimiters": [{"display": True, "left": "$$", "right": "$$"}], |
|
"likeable": False, |
|
"rtl": False, |
|
"show_copy_button": False, |
|
"avatar_images": [None, None], |
|
"sanitize_html": True, |
|
"render_markdown": True, |
|
"bubble_full_width": True, |
|
"line_breaks": True, |
|
"layout": None, |
|
"show_copy_all_button": False, |
|
"example_selectable": False, |
|
"examples": None, |
|
} |
|
|
|
def test_avatar_images_are_moved_to_cache(self): |
|
chatbot = gr.Chatbot(avatar_images=("test/test_files/bus.png", None)) |
|
assert chatbot.avatar_images[0] |
|
assert utils.is_in_or_equal( |
|
chatbot.avatar_images[0]["path"], chatbot.GRADIO_CACHE |
|
) |
|
assert chatbot.avatar_images[1] is None |
|
|