211 lines
5.0 KiB
Markdown
211 lines
5.0 KiB
Markdown
---
|
|
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
|
|
``` |