Web-Quellen: An/Aus-Schalter pro Quelle im UI + Einzel-Quellen-Sync
This commit is contained in:
@@ -653,6 +653,46 @@ def test_env_schalter_deaktiviert_einzelne_quelle(session_factory, monkeypatch):
|
||||
assert quelle_aktiv("brettspielbox") is True # Standard „1“
|
||||
|
||||
|
||||
def test_ui_schalter_uebersteuert_env(session_factory, monkeypatch):
|
||||
"""Der DB-Schalter schaltet eine per Env aktive Quelle ab (und umgekehrt)."""
|
||||
monkeypatch.delenv("SPIELE_NEUHEITEN_QUELLE_SPIELBOX_AKTIV", raising=False)
|
||||
|
||||
spielbox = StatischerAdapter("spielbox", [QuellenTreffer(titel="X", quellen_url="u")])
|
||||
service = _service(session_factory, (spielbox,))
|
||||
|
||||
# Standard: an
|
||||
assert service.quelle_laeuft("spielbox") is True
|
||||
|
||||
# Schalter „aus“ → Sync überspringt die Quelle
|
||||
service.schalter_gesetzt("spielbox", False)
|
||||
assert service.quelle_laeuft("spielbox") is False
|
||||
zeilen = service.laufe()
|
||||
assert zeilen[0].aktiv is False and zeilen[0].neu == 0
|
||||
|
||||
# Schalter „an“ → läuft wieder
|
||||
service.schalter_gesetzt("spielbox", True)
|
||||
assert service.quelle_laeuft("spielbox") is True
|
||||
zeilen = service.laufe()
|
||||
assert zeilen[0].aktiv is True and zeilen[0].neu == 1
|
||||
|
||||
|
||||
def test_einzellauf_ignoriert_schalter(session_factory, monkeypatch):
|
||||
"""`laufе(nur_quellen=…)` läuft auch bei ausgeschalteter Quelle."""
|
||||
monkeypatch.delenv("SPIELE_NEUHEITEN_QUELLE_SPIELBOX_AKTIV", raising=False)
|
||||
|
||||
spielbox = StatischerAdapter("spielbox", [QuellenTreffer(titel="X", quellen_url="u")])
|
||||
andere = StatischerAdapter("cliquenabend", [QuellenTreffer(titel="Y", quellen_url="u")])
|
||||
service = _service(session_factory, (spielbox, andere))
|
||||
|
||||
service.schalter_gesetzt("spielbox", False)
|
||||
|
||||
zeilen = service.laufe(nur_quellen={"spielbox"})
|
||||
assert len(zeilen) == 1
|
||||
assert zeilen[0].quelle == "spielbox"
|
||||
assert zeilen[0].aktiv is True
|
||||
assert zeilen[0].neu == 1
|
||||
|
||||
|
||||
def test_validatoren_werden_persistiert_und_wieder_verwendet(session_factory):
|
||||
"""304-Behandlung über Läufe hinweg: ETag wird gespeichert und gesendet."""
|
||||
import tests._neuheiten as h
|
||||
|
||||
Reference in New Issue
Block a user