#!/usr/bin/env python3 """Test script for MediaInfo frame class detection by resolution""" import json import pytest from unittest.mock import MagicMock import sys import os sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) from renamer.extractors.mediainfo_extractor import MediaInfoExtractor test_cases = json.load(open('renamer/test/test_mediainfo_frame_class.json')) @pytest.mark.parametrize("test_case", test_cases, ids=[tc['testname'] for tc in test_cases]) def test_frame_class_detection(test_case): """Test frame class detection for various resolutions""" testname = test_case['testname'] width, height = test_case['resolution'] interlaced = test_case['interlaced'] expected = test_case['expected_frame_class'] # Create a mock MediaInfoExtractor extractor = MagicMock(spec=MediaInfoExtractor) from pathlib import Path extractor.file_path = Path(f"test_{testname}") # Set a unique file_path for caching # Mock the video_tracks mock_track = MagicMock() mock_track.height = height mock_track.width = width mock_track.interlaced = 'Yes' if interlaced else 'No' extractor.video_tracks = [mock_track] # Test the method actual = MediaInfoExtractor.extract_frame_class(extractor) assert actual == expected, f"{testname}: expected {expected}, got {actual}"