| import urllib.parse | |
| import pytest | |
| import gradio as gr | |
| from gradio import http_server, routes | |
| class TestStartServer: | |
| # Test IPv4 and IPv6 hostnames as they would be passed from --server-name. | |
| def test_start_server(self, host): | |
| io = gr.Interface(lambda x: x, "number", "number") | |
| io.favicon_path = None | |
| io.config = io.get_config_file() | |
| io.show_error = True | |
| io.flagging_callback.setup([gr.Number()], io.flagging_dir) | |
| io.auth = None | |
| app = routes.App.create_app(io) | |
| _, _, local_path, server = http_server.start_server(app) | |
| url = urllib.parse.urlparse(local_path) | |
| assert url.scheme == "http" | |
| assert url.port is not None | |
| assert ( | |
| http_server.INITIAL_PORT_VALUE | |
| <= url.port | |
| <= http_server.INITIAL_PORT_VALUE + http_server.TRY_NUM_PORTS | |
| ) | |
| server.close() | |