"""Tests for core data models.""" import pytest from datetime import datetime from pathlib import Path from src.models import ImageMetadata, DownloadTask, PlaybackState, TaskStatus def test_image_metadata_creation(): """Test ImageMetadata dataclass creation.""" now = datetime.now() metadata = ImageMetadata( date=now, time_sequence="120000", filename="20251219_120000_4096_0211.jpg", local_path=Path("data/2025/12/19/20251219_120000_4096_0211.jpg"), file_size=1024000, download_timestamp=now, url="https://sdo.gsfc.nasa.gov/assets/img/browse/2025/12/19/20251219_120000_4096_0211.jpg" ) assert metadata.date == now assert metadata.time_sequence == "120000" assert metadata.filename == "20251219_120000_4096_0211.jpg" assert metadata.file_size == 1024000 def test_download_task_defaults(): """Test DownloadTask default values.""" task = DownloadTask( url="https://example.com/image.jpg", target_path=Path("data/image.jpg") ) assert task.retry_count == 0 assert task.status == TaskStatus.PENDING assert task.error_message is None def test_playback_state_defaults(): """Test PlaybackState default values.""" state = PlaybackState() assert state.current_frame == 0 assert state.total_frames == 0 assert state.is_playing is False assert state.playback_speed == 1.0 assert state.selected_date_range is None