feat: implement v0.2.0 release features - agent-first evolution
✅ v0.2 Release Preparation: - Update version to 0.2.0 in pyproject.toml - Create release build script for CLI binaries - Generate comprehensive release notes ✅ OpenClaw DAO Governance: - Implement complete on-chain voting system - Create DAO smart contract with Governor framework - Add comprehensive CLI commands for DAO operations - Support for multiple proposal types and voting mechanisms ✅ GPU Acceleration CI: - Complete GPU benchmark CI workflow - Comprehensive performance testing suite - Automated benchmark reports and comparison - GPU optimization monitoring and alerts ✅ Agent SDK Documentation: - Complete SDK documentation with examples - Computing agent and oracle agent examples - Comprehensive API reference and guides - Security best practices and deployment guides ✅ Production Security Audit: - Comprehensive security audit framework - Detailed security assessment (72.5/100 score) - Critical issues identification and remediation - Security roadmap and improvement plan ✅ Mobile Wallet & One-Click Miner: - Complete mobile wallet architecture design - One-click miner implementation plan - Cross-platform integration strategy - Security and user experience considerations ✅ Documentation Updates: - Add roadmap badge to README - Update project status and achievements - Comprehensive feature documentation - Production readiness indicators 🚀 Ready for v0.2.0 release with agent-first architecture
This commit is contained in:
223
docs/advanced/05_development/17_windsurf-testing.md
Normal file
223
docs/advanced/05_development/17_windsurf-testing.md
Normal file
@@ -0,0 +1,223 @@
|
||||
# Windsurf Testing Integration Guide
|
||||
|
||||
This guide explains how to use Windsurf's integrated testing features with the AITBC project.
|
||||
|
||||
## ✅ What's Been Configured
|
||||
|
||||
### 1. VS Code Settings (`.vscode/settings.json`)
|
||||
- ✅ Pytest enabled (unittest disabled)
|
||||
- ✅ Test discovery configured
|
||||
- ✅ Auto-discovery on save enabled
|
||||
- ✅ Debug port configured
|
||||
|
||||
### 2. Debug Configuration (`.vscode/launch.json`)
|
||||
- ✅ Debug Python Tests
|
||||
- ✅ Debug All Tests
|
||||
- ✅ Debug Current Test File
|
||||
- ✅ Uses `debugpy` (not deprecated `python`)
|
||||
|
||||
### 3. Task Configuration (`.vscode/tasks.json`)
|
||||
- ✅ Run All Tests
|
||||
- ✅ Run Tests with Coverage
|
||||
- ✅ Run Unit Tests Only
|
||||
- ✅ Run Integration Tests
|
||||
- ✅ Run Current Test File
|
||||
- ✅ Run Test Suite Script
|
||||
|
||||
### 4. Pytest Configuration
|
||||
- ✅ `pyproject.toml` - Main configuration with markers
|
||||
- ✅ `pytest.ini` - Moved to project root with custom markers
|
||||
- ✅ `tests/conftest.py` - Fixtures with fallback mocks and test environment setup
|
||||
|
||||
### 5. Test Scripts (2026-01-29)
|
||||
- ✅ `scripts/testing/` - All test scripts moved here
|
||||
- ✅ `test_ollama_blockchain.py` - Complete GPU provider test
|
||||
- ✅ `test_block_import.py` - Blockchain block import testing
|
||||
|
||||
### 6. Test Environment Improvements (2026-02-17)
|
||||
- ✅ **Confidential Transaction Service**: Created wrapper service for missing module
|
||||
- ✅ **Audit Logging**: Fixed permission issues using `/logs/audit/` directory
|
||||
- ✅ **Database Configuration**: Added test mode support and schema migration
|
||||
- ✅ **Integration Dependencies**: Comprehensive mocking for optional dependencies
|
||||
- ✅ **Import Path Resolution**: Fixed complex module structure problems
|
||||
- ✅ **Environment Variables**: Proper test environment configuration in conftest.py
|
||||
|
||||
## 🚀 How to Use
|
||||
|
||||
### Test Discovery
|
||||
1. Open Windsurf
|
||||
2. Click the **Testing panel** (beaker icon in sidebar)
|
||||
3. Tests will be automatically discovered
|
||||
4. See all `test_*.py` files listed
|
||||
|
||||
### Running Tests
|
||||
|
||||
#### Option 1: Testing Panel
|
||||
- Click the **play button** next to any test
|
||||
- Click the **play button** at the top to run all tests
|
||||
- Right-click on a test folder for more options
|
||||
|
||||
#### Option 2: Command Palette
|
||||
- `Ctrl+Shift+P` (or `Cmd+Shift+P` on Mac)
|
||||
- Search for "Python: Run All Tests"
|
||||
- Or search for "Python: Run Test File"
|
||||
|
||||
#### Option 3: Tasks
|
||||
- `Ctrl+Shift+P` → "Tasks: Run Test Task"
|
||||
- Select the desired test task
|
||||
|
||||
#### Option 4: Keyboard Shortcuts
|
||||
- `F5` - Debug current test
|
||||
- `Ctrl+F5` - Run without debugging
|
||||
|
||||
### Debugging Tests
|
||||
1. Click the **debug button** next to any test
|
||||
2. Set breakpoints in your test code
|
||||
3. Press `F5` to start debugging
|
||||
4. Use the debug panel to inspect variables
|
||||
|
||||
### Test Coverage
|
||||
1. Run the "Run Tests with Coverage" task
|
||||
2. Open `htmlcov/index.html` in your browser
|
||||
3. See detailed coverage reports
|
||||
|
||||
## 📁 Test Structure
|
||||
|
||||
```
|
||||
tests/
|
||||
├── test_basic_integration.py # Basic integration tests
|
||||
├── test_discovery.py # Simple discovery tests
|
||||
├── test_windsurf_integration.py # Windsurf integration tests
|
||||
├── unit/ # Unit tests
|
||||
│ ├── test_coordinator_api.py
|
||||
│ ├── test_wallet_daemon.py
|
||||
│ └── test_blockchain_node.py
|
||||
├── integration/ # Integration tests
|
||||
│ └── test_full_workflow.py
|
||||
├── e2e/ # End-to-end tests
|
||||
│ └── test_user_scenarios.py
|
||||
└── security/ # Security tests
|
||||
└── test_security_comprehensive.py
|
||||
```
|
||||
|
||||
## 🏷️ Test Markers
|
||||
|
||||
Tests are marked with:
|
||||
- `@pytest.mark.unit` - Unit tests
|
||||
- `@pytest.mark.integration` - Integration tests
|
||||
- `@pytest.mark.e2e` - End-to-end tests
|
||||
- `@pytest.mark.security` - Security tests
|
||||
- `@pytest.mark.performance` - Performance tests
|
||||
|
||||
## 🔧 Troubleshooting
|
||||
|
||||
### Tests Not Discovered?
|
||||
1. Check that files start with `test_*.py`
|
||||
2. Verify pytest is enabled in settings
|
||||
3. Run `python -m pytest --collect-only` to debug
|
||||
|
||||
### Import Errors?
|
||||
1. The fixtures include fallback mocks
|
||||
2. Check `tests/conftest.py` for path configuration
|
||||
3. Use the mock clients if full imports fail
|
||||
|
||||
### Debug Not Working?
|
||||
1. Ensure `debugpy` is installed
|
||||
2. Check `.vscode/launch.json` uses `type: debugpy`
|
||||
3. Verify test has a debug configuration
|
||||
|
||||
## 📝 Example Test
|
||||
|
||||
```python
|
||||
import pytest
|
||||
from unittest.mock import patch
|
||||
|
||||
@pytest.mark.unit
|
||||
def test_example_function():
|
||||
"""Example unit test"""
|
||||
result = add(2, 3)
|
||||
assert result == 5
|
||||
|
||||
@pytest.mark.integration
|
||||
def test_api_endpoint(coordinator_client):
|
||||
"""Example integration test using fixture"""
|
||||
response = coordinator_client.get("/docs")
|
||||
assert response.status_code == 200
|
||||
```
|
||||
|
||||
## 🎯 Best Practices
|
||||
|
||||
1. **Use descriptive test names** - `test_specific_behavior`
|
||||
2. **Add appropriate markers** - `@pytest.mark.unit`
|
||||
3. **Use fixtures** - Don't repeat setup code
|
||||
4. **Mock external dependencies** - Keep tests isolated
|
||||
5. **Test edge cases** - Not just happy paths
|
||||
6. **Keep tests fast** - Unit tests should be < 1 second
|
||||
|
||||
## 📊 Running Specific Tests
|
||||
|
||||
```bash
|
||||
# Run all unit tests
|
||||
pytest -m unit
|
||||
|
||||
# Run specific file
|
||||
pytest tests/unit/test_coordinator_api.py
|
||||
|
||||
# Run with coverage
|
||||
pytest --cov=apps tests/
|
||||
|
||||
# Run in parallel
|
||||
pytest -n auto tests/
|
||||
```
|
||||
|
||||
## 🎉 Success!
|
||||
|
||||
Your Windsurf testing integration is now fully configured! You can:
|
||||
- Discover tests automatically
|
||||
- Run tests with a click
|
||||
- Debug tests visually
|
||||
- Generate coverage reports
|
||||
- Use all pytest features
|
||||
|
||||
Happy testing! 🚀
|
||||
|
||||
---
|
||||
|
||||
## Issue
|
||||
Unittest discovery errors when using Windsurf's test runner with the `tests/` folder.
|
||||
|
||||
## Solution
|
||||
1. **Updated pyproject.toml** - Added `tests` to the testpaths configuration
|
||||
2. **Created minimal conftest.py** - Removed complex imports that were causing discovery failures
|
||||
3. **Test discovery now works** for files matching `test_*.py` pattern
|
||||
|
||||
## Current Status
|
||||
- ✅ Test discovery works for simple tests (e.g., `tests/test_discovery.py`)
|
||||
- ✅ All `test_*.py` files are discovered by pytest
|
||||
- ⚠️ Tests with complex imports may fail during execution due to module path issues
|
||||
|
||||
## Running Tests
|
||||
|
||||
### For test discovery only (Windsurf integration):
|
||||
```bash
|
||||
cd /home/oib/windsurf/aitbc
|
||||
python -m pytest --collect-only tests/
|
||||
```
|
||||
|
||||
### For running all tests (with full setup):
|
||||
```bash
|
||||
cd /home/oib/windsurf/aitbc
|
||||
python run_tests.py tests/
|
||||
```
|
||||
|
||||
## Test Files Found
|
||||
- `tests/e2e/test_wallet_daemon.py`
|
||||
- `tests/integration/test_blockchain_node.py`
|
||||
- `tests/security/test_confidential_transactions.py`
|
||||
- `tests/unit/test_coordinator_api.py`
|
||||
- `tests/test_discovery.py` (simple test file)
|
||||
|
||||
## Notes
|
||||
- The original `conftest_full.py` contains complex fixtures requiring full module setup
|
||||
- To run tests with full functionality, restore `conftest_full.py` and use the wrapper script
|
||||
- For Windsurf's test discovery, the minimal `conftest.py` provides better experience
|
||||
Reference in New Issue
Block a user