summaryrefslogtreecommitdiffstats
path: root/tests/unit/test_wsgi.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-02-02 16:52:24 +0000
committerGerrit Code Review <review@openstack.org>2013-02-02 16:52:24 +0000
commit6ce830b0e4e8a9c00d3cfb51f643dec3e1286cee (patch)
treed2263f2476ec6b1f465fc2187333cb1a2d8eb78f /tests/unit/test_wsgi.py
parent864e934cfa7003767dabb4f9a51ebe1e493f6027 (diff)
parente50b68c0d28cb00fa627525f23bb0c0f614b9312 (diff)
downloadoslo-6ce830b0e4e8a9c00d3cfb51f643dec3e1286cee.tar.gz
oslo-6ce830b0e4e8a9c00d3cfb51f643dec3e1286cee.tar.xz
oslo-6ce830b0e4e8a9c00d3cfb51f643dec3e1286cee.zip
Merge "Support for SSL in wsgi.Service"
Diffstat (limited to 'tests/unit/test_wsgi.py')
-rw-r--r--tests/unit/test_wsgi.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/unit/test_wsgi.py b/tests/unit/test_wsgi.py
index 749d524..e4f975e 100644
--- a/tests/unit/test_wsgi.py
+++ b/tests/unit/test_wsgi.py
@@ -16,12 +16,20 @@
# under the License.
import mock
+import os
+import routes
+import ssl
+import urllib2
import webob
from openstack.common import exception
from openstack.common import wsgi
+from openstack.common import cfg
from tests import utils
+TEST_VAR_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__),
+ '..', 'var'))
+
class RequestTest(utils.BaseTestCase):
@@ -471,3 +479,64 @@ class WSGIServerTest(utils.BaseTestCase):
self.assertEqual("0.0.0.0", server.host)
self.assertNotEqual(0, server.port)
server.stop()
+
+ def test_app(self):
+ greetings = 'Hello, World!!!'
+
+ def hello_world(env, start_response):
+ if env['PATH_INFO'] != '/':
+ start_response('404 Not Found',
+ [('Content-Type', 'text/plain')])
+ return ['Not Found\r\n']
+ start_response('200 OK', [('Content-Type', 'text/plain')])
+ return [greetings]
+
+ server = wsgi.Service(hello_world, 0)
+ server.start()
+
+ response = urllib2.urlopen('http://127.0.0.1:%d/' % server.port)
+ self.assertEquals(greetings, response.read())
+
+ server.stop()
+
+ def test_app_using_router(self):
+ greetings = 'Hello, World!!!'
+
+ @webob.dec.wsgify
+ def hello(req):
+ return greetings
+
+ mapper = routes.Mapper()
+ mapper.connect(None, "/v1.0/{path_info:.*}", controller=hello)
+ router = wsgi.Router(mapper)
+ server = wsgi.Service(router, 0)
+ server.start()
+
+ response = urllib2.urlopen('http://127.0.0.1:%d/v1.0/' % server.port)
+ self.assertEquals(greetings, response.read())
+
+ server.stop()
+
+ def test_app_using_router_ssl(self):
+
+ self.config(cert_file=os.path.join(TEST_VAR_DIR, 'certificate.crt'),
+ group="ssl")
+ self.config(key_file=os.path.join(TEST_VAR_DIR, 'privatekey.key'),
+ group="ssl")
+
+ greetings = 'Hello, World!!!'
+
+ @webob.dec.wsgify
+ def hello(req):
+ return greetings
+
+ mapper = routes.Mapper()
+ mapper.connect(None, "/v1.0/{path_info:.*}", controller=hello)
+ router = wsgi.Router(mapper)
+ server = wsgi.Service(router, 0, host="127.0.0.1")
+ server.start()
+
+ response = urllib2.urlopen('https://127.0.0.1:%d/v1.0/' % server.port)
+ self.assertEquals(greetings, response.read())
+
+ server.stop()