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}")