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"