Skip to content

Commit dd28b39

Browse files
committed
Copy ThreadedTCPServer and FileHandler instead of including file directly
1 parent d70bbb4 commit dd28b39

File tree

1 file changed

+30
-8
lines changed

1 file changed

+30
-8
lines changed

tests/test_urcap.py

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,44 @@
1616
# // limitations under the License.
1717
# // -- END LICENSE BLOCK ------------------------------------------------
1818

19-
import sys
2019
import os
21-
import unittest
2220
import socket
21+
import socketserver
2322
import sys
24-
import time
2523
import threading
24+
import time
25+
import unittest
26+
2627

27-
from examples.simple_external_control_server.simple_external_control_server import ThreadedTCPServer, FileHandler
28+
ROBOT_IP = "127.0.0.1"
2829

29-
# Make sure we can find the external control server
30-
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
31-
from examples.simple_external_control_server.simple_external_control_server import ThreadedTCPServer, FileHandler
30+
class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
31+
daemon_threads = True
32+
allow_reuse_address = True
3233

34+
def __init__(self, server_address, RequestHandlerClass, file):
35+
self.file = file
36+
super().__init__(server_address, RequestHandlerClass)
3337

34-
ROBOT_IP = "127.0.0.1"
38+
39+
class FileHandler(socketserver.StreamRequestHandler):
40+
def __init__(self, request, client_address, server):
41+
self.file = server.file
42+
super().__init__(request, client_address, server)
43+
44+
def handle(self):
45+
client = f'{self.client_address} on {threading.currentThread().getName()}'
46+
print(f'Connected: {client}')
47+
file = open(self.file, "r")
48+
while True:
49+
data = file.read()
50+
51+
print(data)
52+
if not data:
53+
break
54+
self.wfile.write(data.encode('utf-8'))
55+
file.close()
56+
print(f'Closed: {client}')
3557

3658

3759
class DashboardClient:

0 commit comments

Comments
 (0)