test
This commit is contained in:
211
.windsurf/workflows/test.md
Normal file
211
.windsurf/workflows/test.md
Normal file
@@ -0,0 +1,211 @@
|
||||
---
|
||||
description: Test and debug workflow for AITBC platform
|
||||
auto_execution_mode: 3
|
||||
---
|
||||
|
||||
# Test and Debug Workflow
|
||||
|
||||
This workflow helps you run tests and debug issues in the AITBC platform.
|
||||
|
||||
## Steps
|
||||
|
||||
### 1. Run All Integration Tests
|
||||
```bash
|
||||
# Run all integration tests
|
||||
cd /home/oib/windsurf/aitbc
|
||||
python -m pytest tests/integration/test_full_workflow.py -v --no-cov
|
||||
|
||||
# Run with detailed output
|
||||
python -m pytest tests/integration/test_full_workflow.py -v --no-cov -s --tb=short
|
||||
```
|
||||
|
||||
### 2. Run Specific Test Classes
|
||||
```bash
|
||||
# Test wallet payment flow
|
||||
python -m pytest tests/integration/test_full_workflow.py::TestWalletToCoordinatorIntegration::test_job_payment_flow -v --no-cov -s
|
||||
|
||||
# Test marketplace integration
|
||||
python -m pytest tests/integration/test_full_workflow.py::TestMarketplaceIntegration::test_service_listing_and_booking -v --no-cov -s
|
||||
|
||||
# Test security integration
|
||||
python -m pytest tests/integration/test_full_workflow.py::TestSecurityIntegration::test_end_to_end_encryption -v --no-cov -s
|
||||
```
|
||||
|
||||
### 3. Debug Test Failures
|
||||
```bash
|
||||
# Run with pdb on failure
|
||||
python -m pytest tests/integration/test_full_workflow.py -v --no-cov --pdb
|
||||
|
||||
# Run with verbose output and show local variables
|
||||
python -m pytest tests/integration/test_full_workflow.py -v --no-cov -s --tb=long
|
||||
|
||||
# Stop on first failure
|
||||
python -m pytest tests/integration/test_full_workflow.py -v --no-cov -x
|
||||
```
|
||||
|
||||
### 4. Check Test Coverage
|
||||
```bash
|
||||
# Run tests with coverage
|
||||
python -m pytest tests/integration/test_full_workflow.py --cov=apps/coordinator-api --cov-report=html
|
||||
|
||||
# View coverage report
|
||||
open htmlcov/index.html
|
||||
```
|
||||
|
||||
### 5. Debug Services
|
||||
```bash
|
||||
# Check if coordinator API is running
|
||||
curl http://localhost:18000/v1/health
|
||||
|
||||
# Check if wallet daemon is running
|
||||
curl http://localhost:20000/api/v1/health
|
||||
|
||||
# Check if exchange is running
|
||||
curl http://localhost:23000/api/health
|
||||
|
||||
# Check if marketplace is accessible
|
||||
curl https://aitbc.bubuit.net/marketplace
|
||||
```
|
||||
|
||||
### 6. View Logs
|
||||
```bash
|
||||
# View coordinator API logs
|
||||
docker logs aitbc-coordinator-api -f
|
||||
|
||||
# View wallet daemon logs
|
||||
docker logs aitbc-wallet-daemon -f
|
||||
|
||||
# View exchange logs
|
||||
docker logs aitbc-exchange -f
|
||||
```
|
||||
|
||||
### 7. Test Payment Flow Manually
|
||||
```bash
|
||||
# Create a job with AITBC payment
|
||||
curl -X POST http://localhost:18000/v1/jobs \
|
||||
-H "X-Api-Key: REDACTED_CLIENT_KEY" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"payload": {
|
||||
"job_type": "ai_inference",
|
||||
"parameters": {"model": "gpt-4", "prompt": "Test"}
|
||||
},
|
||||
"payment_amount": 100,
|
||||
"payment_currency": "AITBC"
|
||||
}'
|
||||
|
||||
# Check payment status
|
||||
curl http://localhost:18000/v1/jobs/{job_id}/payment \
|
||||
-H "X-Api-Key: REDACTED_CLIENT_KEY"
|
||||
```
|
||||
|
||||
### 8. Common Debug Commands
|
||||
```bash
|
||||
# Check Python environment
|
||||
python --version
|
||||
pip list | grep -E "(fastapi|sqlmodel|pytest|httpx)"
|
||||
|
||||
# Check database connection
|
||||
psql -h localhost -U aitbc -d aitbc -c "\dt"
|
||||
|
||||
# Check running services
|
||||
ps aux | grep -E "(coordinator|wallet|exchange)"
|
||||
|
||||
# Check network connectivity
|
||||
netstat -tlnp | grep -E "(18000|20000|23000)"
|
||||
```
|
||||
|
||||
### 9. Performance Testing
|
||||
```bash
|
||||
# Run tests with performance profiling
|
||||
python -m pytest tests/integration/test_full_workflow.py --profile
|
||||
|
||||
# Load test payment endpoints
|
||||
ab -n 100 -c 10 http://localhost:18000/v1/health
|
||||
```
|
||||
|
||||
### 10. Clean Test Environment
|
||||
```bash
|
||||
# Clean pytest cache
|
||||
rm -rf .pytest_cache
|
||||
|
||||
# Clean coverage files
|
||||
rm -rf htmlcov .coverage
|
||||
|
||||
# Reset test database
|
||||
dropdb aitbc_test && createdb aitbc_test
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
|
||||
1. **Import Error: No module named 'app.schemas.payments'**
|
||||
- The test is using mock client (expected in CI)
|
||||
- Real client requires full environment setup
|
||||
|
||||
2. **ModuleNotFoundError: No module named 'requests'**
|
||||
- Install requests: `pip install requests`
|
||||
- Check if in correct Python environment
|
||||
|
||||
3. **Connection Refused Errors**
|
||||
- Check if services are running on expected ports
|
||||
- Verify docker containers are up: `docker ps`
|
||||
|
||||
4. **Payment Test Fails**
|
||||
- Ensure wallet daemon is running
|
||||
- Check exchange API is accessible
|
||||
- Verify AITBC token balance
|
||||
|
||||
5. **Marketplace Test Fails**
|
||||
- Check internet connectivity
|
||||
- Verify marketplace URL is accessible
|
||||
- May need to skip if network issues
|
||||
|
||||
### Debug Tips
|
||||
|
||||
1. Use `--pdb` to drop into debugger on failure
|
||||
2. Use `-s` to see print statements
|
||||
3. Use `--tb=long` for detailed tracebacks
|
||||
4. Use `-x` to stop on first failure
|
||||
5. Check logs for service errors
|
||||
6. Verify environment variables are set
|
||||
|
||||
## Test Categories
|
||||
|
||||
### Unit Tests
|
||||
```bash
|
||||
# Run unit tests only
|
||||
python -m pytest tests/unit/ -v
|
||||
```
|
||||
|
||||
### Integration Tests
|
||||
```bash
|
||||
# Run integration tests only
|
||||
python -m pytest tests/integration/ -v
|
||||
```
|
||||
|
||||
### End-to-End Tests
|
||||
```bash
|
||||
# Run e2e tests only
|
||||
python -m pytest tests/e2e/ -v
|
||||
```
|
||||
|
||||
### Security Tests
|
||||
```bash
|
||||
# Run security tests
|
||||
python -m pytest tests/security/ -v
|
||||
```
|
||||
|
||||
## Quick Test Commands
|
||||
|
||||
```bash
|
||||
# Quick test run
|
||||
pytest tests/ -x -q
|
||||
|
||||
# Full test suite
|
||||
pytest tests/ --cov
|
||||
|
||||
# Debug specific test
|
||||
pytest tests/integration/test_full_workflow.py::TestWalletToCoordinatorIntegration::test_job_payment_flow -v -s
|
||||
```
|
||||
Reference in New Issue
Block a user