You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
isso/isso/tests/test_wsgi.py

46 lines
1.6 KiB

# -*- encoding: utf-8 -*-
import unittest
from isso import wsgi
class TestWSGIUtilities(unittest.TestCase):
def test_urlsplit(self):
examples = [
("http://example.tld/", ('example.tld', 80, False)),
("https://example.tld/", ('example.tld', 443, True)),
("example.tld", ('example.tld', 80, False)),
("example.tld:42", ('example.tld', 42, False)),
("https://example.tld:80/", ('example.tld', 80, True))]
for (hostname, result) in examples:
self.assertEqual(wsgi.urlsplit(hostname), result)
def test_urljoin(self):
examples = [
(("example.tld", 80, False), "http://example.tld"),
(("example.tld", 42, True), "https://example.tld:42"),
(("example.tld", 443, True), "https://example.tld")]
for (split, result) in examples:
self.assertEqual(wsgi.urljoin(*split), result)
def test_origin(self):
self.assertEqual(wsgi.origin([])({}), "http://invalid.local")
origin = wsgi.origin(["http://foo.bar/", "https://foo.bar"])
self.assertEqual(origin({"HTTP_ORIGIN": "http://foo.bar"}),
"http://foo.bar")
self.assertEqual(origin({"HTTP_ORIGIN": "https://foo.bar"}),
"https://foo.bar")
self.assertEqual(origin({"HTTP_REFERER": "http://foo.bar"}),
"http://foo.bar")
self.assertEqual(origin({"HTTP_ORIGIN": "http://spam.baz"}),
"http://foo.bar")
self.assertEqual(origin({}), "http://foo.bar")