goon/tests/test_siska_listing.py
goon-foss 494b15aedd
Some checks are pending
Backend tests / test (push) Waiting to run
fix(siska): kafelki z apostrofem w tytule i kilka osob w jednym nazwisku
Strona nie escapuje apostrofu w title/alt, wiec "Brenna's Mouths" urywal
dopasowanie i kafelek wypadal (3 z 18 na stronie). Pierwszy czlon alt z
kilkoma osobami ("A, B - Tytul") szedl jako jeden wykonawca.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 19:14:47 +02:00

41 lines
2.1 KiB
Python

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 = """
<li class='pure-u-1-3'><div class='back'><div class='thumb'><div class='rel'>
<a title=' Filling Chanel and Brenna's Mouths' href='https://siska.tv/video.php?videoID=226988' class='video-thumb'><span class='icon-hd'></span><span class='th_video_duration'>36 : 58</span><span class='th_photo_count'><span class='ico-photo'></span></span><img src='data:image/png;base64,R0lGOD' data-src='https://siska.tv/category/Deep-Throat/1049123346.jpg' width='640' height='360' alt='Chanel Camryn, Brenna McKenna - Filling Chanel and Brenna's Mouths' class='pure-img padding' /></a></div>
</div></div></li>
<li class='pure-u-1-3'><div class='back'><div class='thumb'><div class='rel'>
<a title='Plain Title' href='https://www.siska.video/video.php?videoID=226987' class='video-thumb'><span class='th_video_duration'>1 : 02 : 03</span><img data-src='https://siska.tv/category/Anal/1049123345.jpg' alt='Jane Doe - Plain Title - Some Studio' class='pure-img' /></a></div>
</div></div></li>
"""
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"