mirror of
https://github.com/gradio-app/gradio.git
synced 2025-01-24 10:54:04 +08:00
c77f05abb6
* [WIP] Replace the HTTP call to /api/predict with a function call * Extract shared logics into route_utils.* * Fix Queue.call_prediction() to return the output dict and raise exceptions * Remove run_predict() * Create route_utils.call_process_api() * Check Blocks.api_open and return 404 if it's false * Refactoring on queueing.py * Refactoring on queueing.py, renaming data to body * Fix the if block of availability check in the predict() endpoint handler * Put the code of clearning pending streams into route_utils.call_process_api * Format gradio/routes.py * Fix queueing.Queue.reset_iterators() not to call an HTTP endpoint * Remove ququeing.Queue.queue_client, which is no longer used * Fix with static type analysis * Remove gradio.utils.AsyncRequest, which is no longer used * add changeset * Remove PEP604-syntax which is not supported by Python<3.10 * Fix gradio/queueing.py * Remove AsyncRequest test cases * Fix queueing and routes test cases * Fix * Replace Queue.server_url with .server_app and remove methods related to the old .server_url * Revert `gradio_api_url` because building the document fails * Add __future__.annotations to route_utils.py * Update gradio/queueing.py Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Format * Mark the `gradio_api_url` parameter of `mount_gradio_app()` deprecated * Fix Queue.call_prediction to convert the output to a plain object * Add a `except asyncio.CancelledError` handler to avoid printing stack trace for task cancellation * Move the call of `route_utils.restore_session_state` into `route_utils.call_process_api` * exception class --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> |
||
---|---|---|
.. | ||
golden | ||
test_files | ||
tmp | ||
__init__.py | ||
conftest.py | ||
README.md | ||
requirements.in | ||
requirements.txt | ||
test_analytics.py | ||
test_blocks.py | ||
test_buttons.py | ||
test_chat_interface.py | ||
test_components.py | ||
test_events.py | ||
test_external.py | ||
test_flagging.py | ||
test_helpers.py | ||
test_interfaces.py | ||
test_interpretation.py | ||
test_mix.py | ||
test_networking.py | ||
test_pipelines.py | ||
test_processing_utils.py | ||
test_queueing.py | ||
test_reload.py | ||
test_routes.py | ||
test_theme_sharing.py | ||
test_tunneling.py | ||
test_utils.py |
Backend Testing Guidelines
- All the tests should test Backend functionalities. Frontend functionalities and e2e tests are done in Frontend.
- Make use of pytest fixtures whenever it is possible. With fixtures, objects with high initialize durations are reused within tests, ex. a client session.
- All testdata resides within _gradio/test_data and all test_files resides within test/test_files.
- When doing network operations do not forget to make use of async to make tests faster.
- Have clear class and function naming within the tests.
- Short descriptions within test functions are great.
- Library function docstrings is expected to contain an example, please add missing docstrings to the library while you are writing tests the related function.
- Library docstring examples and descriptions are expected to align with tests, please fix divergent tests and library docstrings.