diff options
Diffstat (limited to 'karm/test/__httpd.py')
-rw-r--r-- | karm/test/__httpd.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/karm/test/__httpd.py b/karm/test/__httpd.py new file mode 100644 index 000000000..ba87113be --- /dev/null +++ b/karm/test/__httpd.py @@ -0,0 +1,39 @@ +'''Runs an HTTP server on port 8000 (or the first command line argument).''' + +import BaseHTTPServer +import SimpleHTTPServer +import sys +import os.path + +class MyHandler( SimpleHTTPServer.SimpleHTTPRequestHandler ): + + def do_PUT( self ): + '''Just enough to work with karm.''' + path = self.translate_path(self.path) + + rval = 200 + if not os.path.exists( path ): rval = 201 + + f = file( path, "w" ) + lines = [] + while 1: + line = self.rfile.readline() + lines.append( line ) + if line == '\r\n' or line == '\n' or line == '': + break + f.writelines( lines ) + self.send_response( rval ) + + +DEFAULT_PORT = 8000 + +if sys.argv[1:]: port = int(sys.argv[1]) +else: port = DEFAULT_PORT +server_address = ('', port) + +SimpleHTTPServer.SimpleHTTPRequestHandler.protocol_version = "HTTP/1.0" +httpd = BaseHTTPServer.HTTPServer(server_address, MyHandler ) + +sa = httpd.socket.getsockname() +print "Serving HTTP on", sa[0], "port", sa[1], "..." +httpd.serve_forever() |