Files
aitbc/docs/advanced/05_development/17_windsurf-testing.md
AITBC System dda703de10 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
2026-03-18 20:17:23 +01:00

6.7 KiB

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

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

# 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):

cd /home/oib/windsurf/aitbc
python -m pytest --collect-only tests/

For running all tests (with full setup):

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