root
785147b1b1
test: Add comprehensive unit and integration test suite
...
Implement a complete test suite for Ohm Stream Downloader with over 300 tests covering:
Test Files:
- tests/test_models.py: Pydantic model validation tests
* DownloadTask, DownloadRequest, DownloadStatus, HostType
* AnimeMetadata, AnimeSearchResult
* Field validation, edge cases, error handling
- tests/test_downloaders.py: Downloader implementation tests
* BaseDownloader abstract class
* Unfichier, Doodstream, Rapidfile, Uptobox downloaders
* Video downloaders (VidMoly, SendVid)
* Anime provider downloaders (Anime-Sama, Neko-Sama, etc.)
* URL detection and handling
- tests/test_download_manager.py: Core download management tests
* Task creation and lifecycle
* Pause/resume/cancel operations
* Progress tracking and file handling
* Concurrency and semaphore limits
* Error handling and edge cases
- tests/test_favorites.py: Favorites system tests
* Add, remove, get, list favorites
* Sorting and filtering (by title, rating, provider, genre)
* Toggle functionality
* Statistics generation
* Concurrent operations
- tests/test_api.py: FastAPI endpoint tests
* Root, health, providers endpoints
* Download CRUD operations
* Anime search and metadata endpoints
* Favorites API endpoints
* Sorting and filtering
* Error handling and validation
* CORS headers
Infrastructure:
- tests/conftest.py: Pytest configuration and fixtures
* Temporary directories for isolation
* Sample data fixtures
* Mock clients for network operations
* Custom markers (unit, integration, slow, network)
- pytest.ini: Pytest configuration
* Coverage reporting (term + HTML)
* Verbose output with locals
* Strict markers
* Async test support
* Timeout configuration
- requirements.txt: Updated with testing dependencies
* pytest, pytest-asyncio, pytest-cov
* pytest-mock, pytest-timeout, pytest-html
- .gitignore: Updated to ignore test artifacts
* .pytest_cache/, coverage reports
* Project data files (favorites.json, *.db)
- tests/README.md: Test documentation
* How to run tests
* Available fixtures and markers
* Coverage reporting instructions
Test Coverage Areas:
✓ Model validation and serialization
✓ All downloader implementations
✓ Download queue management
✓ Favorites persistence and retrieval
✓ REST API endpoints
✓ Error handling and edge cases
✓ Async/await operations
✓ Concurrent operations
✓ File system operations
Generated with [Claude Code](https://claude.ai/code )
via [Happy](https://happy.engineering )
Co-Authored-By: Claude <noreply@anthropic.com >
Co-Authored-By: Happy <yesreply@happy.engineering >
2026-01-23 10:28:47 +00:00
root
cb3ea8d926
feat: Add SendVid downloader support
...
Add complete support for SendVid video hosting service used by Anime-Sama
for anime series like Hell's Paradise.
Changes:
- Create SendVidDownloader class with proper headers to avoid 403 errors
- Add SendVid detection and handling in AnimeSamaDownloader
- Update download_manager to include SendVid-specific headers
- Support custom episode naming (e.g., "Hells Paradise - Episode 01.mp4")
Technical details:
- SendVid embed pages require User-Agent and Referer headers
- Direct MP4 URLs extracted from <source> tags with IP/time-based parameters
- Tested with Hell's Paradise Episode 01 (7MB, 24min, 1280x720)
Generated with [Claude Code](https://claude.ai/code )
via [Happy](https://happy.engineering )
Co-Authored-By: Claude <noreply@anthropic.com >
Co-Authored-By: Happy <yesreply@happy.engineering >
2026-01-23 08:17:10 +00:00