update
This commit is contained in:
@@ -161,3 +161,33 @@ async def test_thema_braucht_zwei_quellen(monkeypatch):
|
||||
assert await korpus._konsens(ctx) == 1 # X: 2 Quellen; Y: nur 1 → kein Punkt
|
||||
assert db.one("SELECT status FROM soll WHERE id=?", (y,))["status"] == "kandidat"
|
||||
assert {b["art"] for b in korpus.messen(ctx)} == {"soll_kandidat_offen"}
|
||||
|
||||
|
||||
def test_tex_normalisieren():
|
||||
tex = ("\\documentclass{article}\n\\usepackage{tikz}\n\\begin{document}\n"
|
||||
"Einf\\\"uhrung: Gr\\\"o\\ss e $n$, \\\"Ubung hei\\ss t \\emph{T}, "
|
||||
"\\\"{a} bleibt $\\Sigma$\n\\end{document}\n")
|
||||
ergebnis = korpus._tex_normalisieren(tex)
|
||||
assert "documentclass" not in ergebnis and "end{document}" not in ergebnis
|
||||
assert "Einführung: Größe $n$, Übung heißt \\emph{T}, ä bleibt $\\Sigma$" in ergebnis
|
||||
# ohne Präambel/Escapes: unverändert
|
||||
assert korpus._tex_normalisieren("Plain ü Text $x$") == "Plain ü Text $x$"
|
||||
# \ss als Präfix eines anderen Kontrollworts bleibt stehen
|
||||
assert korpus._tex_normalisieren("\\ssname bleibt") == "\\ssname bleibt"
|
||||
|
||||
|
||||
async def test_uni_quellen_vorrang_tex(tmp_path):
|
||||
topic = topic_anlegen("k-tex", art="uni")
|
||||
ctx = llm.Kontext(run_anlegen(topic), topic, "minimax")
|
||||
ordner = korpus.TOPICS_DIR / topic
|
||||
ordner.mkdir(parents=True)
|
||||
(ordner / "a.tex").write_text("\\begin{document}Gr\\\"o\\ss e A\\end{document}")
|
||||
(ordner / "a.txt").write_text("Groesse A kaputt")
|
||||
(ordner / "a.pdf").write_bytes(b"%PDF-1.4 egal")
|
||||
(ordner / "b.txt").write_text("Nur als txt da")
|
||||
assert await korpus._uni_quellen(ctx) == 2 # a.tex + b.txt, Rest übersprungen
|
||||
quellen = db.query("SELECT titel, snapshot FROM quellen WHERE topic=? AND art='datei'",
|
||||
(topic,))
|
||||
assert {q["titel"] for q in quellen} == {"a.tex", "b.txt"}
|
||||
snap = next(q for q in quellen if q["titel"] == "a.tex")
|
||||
assert "Größe A" in korpus.quelltext(snap)
|
||||
|
||||
Reference in New Issue
Block a user