2.9 KiB
2.9 KiB
Story 4.4: Post-Deployment Verification - Implementation Summary
Status: COMPLETE
Story points: 5
Overview
Implemented a simple CLI command to verify deployed URLs return 200 OK status.
Implementation
New CLI Command
Added verify-deployment command to src/cli/commands.py:
uv run python main.py verify-deployment --batch-id <id> [--sample N] [--timeout 10]
Options:
--batch-id, -b: Project/batch ID to verify (required)--sample, -s: Number of random URLs to check (optional, default: check all)--timeout, -t: Request timeout in seconds (default: 10)
Core Functionality
- Queries database for deployed articles in specified batch
- Filters articles with
deployed_urland status='deployed' - Makes HTTP GET requests to verify 200 OK status
- Supports checking all URLs or random sample
- Clear output showing success/failure for each URL
- Summary report with total checked, successful, and failed counts
Code Changes
- Modified:
src/cli/commands.py- Added imports:
requests,random - Added
verify_deployment()command function
- Added imports:
Acceptance Criteria Verification
- ✅ CLI command available:
verify-deployment --batch_id <id> - ✅ Takes batch ID as input
- ✅ Retrieves URLs for all articles in batch from database
- ✅ Makes HTTP GET requests to sample or all URLs
- ✅ Reports which URLs return 200 OK and which do not
- ✅ Clear, easy-to-read output
- ✅ Can be run manually after deployment
Usage Examples
Verify all URLs in a batch:
uv run python main.py verify-deployment --batch-id 10
Verify random sample of 5 URLs:
uv run python main.py verify-deployment --batch-id 10 --sample 5
Custom timeout:
uv run python main.py verify-deployment --batch-id 10 --timeout 30
Sample Output
Verifying deployment for batch: My Project (ID: 10)
Keyword: main keyword
Found 25 deployed articles
Checking all 25 URLs
✓ https://example.com/article-1.html
✓ https://example.com/article-2.html
✗ https://example.com/article-3.html (HTTP 404)
...
======================================================================
Verification Summary
======================================================================
Total checked: 25
Successful: 24
Failed: 1
Failed URLs:
https://example.com/article-3.html
Title: Article Three Title
Error: 404
======================================================================
Dependencies
requests==2.32.5(already in requirements.txt)
Testing
- Command help output verified
- Follows existing CLI command patterns
- Simple, focused implementation per user requirements
Notes
- No authentication required (read-only operation)
- Uses existing database repositories
- Minimal dependencies
- No freelance features added - strictly adheres to acceptance criteria
- Can be integrated into auto-deploy workflow in future if needed