- Changed NetworkName from 'chorus_default' to 'chorus_net' - This matches the actual network 'CHORUS_chorus_net' (service prefix added automatically) - Fixes discovered_count:0 issue - now successfully discovering all 25 agents - Updated IMPLEMENTATION-SUMMARY with deployment status Result: All 25 CHORUS agents now discovered successfully via Docker Swarm API 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
7.1 KiB
WHOOSH Council Artifact Tests
Overview
This directory contains integration tests for verifying that WHOOSH councils are properly generating project artifacts through the CHORUS agent collaboration system.
Test Coverage
The test_council_artifacts.py script performs end-to-end testing of:
- WHOOSH Health Check - Verifies WHOOSH API is accessible
- Project Creation - Creates a test project with council formation
- Council Formation - Verifies council was created with correct structure
- Role Claiming - Waits for CHORUS agents to claim council roles
- Artifact Fetching - Retrieves artifacts produced by the council
- Content Validation - Verifies artifact content is complete and valid
- Cleanup - Removes test data (optional)
Requirements
pip install requests
Or install from requirements file:
pip install -r requirements.txt
Usage
Basic Test Run
python test_council_artifacts.py
With Verbose Output
python test_council_artifacts.py --verbose
Custom WHOOSH URL
python test_council_artifacts.py --whoosh-url http://whoosh.example.com:8080
Extended Wait Time for Role Claims
python test_council_artifacts.py --wait-time 60
Skip Cleanup (Keep Test Project)
python test_council_artifacts.py --skip-cleanup
Full Example
python test_council_artifacts.py \
--whoosh-url http://localhost:8800 \
--verbose \
--wait-time 45 \
--skip-cleanup
Command-Line Options
| Option | Description | Default |
|---|---|---|
--whoosh-url URL |
WHOOSH base URL | http://localhost:8800 |
--verbose, -v |
Enable detailed output | False |
--skip-cleanup |
Don't delete test project | False |
--wait-time SECONDS |
Max wait for role claims | 30 |
Expected Output
Successful Test Run
======================================================================
COUNCIL ARTIFACT GENERATION TEST SUITE
======================================================================
[14:23:45] HEADER: TEST 1: Checking WHOOSH health...
[14:23:45] SUCCESS: ✓ WHOOSH is healthy and accessible
[14:23:45] HEADER: TEST 2: Creating test project...
[14:23:46] SUCCESS: ✓ Project created successfully: abc-123-def
[14:23:46] INFO: Council ID: abc-123-def
[14:23:46] HEADER: TEST 3: Verifying council formation...
[14:23:46] SUCCESS: ✓ Council found: abc-123-def
[14:23:46] INFO: Status: forming
[14:23:46] HEADER: TEST 4: Waiting for agent role claims (max 30s)...
[14:24:15] SUCCESS: ✓ Council activated! All roles claimed
[14:24:15] HEADER: TEST 5: Fetching council artifacts...
[14:24:15] SUCCESS: ✓ Found 3 artifact(s)
Artifact 1:
ID: art-001
Type: architecture_document
Name: System Architecture Design
Status: approved
Produced by: chorus-agent-002
Produced at: 2025-10-06T14:24:10Z
[14:24:15] HEADER: TEST 6: Verifying artifact content...
[14:24:15] SUCCESS: ✓ All 3 artifact(s) are valid
[14:24:15] HEADER: TEST 7: Cleaning up test project...
[14:24:16] SUCCESS: ✓ Project deleted successfully: abc-123-def
======================================================================
TEST SUMMARY
======================================================================
Total Tests: 7
Passed: 7 ✓✓✓✓✓✓✓
Success Rate: 100.0%
Test Failure Example
[14:23:46] HEADER: TEST 5: Fetching council artifacts...
[14:23:46] WARNING: ⚠ No artifacts found yet
[14:23:46] INFO: This is normal - councils need time to produce artifacts
======================================================================
TEST SUMMARY
======================================================================
Total Tests: 7
Passed: 6 ✓✓✓✓✓✓
Failed: 1 ✗
Success Rate: 85.7%
Test Scenarios
Scenario 1: Fresh Deployment Test
Tests a newly deployed WHOOSH/CHORUS system:
python test_council_artifacts.py --wait-time 60 --verbose
Expected: Role claiming may take longer on first run as agents initialize.
Scenario 2: Production Readiness Test
Quick validation that production system is working:
python test_council_artifacts.py --whoosh-url https://whoosh.production.com
Expected: All tests should pass in < 1 minute.
Scenario 3: Development/Debug Test
Keep test project for manual inspection:
python test_council_artifacts.py --skip-cleanup --verbose
Expected: Project remains in database for debugging.
Troubleshooting
Test 1 Fails: WHOOSH Not Accessible
Problem: Cannot connect to WHOOSH API
Solutions:
- Verify WHOOSH is running:
docker service ps CHORUS_whoosh - Check URL is correct:
--whoosh-url http://localhost:8800 - Check firewall/network settings
Test 4 Fails: Role Claims Timeout
Problem: CHORUS agents not claiming roles
Solutions:
- Increase wait time:
--wait-time 60 - Check CHORUS agents are running:
docker service ps CHORUS_chorus - Check agent logs:
docker service logs CHORUS_chorus - Verify P2P discovery is working
Test 5 Fails: No Artifacts Found
Problem: Council formed but no artifacts produced
Solutions:
- This is expected initially - councils need time to collaborate
- Check council status in UI or database
- Verify CHORUS agents have proper capabilities configured
- Check agent logs for artifact production errors
Integration with CI/CD
GitHub Actions Example
name: Test Council Artifacts
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Start WHOOSH
run: docker-compose up -d
- name: Wait for services
run: sleep 30
- name: Run tests
run: |
cd tests
python test_council_artifacts.py --verbose
Jenkins Example
stage('Test Council Artifacts') {
steps {
sh '''
cd tests
python test_council_artifacts.py \
--whoosh-url http://whoosh-test:8080 \
--wait-time 60 \
--verbose
'''
}
}
Test Data
The test creates a temporary project using:
- Repository:
https://gitea.chorus.services/tony/test-council-project - Project Name: Auto-generated from repository
- Council: Automatically formed with 8 core roles
All test data is cleaned up unless --skip-cleanup is specified.
Exit Codes
0- All tests passed1- One or more tests failed- Non-zero - System error occurred
Logging
Test logs include:
- Timestamp for each action
- Color-coded output (INFO/SUCCESS/WARNING/ERROR)
- Request/response details in verbose mode
- Complete artifact metadata
Future Enhancements
- Test multiple concurrent project creations
- Verify artifact versioning
- Test artifact approval workflow
- Performance benchmarking
- Load testing with many councils
- WebSocket event stream validation
- Agent collaboration pattern verification
Support
For issues or questions:
- Check logs:
docker service logs CHORUS_whoosh - Review integration status:
COUNCIL_AGENT_INTEGRATION_STATUS.md - Open issue on project repository