summaryrefslogtreecommitdiffstatshomepage
path: root/tests/scrapers
diff options
context:
space:
mode:
Diffstat (limited to 'tests/scrapers')
-rw-r--r--tests/scrapers/test_types.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/scrapers/test_types.py b/tests/scrapers/test_types.py
index ee6b802..33f9f89 100644
--- a/tests/scrapers/test_types.py
+++ b/tests/scrapers/test_types.py
@@ -2,6 +2,7 @@ from datetime import date
import pytest
+import hircine.enums as enums
from hircine.api.types import ScrapedComic
from hircine.scraper import ScrapeWarning
from hircine.scraper.types import (
@@ -130,3 +131,35 @@ def test_scraped_comic_silently_ignores_empty(item, attr, empty):
comic = ScrapedComic.from_generator(gen())
assert getattr(comic, attr) == empty
+
+
+@pytest.mark.parametrize(
+ "input,want",
+ [
+ ("EN", Language(value=enums.Language.EN)),
+ ("de", Language(value=enums.Language.DE)),
+ ],
+)
+def test_language_from_iso_639_3(input, want):
+ assert Language.from_iso_639_3(input) == want
+
+
+def test_language_from_iso_639_3_fails():
+ with pytest.raises(ScrapeWarning, match="Could not parse language code:"):
+ Language.from_iso_639_3("ENG")
+
+
+@pytest.mark.parametrize(
+ "input,want",
+ [
+ ("English", Language(value=enums.Language.EN)),
+ ("german", Language(value=enums.Language.DE)),
+ ],
+)
+def test_language_from_name(input, want):
+ assert Language.from_name(input) == want
+
+
+def test_language_from_name_fails():
+ with pytest.raises(ScrapeWarning, match="Could not parse language name:"):
+ Language.from_name("nonexistent")