init
This commit is contained in:
34
tests/test_struktur.py
Normal file
34
tests/test_struktur.py
Normal file
@@ -0,0 +1,34 @@
|
||||
"""Ziel-Dedup: synonyme Lernziele werden deterministisch gemerged."""
|
||||
from backend import db, struktur
|
||||
from .conftest import topic_anlegen
|
||||
|
||||
|
||||
def test_ziele_dedup_merged_synonyme():
|
||||
topic = topic_anlegen()
|
||||
z1 = db.insert("lernziele", topic=topic, titel="Grundlagen einordnen",
|
||||
text="Der Lernende kann Pomodoro-Grundlagen einordnen.")
|
||||
z2 = db.insert("lernziele", topic=topic, titel="Grundlagen verorten",
|
||||
text="Der Lernende kann Pomodoro-Grundlagen verorten.")
|
||||
z3 = db.insert("lernziele", topic=topic, titel="Anwendung",
|
||||
text="Der Lernende kann die Technik im Alltag anwenden.")
|
||||
b2 = db.insert("bausteine", topic=topic, ziel_id=z2, titel="B2")
|
||||
a1 = db.insert("atome", topic=topic, titel="A1", status="aktiv", ziel_id=z2,
|
||||
baustein_id=b2)
|
||||
merges = struktur._ziele_dedup(topic)
|
||||
assert merges == 1
|
||||
# z2 weg, sein Atom hängt jetzt an z1, Baustein-Zuordnung gelöst
|
||||
assert db.one("SELECT id FROM lernziele WHERE id=?", z2) is None
|
||||
atom = db.one("SELECT ziel_id, baustein_id FROM atome WHERE id=?", a1)
|
||||
assert atom["ziel_id"] == z1 and atom["baustein_id"] is None
|
||||
assert db.one("SELECT id FROM lernziele WHERE id=?", z3) is not None
|
||||
|
||||
|
||||
def test_ziele_dedup_verschont_verschiedene():
|
||||
topic = topic_anlegen()
|
||||
db.insert("lernziele", topic=topic, titel="Pausen gestalten",
|
||||
text="Der Lernende kann Pausen erholsam gestalten.")
|
||||
db.insert("lernziele", topic=topic, titel="Werkzeuge nutzen",
|
||||
text="Der Lernende kann passende Apps und Timer auswählen.")
|
||||
assert struktur._ziele_dedup(topic) == 0
|
||||
assert db.one("SELECT COUNT(*) c FROM lernziele WHERE topic=?",
|
||||
topic)["c"] == 2
|
||||
Reference in New Issue
Block a user