Add Step 4 fallback: generate key from folder name
- SerieScanner: generate key from folder when no key/data files exist - Handle edge cases: non-Latin characters, special symbols in folder names - anime_service: expose loading_status and loading_error fields - Update tests to match new fallback behavior
This commit is contained in:
@@ -552,8 +552,8 @@ class TestReadDataFromFile:
|
||||
assert result is not None
|
||||
assert result.key == "test-key"
|
||||
|
||||
def test_no_files_returns_none(self, mock_loader):
|
||||
"""Should return None when no key or data file exists."""
|
||||
def test_no_files_returns_serie_with_generated_key(self, mock_loader):
|
||||
"""Should return Serie with generated key when no key or data file exists."""
|
||||
import tempfile
|
||||
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
@@ -562,7 +562,10 @@ class TestReadDataFromFile:
|
||||
|
||||
scanner = SerieScanner(tmpdir, mock_loader)
|
||||
result = scanner._SerieScanner__read_data_from_file("Empty")
|
||||
assert result is None
|
||||
# Step 4 generates key from folder name when no files exist
|
||||
assert result is not None
|
||||
assert isinstance(result, Serie)
|
||||
assert result.key == "empty"
|
||||
|
||||
|
||||
class TestReinit:
|
||||
@@ -763,7 +766,7 @@ class TestDbLookupFallback:
|
||||
assert scanner.keyDict["rooster-fighter"].episodeDict == {1: [1, 2, 3]}
|
||||
|
||||
def test_db_lookup_returns_none_folder_skipped(self, mock_loader):
|
||||
"""When db_lookup returns None, the folder is skipped with a warning."""
|
||||
"""When db_lookup returns None, Step 4 fallback generates key from folder name."""
|
||||
import tempfile
|
||||
|
||||
with tempfile.TemporaryDirectory() as tmp_dir:
|
||||
@@ -773,10 +776,11 @@ class TestDbLookupFallback:
|
||||
with patch.object(scanner, 'get_total_to_scan', return_value=1):
|
||||
scanner.scan()
|
||||
|
||||
assert len(scanner.keyDict) == 0
|
||||
# Step 4 generates key from folder name, so keyDict is not empty
|
||||
assert len(scanner.keyDict) == 1
|
||||
|
||||
def test_db_lookup_exception_skips_folder(self, mock_loader):
|
||||
"""When db_lookup raises, the folder is skipped gracefully."""
|
||||
"""When db_lookup raises, Step 4 fallback generates key from folder name."""
|
||||
import tempfile
|
||||
|
||||
with tempfile.TemporaryDirectory() as tmp_dir:
|
||||
@@ -786,7 +790,8 @@ class TestDbLookupFallback:
|
||||
with patch.object(scanner, 'get_total_to_scan', return_value=1):
|
||||
scanner.scan() # should not raise
|
||||
|
||||
assert len(scanner.keyDict) == 0
|
||||
# Step 4 generates key from folder name, so keyDict is not empty
|
||||
assert len(scanner.keyDict) == 1
|
||||
|
||||
def test_db_lookup_warning_logged_when_no_files(
|
||||
self, mock_loader, caplog
|
||||
|
||||
Reference in New Issue
Block a user