test: Edge-Case-Dateien + Tests (leer/gross/verschluesselt/Sonderzeichen)
/testdata/edge/: empty.txt, leer.bin (0 Byte), Name mit Umlauten+Leerzeichen+ Klammern, Unicode/Emoji/RTL-Inhalt, Datei ohne Endung, passwortgeschuetztes PDF (pikepdf) + ZIP, riesig.dat (26 MB > MAX_BIN_SIZE). TestFileEdgeCases prueft graceful Handling (kein Crash, 'Datei zu gross', PDF-Lesefehler sauber gemeldet). gen_edge.py + upload_ocis.sh erweitert. 76 Tests gruen.
This commit is contained in:
Vendored
+20
@@ -0,0 +1,20 @@
|
||||
import os, zipfile, subprocess, pikepdf
|
||||
D="/tmp/mcptest-files-edge"; os.makedirs(D,exist_ok=True)
|
||||
def p(f): return os.path.join(D,f)
|
||||
# 1. leere Dateien
|
||||
open(p("empty.txt"),"w").close()
|
||||
open(p("leer.bin"),"wb").close()
|
||||
# 2. Umlaute + Leerzeichen + Klammern im Namen
|
||||
open(p("Ärger Übersicht (Größe).txt"),"w").write("Datei mit Umlauten und Leerzeichen im Namen.\n")
|
||||
# 3. Inhalt mit Sonderzeichen/Emoji/RTL
|
||||
open(p("unicode.txt"),"w").write("Emoji 😀🎉, RTL مرحبا, Tab\tNull-ish, Zeilen\n\n\n")
|
||||
# 4. keine Extension
|
||||
open(p("README_NOEXT"),"w").write("Datei ohne Dateiendung.\n")
|
||||
# 5. passwortgeschuetztes PDF
|
||||
pikepdf.open("/tmp/mcptest-files/document.pdf").save(p("geschuetzt.pdf"), encryption=pikepdf.Encryption(user="geheim",owner="geheim"))
|
||||
# 6. passwortgeschuetztes ZIP
|
||||
subprocess.run(["zip","-q","-j","-P","geheim",p("geheim.zip"),"/tmp/mcptest-files/notes.txt"],check=True)
|
||||
# 7. uebergrosse Datei (26 MB > MAX_BIN_SIZE 25 MB)
|
||||
with open(p("riesig.dat"),"wb") as f: f.seek(26_000_000-1); f.write(b"\0")
|
||||
print("Edge-Cases:")
|
||||
for f in sorted(os.listdir(D)): print(f" {os.path.getsize(p(f)):>9} {f}")
|
||||
Reference in New Issue
Block a user