Commit graph

10 commits

Author SHA1 Message Date
Edwin Jose
3b7b701813
test(cli): refactor test_components_path to use async thread and free port (#8748)
* Refactor test_components_path to run server in thread

The test now starts the CLI server in a separate thread on a free port, allowing asynchronous startup and avoiding port conflicts. This change improves test reliability and better simulates real server behavior.

* Update src/backend/tests/unit/test_cli.py

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Improve error handling in run_flow CLI test helper

The run_flow function now raises a RuntimeError with a detailed message if the CLI invocation fails, making test failures easier to diagnose.

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-06-26 19:04:27 +00:00
Gabriel Luiz Freitas Almeida
73b5cc0098
refactor: remove unnecessary 'client' fixture and update test durations (#4283)
* Remove unnecessary use of 'client' fixture in test_superuser

* Remove unnecessary use of 'usefixtures' decorator in test files

* Update test fixtures to improve test duration tracking

* Remove unnecessary 'client' fixture from test cases
2024-10-27 14:16:45 +00:00
Gabriel Luiz Freitas Almeida
ee101e643c
fix: refine subflow field filtering to include '|' character check (#4277)
* Refine subflow field filtering to include '|' character check

* Add resource cleanup in test_components_path to ensure proper closure

* Remove unnecessary try-finally block in test_cli.py

* Remove unused pytest fixture decorator from test_components_path function

* Update test duration tracking in backend tests
2024-10-25 13:10:41 +00:00
Christophe Bornet
bac14d99c2
fix: Fix some tests missing client fixture (#4213)
Fix some tests missing client fixture
2024-10-19 21:00:47 +00:00
Christophe Bornet
45c8f98692
ref: Auto-fix ruff rules in tests (#4154) 2024-10-16 15:42:36 +00:00
Christophe Bornet
047077cee4
ref: Remove autouse from pytest client fixture (#4158)
Remove autouse from pytest client fixture
2024-10-15 22:55:10 +00:00
Christophe Bornet
3c6ec0cf9e
ref: Fix unused args in tests (#4156)
Fix unused args in tests
2024-10-15 15:05:19 +00:00
Gabriel Luiz Freitas Almeida
2adda780c9
tests: update env.py and conftest so tests use unique databases (#3654)
* Refactor Alembic environment script to simplify database connection logic and remove unused imports

* Refactor test client fixture to use TemporaryDirectory and UUID for database path

* Add `reload_engine` method to reinitialize the database engine

* Add cleanup steps to test fixtures to ensure proper resource management

- Added cleanup steps to various pytest fixtures to ensure temporary directories, database entries, and other resources are properly cleaned up after tests.
- Modified fixtures to use `yield` for better resource management.
- Ensured database connections are closed and tables are dropped after tests.
- Improved temporary directory handling with context managers.

* Add unit test to verify return type of list_flows method in custom component

* Refactor tests in `test_custom_component.py` to remove unused imports and fixtures, and update existing fixtures for consistency.

* Add debug checks for user existence in `test_user_waiting_for_approval` test

* Fix import order and add flow_id validation in transaction handling

- Corrected the import order in `utils.py`.
- Added validation for `flow_id` in the transaction handling logic to ensure it is set correctly.

* Add function to delete transactions by flow ID in CRUD module

* Add cleanup for transactions and vertex builds in test teardown

- Introduced `_delete_transactions_and_vertex_builds` function to remove transactions and vertex builds associated with a user.
- Updated `user` fixture to call the new cleanup function before deleting the user.

* Refactor flow_id assignment logic in `utils.py` to improve readability and correctness

* [autofix.ci] apply automated fixes

* Refactor test to use pytest's tmp_path fixture for temporary directory creation

* Convert `test_user_waiting_for_approval` to an async test function

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-10-10 11:45:11 +00:00
Gabriel Luiz Freitas Almeida
6febae599b
tests: update tests to use httpx.AsyncClient (#3984)
* Add async support and dependencies to pyproject.toml files

- Added `asgi-lifespan>=2.1.0` to dependencies.
- Configured `asyncio_mode` and `asyncio_default_fixture_loop_scope` for pytest.
- Updated `tool.uv` section with `asgi-lifespan` in dev-dependencies.

* Convert test fixtures to async and use AsyncClient for HTTP requests

* Handle 'ImportFrom' nodes in AST validation to support module attribute imports

* Convert test cases to use async HTTP client

- Updated test cases in `test_database.py`, `test_endpoints.py`, `test_user.py`, `test_variable.py`, `test_files.py`, `test_chat_endpoint.py`, `test_misc.py`, `test_messages_endpoints.py`, `test_api_key.py`, `test_webhook.py`, and `test_login.py` to use `httpx.AsyncClient` instead of `fastapi.TestClient`.
- Modified test functions to be asynchronous and use `await` for HTTP requests.
- Adjusted fixtures and helper functions to support asynchronous operations.
- Ensured consistency in endpoint paths and request methods across all test cases.

* Refactor string concatenation to f-string in test_chat_endpoint.py

* [autofix.ci] apply automated fixes

* Refactor import validation to use pattern matching for AST nodes

* Set `startup_timeout` and `shutdown_timeout` to `None` in `LifespanManager` for test files.

* Convert test functions to async in `test_messages_endpoints.py`

* Add `api_key_required` marker to assistant component tests

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-10-02 10:21:52 -07:00
Gabriel Luiz Freitas Almeida
0122a50a35
refactor: move tests folder structure and update pytest commands (#2785)
* refactor: move tests folder to src/backend

* chore(Makefile): update pytest commands to run tests from the correct directory paths for unit and integration tests

* refactor: update file path in test_custom_component.py

The file path in the test_custom_component.py file has been updated to use the correct relative path to the component_multiple_outputs.py file. This change ensures that the test code can access the correct file and improves the reliability of the test.
2024-07-18 15:19:43 +00:00
Renamed from tests/unit/test_cli.py (Browse further)