Files
moma/src/test/test_filename_detection.py
T
sha 2e652ae58a feat: Add OpenScreen for directory input and validation
feat: Introduce poster rendering views with multiple engines

feat: Implement ASCII art poster renderer using PIL

feat: Create base class for poster renderers

feat: Add RichPixels renderer for high-quality terminal image display

feat: Implement Viu terminal image viewer renderer

feat: Add ProposedFilenameView for generating standardized filenames

feat: Create RenameConfirmScreen for renaming files with confirmation

feat: Implement SettingsScreen for configuring application settings

feat: Add custom PosterWidget for rendering poster images
2026-04-11 22:09:29 +03:00

68 lines
2.1 KiB
Python

#!/usr/bin/env python3
"""Test script for filename metadata detection with assertions"""
import sys
import os
import json
from pathlib import Path
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
from src.extractors.filename_extractor import FilenameExtractor
def test_detection():
# Load test cases from new dataset location
dataset_file = Path(__file__).parent / "datasets" / "filenames" / "filename_patterns.json"
with open(dataset_file, 'r', encoding='utf-8') as f:
data = json.load(f)
test_cases = data['test_cases']
print("Testing filename metadata detection with assertions...\n")
passed = 0
failed = 0
for i, case in enumerate(test_cases, 1):
filename = case['filename']
expected = case['expected']
testname = case.get('testname', f'Test {i}')
print(f"{testname}: {filename}")
extractor = FilenameExtractor(filename)
actual = {
"order": extractor.extract_order(),
"title": extractor.extract_title(),
"year": extractor.extract_year(),
"source": extractor.extract_source(),
"frame_class": extractor.extract_frame_class(),
"hdr": extractor.extract_hdr(),
"movie_db": extractor.extract_movie_db(),
"special_info": extractor.extract_special_info(),
"audio_langs": extractor.extract_audio_langs(),
"extension": extractor.extract_extension()
}
# Check each field
test_passed = True
for key, exp_value in expected.items():
act_value = actual[key]
if act_value != exp_value:
print(f" ❌ {key}: expected {exp_value!r}, got {act_value!r}")
test_passed = False
else:
print(f" ✅ {key}: {act_value!r}")
if test_passed:
print(" ✅ PASSED\n")
passed += 1
else:
print(" ❌ FAILED\n")
failed += 1
print(f"Results: {passed} passed, {failed} failed")
return failed == 0
if __name__ == '__main__':
success = test_detection()
sys.exit(0 if success else 1)