mirror of
https://github.com/shadoll/moma.git
synced 2026-08-28 03:27:34 +00:00
- Introduced tests for various formatter classes including TextFormatter, DurationFormatter, SizeFormatter, DateFormatter, and more to ensure correct formatting behavior. - Added tests for service classes such as FileTreeService, MetadataService, and RenameService, covering directory validation, metadata extraction, and file renaming functionalities. - Implemented utility tests for LanguageCodeExtractor, PatternExtractor, and FrameClassMatcher to validate their extraction and matching capabilities. - Updated test cases to use datasets for better maintainability and clarity. - Enhanced error handling tests to ensure robustness against missing or invalid data.
103 lines
3.0 KiB
Python
103 lines
3.0 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Script to generate empty media test files from filename_patterns.json dataset.
|
|
|
|
Usage:
|
|
uv run python renamer/test/fill_sample_mediafiles.py
|
|
|
|
This script:
|
|
1. Creates the sample_mediafiles directory if it doesn't exist
|
|
2. Generates empty files for all filenames in filename_patterns.json
|
|
3. Reports statistics on files created
|
|
|
|
The sample_mediafiles directory should be added to .gitignore as these are
|
|
generated files used only for testing file system operations.
|
|
"""
|
|
|
|
import json
|
|
from pathlib import Path
|
|
|
|
|
|
def create_sample_mediafiles():
|
|
"""Create empty media files from filename_patterns.json dataset."""
|
|
|
|
# Load filename patterns dataset
|
|
dataset_file = Path(__file__).parent / 'datasets' / 'filenames' / 'filename_patterns.json'
|
|
|
|
if not dataset_file.exists():
|
|
print(f"❌ Error: Dataset file not found: {dataset_file}")
|
|
return False
|
|
|
|
with open(dataset_file, 'r', encoding='utf-8') as f:
|
|
data = json.load(f)
|
|
|
|
# Create sample_mediafiles directory
|
|
mediafiles_dir = Path(__file__).parent / 'datasets' / 'sample_mediafiles'
|
|
mediafiles_dir.mkdir(parents=True, exist_ok=True)
|
|
|
|
print(f"Creating sample media files in: {mediafiles_dir}")
|
|
print(f"Test cases in dataset: {len(data['test_cases'])}")
|
|
print()
|
|
|
|
# Create empty files
|
|
created = 0
|
|
skipped = 0
|
|
errors = []
|
|
|
|
for case in data['test_cases']:
|
|
filename = case['filename']
|
|
filepath = mediafiles_dir / filename
|
|
|
|
try:
|
|
if filepath.exists():
|
|
skipped += 1
|
|
else:
|
|
# Create empty file
|
|
filepath.touch()
|
|
created += 1
|
|
print(f" ✅ Created: {filename}")
|
|
except Exception as e:
|
|
errors.append((filename, str(e)))
|
|
print(f" ❌ Error creating {filename}: {e}")
|
|
|
|
# Summary
|
|
print()
|
|
print("=" * 70)
|
|
print("Summary:")
|
|
print(f" Created: {created} files")
|
|
print(f" Skipped (already exist): {skipped} files")
|
|
print(f" Errors: {len(errors)} files")
|
|
print(f" Total in dataset: {len(data['test_cases'])} files")
|
|
print()
|
|
|
|
if errors:
|
|
print("Errors encountered:")
|
|
for filename, error in errors:
|
|
print(f" - {filename}: {error}")
|
|
print()
|
|
|
|
# Check for files in directory not in dataset
|
|
all_files = {f.name for f in mediafiles_dir.glob('*') if f.is_file()}
|
|
dataset_files = {case['filename'] for case in data['test_cases']}
|
|
extra_files = all_files - dataset_files
|
|
|
|
if extra_files:
|
|
print(f"⚠️ Warning: {len(extra_files)} files in directory not in dataset:")
|
|
for f in sorted(extra_files):
|
|
print(f" - {f}")
|
|
print()
|
|
|
|
print("✅ Sample media files generation complete!")
|
|
print()
|
|
print("Next steps:")
|
|
print("1. Add 'renamer/test/datasets/sample_mediafiles/' to .gitignore")
|
|
print("2. Run tests to verify files are accessible")
|
|
|
|
return True
|
|
|
|
|
|
if __name__ == '__main__':
|
|
import sys
|
|
success = create_sample_mediafiles()
|
|
sys.exit(0 if success else 1)
|