8000 attempt at server in process · shingjan/python-sdk@8d90a3a · GitHub
[go: up one dir, main page]

Skip to content

Commit 8d90a3a

Browse files
attempt at server in process
1 parent 7ab1fc7 commit 8d90a3a

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

tests/shared/test_sse.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# test_sse.py
22
import re
3+
import multiprocessing
34
import socket
45
import time
56
import json
@@ -94,10 +95,15 @@ def space_around_test():
9495

9596
@pytest.fixture()
9697
def server(server_app: Starlette, server_port: int):
97-
server = uvicorn.Server(config=uvicorn.Config(app=server_app, host="127.0.0.1", port=server_port, log_level="error"))
98-
server_thread = threading.Thread( target=server.run, daemon=True )
98+
proc = multiprocessing.Process(target=uvicorn.run, daemon=True, kwargs={
99+
"app": server_app,
100+
"host": "127.0.0.1",
101+
"port": server_port,
102+
"log_level": "error"
103+
})
99104
print(f'starting server on {server_port}')
100-
server_thread.start()
105+
proc.start()
106+
101107
# Give server time to start
102108
while not server.started:
1 7DE1 03109
print('waiting for server to start')
@@ -117,8 +123,9 @@ def server(server_app: Starlette, server_port: int):
117123
s.close()
118124

119125
# Wait for thread to finish
120-
server_thread.join(timeout=2)
121-
if server_thread.is_alive():
126+
proc.terminate()
127+
proc.join(timeout=2)
128+
if proc.is_alive():
122129
print("Warning: Server thread did not exit cleanly")
123130
# Optionally, you could add more aggressive cleanup here
124131
import _thread

0 commit comments

Comments
 (0)
0