|
from unittest.mock import patch |
|
|
|
import gradio as gr |
|
|
|
|
|
class TestSlider: |
|
def test_component_functions(self): |
|
""" |
|
Preprocess, postprocess, serialize, get_config |
|
""" |
|
slider_input = gr.Slider() |
|
assert slider_input.preprocess(3.0) == 3.0 |
|
assert slider_input.postprocess(3) == 3 |
|
assert slider_input.postprocess(3) == 3 |
|
assert slider_input.postprocess(None) == 0 |
|
|
|
slider_input = gr.Slider(10, 20, value=15, step=1, label="Slide Your Input") |
|
assert slider_input.get_config() == { |
|
"minimum": 10, |
|
"maximum": 20, |
|
"step": 1, |
|
"value": 15, |
|
"name": "slider", |
|
"show_label": True, |
|
"label": "Slide Your Input", |
|
"container": True, |
|
"min_width": 160, |
|
"scale": None, |
|
"elem_id": None, |
|
"elem_classes": [], |
|
"visible": True, |
|
"interactive": None, |
|
"proxy_url": None, |
|
"info": None, |
|
"_selectable": False, |
|
"key": None, |
|
} |
|
|
|
def test_in_interface(self): |
|
""" " |
|
Interface, process |
|
""" |
|
iface = gr.Interface(lambda x: x**2, "slider", "textbox") |
|
assert iface(2) == "4" |
|
|
|
def test_static(self): |
|
""" |
|
postprocess |
|
""" |
|
component = gr.Slider(0, 100, 5) |
|
assert component.get_config().get("value") == 5 |
|
component = gr.Slider(0, 100, None) |
|
assert component.get_config().get("value") == 0 |
|
|
|
@patch("gradio.Slider.get_random_value", return_value=7) |
|
def test_slider_get_random_value_on_load(self, mock_get_random_value): |
|
slider = gr.Slider(minimum=-5, maximum=10, randomize=True) |
|
assert slider.value == 7 |
|
assert slider.load_event_to_attach |
|
assert slider.load_event_to_attach[0]() == 7 |
|
assert not slider.load_event_to_attach[1] |
|
|
|
@patch("random.randint", return_value=3) |
|
def test_slider_rounds_when_using_default_randomizer(self, mock_randint): |
|
slider = gr.Slider(minimum=0, maximum=1, randomize=True, step=0.1) |
|
|
|
|
|
assert slider.get_random_value() == 0.3 |
|
mock_randint.assert_called() |
|
|