107
109
self.assertEqual(status, get_db_state(node, 'status'))
112
class TestBuildAbsoluteURI(TestCase):
113
"""Tests for `build_absolute_uri`."""
115
def make_request(self, host="example.com", port=80, script_name="",
117
"""Return a :class:`HttpRequest` with the given parameters."""
118
request = HttpRequest()
119
request.META["SERVER_NAME"] = host
120
request.META["SERVER_PORT"] = port
121
request.META["SCRIPT_NAME"] = script_name
122
request.is_secure = lambda: is_secure
125
def test_simple(self):
126
request = self.make_request()
128
"http://example.com/fred",
129
build_absolute_uri(request, "/fred"))
131
def test_different_port(self):
132
request = self.make_request(port=1234)
134
"http://example.com:1234/fred",
135
build_absolute_uri(request, "/fred"))
137
def test_script_name_is_prefixed(self):
138
# The script name is always prefixed to the given path.
139
request = self.make_request(script_name="/foo/bar")
141
"http://example.com/foo/bar/fred",
142
build_absolute_uri(request, "/fred"))
144
def test_secure(self):
145
request = self.make_request(port=443, is_secure=True)
147
"https://example.com/fred",
148
build_absolute_uri(request, "/fred"))
150
def test_different_port_and_secure(self):
151
request = self.make_request(port=9443, is_secure=True)
153
"https://example.com:9443/fred",
154
build_absolute_uri(request, "/fred"))
156
def test_no_leading_forward_slash(self):
157
# No attempt is made to ensure that the given path is separated from
158
# the to-be-prefixed path.
159
request = self.make_request(script_name="/foo")
161
"http://example.com/foobar",
162
build_absolute_uri(request, "bar"))
164
def test_preserve_two_leading_slashes(self):
165
# Whilst this shouldn't ordinarily happen, two leading slashes in the
166
# path should be preserved, and not treated specially.
167
request = self.make_request(script_name="//foo")
169
"http://example.com//foo/fred",
170
build_absolute_uri(request, "/fred"))
110
173
class TestStripDomain(TestCase):
112
175
def test_strip_domain(self):