diff options
-rw-r--r-- | cbc/server.py | 24 | ||||
-rw-r--r-- | tests/test.py | 2 |
2 files changed, 22 insertions, 4 deletions
diff --git a/cbc/server.py b/cbc/server.py index ee451ac..37355ed 100644 --- a/cbc/server.py +++ b/cbc/server.py @@ -1,6 +1,14 @@ import os import http.server import socketserver +import socket +from threading import Thread + +class Server(socketserver.ThreadingTCPServer): + allow_reuse_address = True + #def server_bind(self): + # self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + # self.socket.bind(self.server_address) class FileServer(object): @@ -11,12 +19,22 @@ class FileServer(object): self.root = root self.port = port self.handler = http.server.SimpleHTTPRequestHandler + self.httpd = None if run: self.run() def run(self): os.chdir(self.root) - httpd = socketserver.TCPServer(("", self.port), self.handler) - print("{0} active on port {1}".format(self.__class__.__name__, self.port)) - httpd.handle_request()
\ No newline at end of file + socketserver.TCPServer.allow_reuse_address = True + self.httpd = Server(('localhost', self.port), self.handler, True) + #self.httpd.allow_reuse_address = True + #self.httpd.server_bind() + #self.httpd.server_activate() + print('{0} active on port {1} ({2})'.format(self.__class__.__name__, self.port, self.root)) + + th = Thread(target=self.httpd.handle_request, args=(), daemon=True) + th.start() + + def close(self): + self.httpd.server_close()
\ No newline at end of file diff --git a/tests/test.py b/tests/test.py index 67fc15a..8203636 100644 --- a/tests/test.py +++ b/tests/test.py @@ -55,7 +55,7 @@ class TestCBC(object): def test_spec_outputs_valid_conda_metadata(self):
import conda_build.metadata
cbc_meta = cbc.meta.MetaData(self.ini, self.env)
- cbc_meta.conda_write_meta()
+ #cbc_meta.conda_write_meta()
# Test against conda's build system
conda_meta = conda_build.metadata.MetaData(self.env.cbchome)
|