51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
|
|
import io
|
||
|
|
from fastapi.testclient import TestClient
|
||
|
|
import sys
|
||
|
|
from pathlib import Path as _Path
|
||
|
|
base = _Path(__file__).resolve().parents[2]
|
||
|
|
sys.path.insert(0, str(base))
|
||
|
|
sys.path.insert(0, str(base / "docling"))
|
||
|
|
import app.server as server
|
||
|
|
|
||
|
|
|
||
|
|
class FakeMinio:
|
||
|
|
def __init__(self):
|
||
|
|
pass
|
||
|
|
def get_presigned_url(self, method: str, bucket: str, obj: str, expires: int):
|
||
|
|
return f"http://minio.test/presigned/{bucket}/{obj}?e={expires}"
|
||
|
|
def presigned_get_object(self, bucket: str, obj: str, expires: int):
|
||
|
|
return f"http://minio.test/presigned/{bucket}/{obj}?e={expires}"
|
||
|
|
|
||
|
|
|
||
|
|
def setup():
|
||
|
|
server.RUNTIME_CONFIG["minio"].update({
|
||
|
|
"endpoint": "127.0.0.1:9000",
|
||
|
|
"public": "http://127.0.0.1:9000",
|
||
|
|
"access": "ak",
|
||
|
|
"secret": "sk",
|
||
|
|
"bucket": "doctest",
|
||
|
|
"secure": "false",
|
||
|
|
"prefix": "assets",
|
||
|
|
"store_final": "true",
|
||
|
|
"public_read": "true",
|
||
|
|
})
|
||
|
|
fake = FakeMinio()
|
||
|
|
def _cur():
|
||
|
|
return fake, "doctest", "http://127.0.0.1:9000", "assets"
|
||
|
|
server._minio_current = _cur # type: ignore
|
||
|
|
|
||
|
|
|
||
|
|
def run():
|
||
|
|
setup()
|
||
|
|
app = server.app
|
||
|
|
c = TestClient(app)
|
||
|
|
url = "http://127.0.0.1:9000/doctest/assets/rewritten/%E6%B5%8B%E8%AF%95/a.md"
|
||
|
|
r = c.post("/minio/presign", data={"url": url, "expires": 7200})
|
||
|
|
print("status:", r.status_code)
|
||
|
|
print(r.json())
|
||
|
|
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
run()
|
||
|
|
|