aboutsummaryrefslogtreecommitdiff
path: root/dummyserver/testcase.py
diff options
context:
space:
mode:
authorSVN-Git Migration <python-modules-team@lists.alioth.debian.org>2015-10-08 13:19:30 -0700
committerSVN-Git Migration <python-modules-team@lists.alioth.debian.org>2015-10-08 13:19:30 -0700
commit0c183b9d52b45bac22a2ff9db0e6348b655f4ab2 (patch)
treeffddde52af2caca5d039f3c9f185694f394a39de /dummyserver/testcase.py
downloadpython-urllib3-0c183b9d52b45bac22a2ff9db0e6348b655f4ab2.tar
python-urllib3-0c183b9d52b45bac22a2ff9db0e6348b655f4ab2.tar.gz
Imported Upstream version 1.2.2
Diffstat (limited to 'dummyserver/testcase.py')
-rw-r--r--dummyserver/testcase.py71
1 files changed, 71 insertions, 0 deletions
diff --git a/dummyserver/testcase.py b/dummyserver/testcase.py
new file mode 100644
index 0000000..518d739
--- /dev/null
+++ b/dummyserver/testcase.py
@@ -0,0 +1,71 @@
+import unittest
+
+from threading import Lock
+
+from dummyserver.server import (
+ TornadoServerThread, SocketServerThread,
+ DEFAULT_CERTS,
+)
+
+
+# TODO: Change ports to auto-allocated?
+
+
+class SocketDummyServerTestCase(unittest.TestCase):
+ """
+ A simple socket-based server is created for this class that is good for
+ exactly one request.
+ """
+ scheme = 'http'
+ host = 'localhost'
+ port = 18080
+
+ @classmethod
+ def _start_server(cls, socket_handler):
+ ready_lock = Lock()
+ ready_lock.acquire()
+ cls.server_thread = SocketServerThread(socket_handler=socket_handler,
+ ready_lock=ready_lock,
+ host=cls.host, port=cls.port)
+ cls.server_thread.start()
+
+ # Lock gets released by thread above
+ ready_lock.acquire()
+
+
+class HTTPDummyServerTestCase(unittest.TestCase):
+ scheme = 'http'
+ host = 'localhost'
+ host_alt = '127.0.0.1' # Some tests need two hosts
+ port = 18081
+ certs = DEFAULT_CERTS
+
+ @classmethod
+ def _start_server(cls):
+ cls.server_thread = TornadoServerThread(host=cls.host, port=cls.port,
+ scheme=cls.scheme,
+ certs=cls.certs)
+ cls.server_thread.start()
+
+ # TODO: Loop-check here instead
+ import time
+ time.sleep(0.1)
+
+ @classmethod
+ def _stop_server(cls):
+ cls.server_thread.stop()
+
+ @classmethod
+ def setUpClass(cls):
+ cls._start_server()
+
+ @classmethod
+ def tearDownClass(cls):
+ cls._stop_server()
+
+
+class HTTPSDummyServerTestCase(HTTPDummyServerTestCase):
+ scheme = 'https'
+ host = 'localhost'
+ port = 18082
+ certs = DEFAULT_CERTS