Testing Code Component Processing and Configuration in gradio-app/gradio
This test suite validates the Code component functionality in the Gradio framework, covering core processing methods and configuration handling. The tests ensure proper handling of code snippets, file paths, and component configurations.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
gradio-app/gradio
test/components/test_code.py
from pathlib import Path
import gradio as gr
class TestCode:
def test_component_functions(self):
"""
Preprocess, postprocess, serialize, get_config
"""
code = gr.Code()
assert code.preprocess("# hello friends") == "# hello friends"
assert code.preprocess("def fn(a):
return a") == "def fn(a):
return a"
assert (
code.postprocess(
"""
def fn(a):
return a
"""
)
== """def fn(a):
return a"""
)
test_file_dir = Path(__file__).parent.parent / "test_files"
path = str(test_file_dir / "test_label_json.json")
assert code.postprocess(path) == path
assert code.get_config() == {
"value": None,
"language": None,
"lines": 5,
"max_lines": None,
"name": "code",
"show_label": True,
"label": None,
"container": True,
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"proxy_url": None,
"_selectable": False,
"wrap_lines": False,
"key": None,
}
def test_process_example(self):
code = gr.Code()
assert (
code.process_example("def fn(a):
return a") == "def fn(a):
return a"
)
assert code.process_example(None) is None
filename = str(Path("test/test_files/test_label_json.json"))
assert code.process_example(filename) == filename