summaryrefslogtreecommitdiffhomepage
path: root/test/test_routing_tls.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_routing_tls.py')
-rw-r--r--test/test_routing_tls.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/test/test_routing_tls.py b/test/test_routing_tls.py
new file mode 100644
index 00000000..433a303e
--- /dev/null
+++ b/test/test_routing_tls.py
@@ -0,0 +1,58 @@
+from unit.applications.tls import TestApplicationTLS
+
+
+class TestRoutingTLS(TestApplicationTLS):
+ prerequisites = ['python', 'openssl']
+
+ def test_routes_match_scheme(self):
+ self.certificate()
+
+ self.assertIn(
+ 'success',
+ self.conf(
+ {
+ "listeners": {
+ "*:7080": {"pass": "routes"},
+ "*:7081": {
+ "pass": "routes",
+ "tls": {"certificate": 'default'},
+ },
+ },
+ "routes": [
+ {
+ "match": {"scheme": "http"},
+ "action": {"pass": "applications/empty"},
+ },
+ {
+ "match": {"scheme": "https"},
+ "action": {"pass": "applications/204_no_content"},
+ },
+ ],
+ "applications": {
+ "empty": {
+ "type": "python",
+ "processes": {"spare": 0},
+ "path": self.current_dir + "/python/empty",
+ "module": "wsgi",
+ },
+ "204_no_content": {
+ "type": "python",
+ "processes": {"spare": 0},
+ "path": self.current_dir
+ + "/python/204_no_content",
+ "module": "wsgi",
+ },
+ },
+ }
+ ),
+ 'scheme configure',
+ )
+
+ self.assertEqual(self.get()['status'], 200, 'scheme http')
+ self.assertEqual(
+ self.get_ssl(port=7081)['status'], 204, 'scheme https'
+ )
+
+
+if __name__ == '__main__':
+ TestRoutingTLS.main()