1. Added 'account_id' and 'account_id_random' to searchable_fields for event_exhibit_tracking. 2. Updated tests/README.md with descriptions for the latest E2E test scripts (Demo Parity, Event Actions, Zoom).
57 lines
3.3 KiB
Markdown
57 lines
3.3 KiB
Markdown
# Aether API Test Suite
|
|
|
|
This directory contains the automated and manual test scripts for the Aether FastAPI backend. The suite is organized by execution environment and scope to ensure a reliable development workflow.
|
|
|
|
## 📁 Directory Structure
|
|
|
|
- **`unit/`**: Isolated logic tests. These use heavy mocking to bypass database and network requirements. Fast and safe to run in any environment.
|
|
- **`integration/`**: Local environment tests. These verify component interactions, often requiring a connection to the local MariaDB/Redis instance.
|
|
- **`e2e/` (End-to-End)**: Network-based API tests. these use the `requests` library to call the live API endpoints at `https://dev-api.oneskyit.com`.
|
|
- **`tools/`**: Utility scripts for administrative tasks like registry generation or Docker exploration.
|
|
- **`archive/`**: Legacy or deprecated scripts kept for historical reference.
|
|
|
|
## 📜 Standardized E2E Suite (`tests/e2e/`)
|
|
|
|
These consolidated scripts are the primary verification tool for the V3 API.
|
|
|
|
| Script | Description |
|
|
| :--- | :--- |
|
|
| `test_e2e_v3_search_engine.py` | **Primary Search**: Basic operators, Registry fields, Nested search, and Filter bypass. |
|
|
| `test_e2e_v3_auth_security.py` | **Primary Auth**: Site bootstrap, Passcode-to-JWT, and permission boundaries. |
|
|
| `test_e2e_v3_actions_file_lifecycle.py` | **Primary Actions**: Upload, Download (ID/Hash/Streaming), and physical Deletion. |
|
|
| `test_e2e_v3_data_store_lookup.py` | **V3 Parity**: Verifies code-based lookups and latency simulation. |
|
|
| `test_e2e_v3_event_vision_parity.py`| **Vision ID**: Verifies string-ID enforcement across event models. |
|
|
| `test_e2e_v3_cms_vision_parity.py`| **Vision ID**: Verifies string-ID enforcement across CMS (post/comment) models. |
|
|
| `test_e2e_v3_demo_parity.py` | **Demo Parity**: Comprehensive check for Badge, Exhibit, Tracking, and nested Journal Entries. |
|
|
| `test_e2e_v3_action_event_file.py` | **Event Actions**: Specialized atomic upload and linking for event files. |
|
|
| `test_e2e_v3_action_zoom.py` | **Zoom Integration**: Verifies OAuth and ticket sync logic for Zoom Events. |
|
|
| `test_e2e_v3_accounts.py` | CRUD verification for the core Account object. |
|
|
| `test_e2e_v3_schema.py` | Network verification of the V3 metadata discovery endpoint. |
|
|
| `test_e2e_agent_bridge.py` | Verifies container diagnostics and log streaming routes. |
|
|
| `cleanup_test_files.py` | Utility to purge E2E artifacts from physical storage. |
|
|
|
|
---
|
|
|
|
## 🛠️ Shared Helpers
|
|
|
|
- **`mock_config_helper.py`**: A critical utility that mocks `app.config.settings` before other modules are imported. Use this in unit tests.
|
|
|
|
---
|
|
|
|
## 🧹 Maintenance Policy
|
|
|
|
1. **Standardization**: All E2E tests should use the standard Agent API Key (`PMM4n50teUCaOMMTN8qOJA`) and provide clean `[✅ PASS]` or `[❌ FAIL]` output.
|
|
2. **Archiving**: When a new specialized test is created, check if it can be combined into one of the "Primary" suites above. If so, combine and move the original to `archive/`.
|
|
3. **Cleanup**: Always use `tests/e2e/cleanup_test_files.py` after running file lifecycle tests.
|
|
|
|
---
|
|
|
|
## 🚀 How to Run
|
|
|
|
### Recommended: Use the project virtual environment
|
|
```bash
|
|
./environment/bin/python3 tests/e2e/test_e2e_v3_search_engine.py
|
|
```
|
|
|
|
### Path Requirements
|
|
Always run test scripts from the **project root** directory. Most scripts include `sys.path.append(os.getcwd())` to ensure local imports work correctly. |