PR Title Check / check-title (pull_request) Successful in 8s
Test Python Package / unit-tests (pull_request) Successful in 13s
Code Quality Pipeline / code-quality (pull_request) Successful in 23s
Test Python Package / integration-tests (pull_request) Successful in 1m14s
Test Python Package / coverage-report (pull_request) Successful in 12s
Record the one-to-one unit test file convention in README and add rules for test placement and copy-ready PR text after first push. Co-authored-by: Cursor <cursoragent@cursor.com>
32 lines
1.0 KiB
Plaintext
32 lines
1.0 KiB
Plaintext
---
|
|
description: Unit test file naming and placement conventions
|
|
globs: tests/**/*.py
|
|
alwaysApply: false
|
|
---
|
|
|
|
# Test Organization
|
|
|
|
Unit tests use a one-to-one mapping between source modules and test files.
|
|
|
|
## Naming
|
|
|
|
- `python_repositories/<path>/<module>.py` → `tests/unit/<module>_test.py`
|
|
- Test files must end with `_test.py` (enforced by pre-commit `name-tests-test`)
|
|
|
|
## Placement
|
|
|
|
- Add tests to the existing `*_test.py` for the module under test
|
|
- Do not create cross-cutting test files (e.g. `structural_typing_test.py`); colocate with the relevant interface/adapter/config test file
|
|
- Shared fixtures → `tests/conftest.py`
|
|
- Module-specific helper classes → the matching test file
|
|
|
|
## Examples
|
|
|
|
```
|
|
json_repository_interface.py → tests/unit/json_repository_interface_test.py
|
|
redis_adapter.py → tests/unit/redis_adapter_test.py
|
|
redis_config.py → tests/unit/redis_config_test.py
|
|
```
|
|
|
|
Integration tests live under `tests/integration/<backend>/` with the same `_test.py` suffix.
|