add cache tests and add cache dedup
All checks were successful
ci/woodpecker/push/tests Pipeline was successful
All checks were successful
ci/woodpecker/push/tests Pipeline was successful
This commit is contained in:
parent
a001b18d6e
commit
70b56a2d55
2 changed files with 80 additions and 1 deletions
|
@ -44,8 +44,10 @@ class CacheDB:
|
|||
def add_chapter(self, chapter: str) -> None:
|
||||
log.info(f"Adding chapter to cache-db: {chapter}")
|
||||
self.db_uuid_chapters.append(chapter)
|
||||
# dedup entries
|
||||
updated_chapters = list({*self.db_uuid_chapters})
|
||||
try:
|
||||
self.db_data[self.db_key]["chapters"] = self.db_uuid_chapters
|
||||
self.db_data[self.db_key]["chapters"] = sorted(updated_chapters)
|
||||
self.db_path.write_text(json.dumps(self.db_data, indent=4), encoding="utf8")
|
||||
except Exception as exc:
|
||||
log.error("Can't write cache-db")
|
||||
|
|
77
tests/test_06_cache.py
Normal file
77
tests/test_06_cache.py
Normal file
|
@ -0,0 +1,77 @@
|
|||
import json
|
||||
from pathlib import Path
|
||||
|
||||
from mangadlp.cache import CacheDB
|
||||
|
||||
|
||||
def test_cache_creation():
|
||||
cache_file = Path("cache.json")
|
||||
cache = CacheDB(cache_file, "abc", "en")
|
||||
|
||||
assert cache_file.exists() and cache_file.read_text(encoding="utf8") == "{}"
|
||||
cache_file.unlink()
|
||||
|
||||
|
||||
def test_cache_insert():
|
||||
cache_file = Path("cache.json")
|
||||
cache = CacheDB(cache_file, "abc", "en")
|
||||
cache.add_chapter("1")
|
||||
cache.add_chapter("2")
|
||||
|
||||
cache_data = json.loads(cache_file.read_text(encoding="utf8"))
|
||||
|
||||
assert cache_data["abc__en"]["chapters"] == ["1", "2"]
|
||||
cache_file.unlink()
|
||||
|
||||
|
||||
def test_cache_update():
|
||||
cache_file = Path("cache.json")
|
||||
cache = CacheDB(cache_file, "abc", "en")
|
||||
cache.add_chapter("1")
|
||||
cache.add_chapter("2")
|
||||
|
||||
cache_data = json.loads(cache_file.read_text(encoding="utf8"))
|
||||
assert cache_data["abc__en"]["chapters"] == ["1", "2"]
|
||||
|
||||
cache.add_chapter("3")
|
||||
|
||||
cache_data = json.loads(cache_file.read_text(encoding="utf8"))
|
||||
assert cache_data["abc__en"]["chapters"] == ["1", "2", "3"]
|
||||
|
||||
cache_file.unlink()
|
||||
|
||||
|
||||
def test_cache_multiple():
|
||||
cache_file = Path("cache.json")
|
||||
cache1 = CacheDB(cache_file, "abc", "en")
|
||||
cache1.add_chapter("1")
|
||||
cache1.add_chapter("2")
|
||||
|
||||
cache2 = CacheDB(cache_file, "def", "en")
|
||||
cache2.add_chapter("8")
|
||||
cache2.add_chapter("9")
|
||||
|
||||
cache_data = json.loads(cache_file.read_text(encoding="utf8"))
|
||||
|
||||
assert cache_data["abc__en"]["chapters"] == ["1", "2"]
|
||||
assert cache_data["def__en"]["chapters"] == ["8", "9"]
|
||||
|
||||
cache_file.unlink()
|
||||
|
||||
|
||||
def test_cache_lang():
|
||||
cache_file = Path("cache.json")
|
||||
cache1 = CacheDB(cache_file, "abc", "en")
|
||||
cache1.add_chapter("1")
|
||||
cache1.add_chapter("2")
|
||||
|
||||
cache2 = CacheDB(cache_file, "abc", "de")
|
||||
cache2.add_chapter("8")
|
||||
cache2.add_chapter("9")
|
||||
|
||||
cache_data = json.loads(cache_file.read_text(encoding="utf8"))
|
||||
|
||||
assert cache_data["abc__en"]["chapters"] == ["1", "2"]
|
||||
assert cache_data["abc__de"]["chapters"] == ["8", "9"]
|
||||
|
||||
cache_file.unlink()
|
Loading…
Reference in a new issue