Cliquenabend: Release-Feld der Spieldetailseiten parsen (echtes Erscheinungsjahr statt Update-Datum)
This commit is contained in:
@@ -124,10 +124,21 @@ CLIQUENABEND_SEITE = """
|
||||
<tr><td>26.09.25</td><td>Piatnik Profil ,</td><td>6-G200</td>
|
||||
<td><div><a href="/spiele/790700-Elixirus.html"><b>Elixirus</b></a></div></td>
|
||||
<td>Dickie Chapin</td></tr>
|
||||
<tr><td>01.10.25</td><td>ohne Link</td><td>—</td><td>Nur Texttitel</td><td>Unbekannt</td></tr>
|
||||
<tr><td>01.10.25</td><td>ohne Link</td><td>—</td><td>Nur Texttitel</td><td>Unbekannt</td></tr>
|
||||
</table>
|
||||
"""
|
||||
|
||||
CLIQUENABEND_DETAIL_1 = """
|
||||
<html><body>
|
||||
<b>Release:</b><br>
|
||||
2025 <br>
|
||||
<b>Anzahl der Spieler:</b><br>
|
||||
1 bis 4 Spieler<br>
|
||||
</body></html>
|
||||
"""
|
||||
|
||||
CLIQUENABEND_DETAIL_FEHLT = "<html><body><p>Seite ohne Release-Feld</p></body></html>"
|
||||
|
||||
|
||||
class FakeUhr:
|
||||
"""Steuerbare Monoton-Uhr."""
|
||||
@@ -306,7 +317,11 @@ def test_parser_spielessen_nutzt_json_api_endpunkt():
|
||||
def test_parser_cliquenabend_liest_tabellenspalten():
|
||||
adapter, _ = _adapter(
|
||||
CliquenabendQuelle,
|
||||
{"https://www.cliquenabend.de/events/130000-SPIEL-2025-Essen.html": CLIQUENABEND_SEITE},
|
||||
{
|
||||
"https://www.cliquenabend.de/events/130000-SPIEL-2025-Essen.html": CLIQUENABEND_SEITE,
|
||||
"https://www.cliquenabend.de/spiele/790610-Galactic-Cruise.html": CLIQUENABEND_DETAIL_1,
|
||||
"https://www.cliquenabend.de/spiele/790700-Elixirus.html": CLIQUENABEND_DETAIL_FEHLT,
|
||||
},
|
||||
)
|
||||
ergebnis = adapter.sammle()
|
||||
|
||||
@@ -314,9 +329,26 @@ def test_parser_cliquenabend_liest_tabellenspalten():
|
||||
erster = ergebnis.treffer[0]
|
||||
assert erster.verlag == "Dranda Games, PD Verlag"
|
||||
assert erster.autor == "T.K. King und Koltin Thompson"
|
||||
assert erster.erscheinungsdatum_oder_quartal == "15.10.25"
|
||||
# Release-Feld der Detailseite schlägt das Update-Datum der Tabelle:
|
||||
assert erster.erscheinungsdatum_oder_quartal == "2025"
|
||||
assert erster.quellen_url == "https://www.cliquenabend.de/spiele/790610-Galactic-Cruise.html"
|
||||
assert ergebnis.treffer[1].verlag == "Piatnik"
|
||||
# Ohne Release-Feld auf der Detailseite fällt der Parser auf das
|
||||
# Update-Datum zurück:
|
||||
assert ergebnis.treffer[1].erscheinungsdatum_oder_quartal == "26.09.25"
|
||||
|
||||
|
||||
def test_parser_cliquenabend_detailseite_fehler_blockiert_nicht():
|
||||
adapter, _ = _adapter(
|
||||
CliquenabendQuelle,
|
||||
{
|
||||
"https://www.cliquenabend.de/events/130000-SPIEL-2025-Essen.html": CLIQUENABEND_SEITE,
|
||||
# Detailseiten nicht erreichbar → Update-Datum bleibt erhalten.
|
||||
},
|
||||
)
|
||||
ergebnis = adapter.sammle()
|
||||
assert len(ergebnis.treffer) == 2
|
||||
assert ergebnis.treffer[0].erscheinungsdatum_oder_quartal == "15.10.25"
|
||||
|
||||
|
||||
def test_parser_cliquenabend_toleriert_fehlende_tabelle():
|
||||
|
||||
Reference in New Issue
Block a user