Testing Model3D Component Integration in gradio-app/gradio
This test suite validates the Model3D component functionality in the Gradio framework, focusing on configuration settings and interface integration. The tests ensure proper handling of 3D model files and component configuration parameters.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
gradio-app/gradio
test/components/test_model3d.py
from pathlib import Path
import gradio as gr
class TestModel3D:
def test_component_functions(self):
"""
get_config
"""
model_component = gr.components.Model3D(None, label="Model")
assert model_component.get_config() == {
"value": None,
"display_mode": None,
"clear_color": [0, 0, 0, 0],
"label": "Model",
"show_label": True,
"container": True,
"scale": None,
"min_width": 160,
"visible": True,
"elem_id": None,
"elem_classes": [],
"proxy_url": None,
"interactive": None,
"name": "model3d",
"camera_position": (None, None, None),
"height": None,
"zoom_speed": 1,
"pan_speed": 1,
"_selectable": False,
"key": None,
}
file = "test/test_files/Box.gltf"
output1 = model_component.postprocess(file)
output2 = model_component.postprocess(Path(file))
assert output1
assert output2
assert Path(output1.path).name == Path(output2.path).name
def test_in_interface(self):
"""
Interface, process
"""
iface = gr.Interface(lambda x: x, "model3d", "model3d")
input_data = "test/test_files/Box.gltf"
output_data = iface(input_data)
assert output_data.endswith(".gltf")