- 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>
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