mirror of
https://github.com/shadoll/moma.git
synced 2026-08-28 11:33:25 +00:00
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
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
#!/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)
|
||||
Reference in New Issue
Block a user