summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDavid Reiss <dreiss@apache.org>2009-01-31 21:59:32 +0000
committerDavid Reiss <dreiss@apache.org>2009-01-31 21:59:32 +0000
commitf78ec2bc66d3a9fcfd63b9bdf49fc9bdc68b4cf7 (patch)
tree0dfedf9b5540ac188564c9969ae0b8d2c318ac18 /test
parent1fe17774eb1059bc784a5c3be46b208a2fc0a63c (diff)
downloadthrift-f78ec2bc66d3a9fcfd63b9bdf49fc9bdc68b4cf7.tar.gz
THRIFT-195. python: Add a simple THttpServer
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@739638 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'test')
-rwxr-xr-xtest/py/RunClientServer.py12
-rwxr-xr-xtest/py/TestClient.py21
-rwxr-xr-xtest/py/TestServer.py21
3 files changed, 37 insertions, 17 deletions
diff --git a/test/py/RunClientServer.py b/test/py/RunClientServer.py
index b4fd38264..34f883ecf 100755
--- a/test/py/RunClientServer.py
+++ b/test/py/RunClientServer.py
@@ -19,6 +19,8 @@ def runTest(server_class):
argv = [sys.executable, relfile("TestClient.py")]
if server_class in FRAMED:
argv.append('--framed')
+ if server_class == 'THttpServer':
+ argv.append('--http=/')
ret = subprocess.call(argv)
if ret != 0:
raise Exception("subprocess failed")
@@ -29,5 +31,11 @@ def runTest(server_class):
# wait for shutdown
time.sleep(1)
-map(runTest, ["TForkingServer", "TThreadPoolServer",
- "TThreadedServer", "TSimpleServer", "TNonblockingServer"])
+map(runTest, [
+ "TSimpleServer",
+ "TThreadedServer",
+ "TThreadPoolServer",
+ "TForkingServer",
+ "TNonblockingServer",
+ "THttpServer",
+ ])
diff --git a/test/py/TestClient.py b/test/py/TestClient.py
index 501d197de..944e3846e 100755
--- a/test/py/TestClient.py
+++ b/test/py/TestClient.py
@@ -8,6 +8,7 @@ from ThriftTest import ThriftTest
from ThriftTest.ttypes import *
from thrift.transport import TTransport
from thrift.transport import TSocket
+from thrift.transport import THttpClient
from thrift.protocol import TBinaryProtocol
import unittest
import time
@@ -15,13 +16,15 @@ from optparse import OptionParser
parser = OptionParser()
-parser.set_defaults(framed=False, verbose=1, host='localhost', port=9090)
+parser.set_defaults(framed=False, http_path=None, verbose=1, host='localhost', port=9090)
parser.add_option("--port", type="int", dest="port",
help="connect to server at port")
parser.add_option("--host", type="string", dest="host",
help="connect to server")
parser.add_option("--framed", action="store_true", dest="framed",
help="use framed transport")
+parser.add_option("--http", dest="http_path",
+ help="Use the HTTP transport with the specified path")
parser.add_option('-v', '--verbose', action="store_const",
dest="verbose", const=2,
help="verbose output")
@@ -33,13 +36,17 @@ options, args = parser.parse_args()
class AbstractTest(unittest.TestCase):
def setUp(self):
- socket = TSocket.TSocket(options.host, options.port)
-
- # Frame or buffer depending upon args
- if options.framed:
- self.transport = TTransport.TFramedTransport(socket)
+ if options.http_path:
+ self.transport = THttpClient.THttpClient(
+ options.host, options.port, options.http_path)
else:
- self.transport = TTransport.TBufferedTransport(socket)
+ socket = TSocket.TSocket(options.host, options.port)
+
+ # frame or buffer depending upon args
+ if options.framed:
+ self.transport = TTransport.TFramedTransport(socket)
+ else:
+ self.transport = TTransport.TBufferedTransport(socket)
self.transport.open()
diff --git a/test/py/TestServer.py b/test/py/TestServer.py
index a7bf6d064..7abb624d0 100755
--- a/test/py/TestServer.py
+++ b/test/py/TestServer.py
@@ -9,7 +9,7 @@ from ThriftTest.ttypes import *
from thrift.transport import TTransport
from thrift.transport import TSocket
from thrift.protocol import TBinaryProtocol
-from thrift.server import TServer, TNonblockingServer
+from thrift.server import TServer, TNonblockingServer, THttpServer
class TestHandler:
@@ -77,15 +77,20 @@ class TestHandler:
def testTypedef(self, thing):
return thing
+pfactory = TBinaryProtocol.TBinaryProtocolFactory()
handler = TestHandler()
processor = ThriftTest.Processor(handler)
-transport = TSocket.TServerSocket(9090)
-tfactory = TTransport.TBufferedTransportFactory()
-pfactory = TBinaryProtocol.TBinaryProtocolFactory()
-if sys.argv[1] == "TNonblockingServer":
- server = TNonblockingServer.TNonblockingServer(processor, transport)
+if sys.argv[1] == "THttpServer":
+ server = THttpServer.THttpServer(processor, ('', 9090), pfactory)
else:
- ServerClass = getattr(TServer, sys.argv[1])
- server = ServerClass(processor, transport, tfactory, pfactory)
+ transport = TSocket.TServerSocket(9090)
+ tfactory = TTransport.TBufferedTransportFactory()
+
+ if sys.argv[1] == "TNonblockingServer":
+ server = TNonblockingServer.TNonblockingServer(processor, transport)
+ else:
+ ServerClass = getattr(TServer, sys.argv[1])
+ server = ServerClass(processor, transport, tfactory, pfactory)
+
server.serve()