from app.connectors.direct_scrapers import siska
from app.connectors.direct_scrapers.siska import SiskaScraper
# Dwa kafelki jak na siska.tv 2026-09-27; pierwszy z nieescapowanym apostrofem.
_LISTING = """
"""
class _Res:
text = _LISTING
def _crawl(monkeypatch):
monkeypatch.setattr(siska, "browser_get", lambda url, timeout=None: _Res())
monkeypatch.setattr(siska, "compute_thumbnail_phash", lambda *a, **k: None)
return SiskaScraper().crawl_page(1)
def test_apostrophe_in_title_keeps_tile(monkeypatch):
scenes = _crawl(monkeypatch)
assert [s.url for s in scenes] == [
"https://siska.tv/video.php?videoID=226988",
"https://siska.tv/video.php?videoID=226987",
]
assert scenes[0].title == "Filling Chanel and Brenna's Mouths"
assert scenes[0].duration_sec == 36 * 60 + 58
def test_comma_separated_performers_are_split(monkeypatch):
first, second = _crawl(monkeypatch)
assert [p.name for p in first.performers] == ["Chanel Camryn", "Brenna McKenna"]
# dwa czlony alt = osoby + tytul, studia brak
assert first.studio is None
assert [p.name for p in second.performers] == ["Jane Doe"]
assert second.studio.name == "Some Studio"