char-fork/llama.cpp

git clone https://git.t4t.associates/char-fork/llama.cpp

Xuan-Son Nguyenserver: fix empty response for /cors-proxy (#26656)6a32c29a7

char/aliceai-t5-moe
1.8 KiB71 linesraw
1import pytest
2from utils import *
3import threading
4from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
5
6server = ServerPreset.tinyllama2()
7
8
9@pytest.fixture(autouse=True)
10def create_server():
11    global server
12    server = ServerPreset.tinyllama2()
13
14
15def test_mcp_no_proxy():
16    global server
17    server.ui_mcp_proxy = False
18    server.start()
19
20    res = server.make_request("GET", "/cors-proxy")
21    assert res.status_code == 403
22
23
24def test_mcp_proxy():
25    global server
26    server.ui_mcp_proxy = True
27    server.start()
28
29    url = f"http://{server.server_host}:{server.server_port}/cors-proxy?url=http://example.com"
30    res = requests.get(url)
31    assert res.status_code == 200
32    assert "Example Domain" in res.text
33
34
35def test_mcp_proxy_custom_port():
36    global server
37    server.ui_mcp_proxy = True
38    server.start()
39
40    # try getting the server's models API via the proxy
41    res = server.make_request("GET", f"/cors-proxy?url=http://{server.server_host}:{server.server_port}/models")
42    assert res.status_code == 200
43    assert "data" in res.body
44
45
46def test_mcp_proxy_no_content():
47    # note: see issue #26598
48    class NoContentHandler(BaseHTTPRequestHandler):
49        def do_POST(self):
50            self.send_response(204)
51            self.end_headers()
52
53        def log_message(self, format, *args):
54            pass
55
56    target = ThreadingHTTPServer(("127.0.0.1", 0), NoContentHandler)
57    target_thread = threading.Thread(target=target.serve_forever, daemon=True)
58    target_thread.start()
59
60    try:
61        global server
62        server.ui_mcp_proxy = True
63        server.start()
64
65        res = server.make_request("POST", f"/cors-proxy?url=http://127.0.0.1:{target.server_port}/", data={})
66        assert res.status_code == 204
67        assert res.body in (None, b"", "")
68    finally:
69        target.shutdown()
70        target.server_close()
71