summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2020-11-01 18:09:12 -0600
committerGitHub <noreply@github.com>2020-11-01 18:09:12 -0600
commitf0a61fbe2f51173bf283989bee4085f8e839e952 (patch)
tree82dc3afa815d6dd3e26529c37fbf137af555b0e4 /tests
parentee7ca28cc51cf40d1190144834704e287c9fc72d (diff)
parenta8fe2cb53472bdbd515124a56faadea3b6a9d46a (diff)
downloadpyramid-f0a61fbe2f51173bf283989bee4085f8e839e952.tar.gz
pyramid-f0a61fbe2f51173bf283989bee4085f8e839e952.tar.bz2
pyramid-f0a61fbe2f51173bf283989bee4085f8e839e952.zip
Merge pull request #3587 from ericatkin/master
cur_domain is effectively equivalent to '.' + cur_domain and therefor…
Diffstat (limited to 'tests')
-rw-r--r--tests/test_authentication.py260
1 files changed, 71 insertions, 189 deletions
diff --git a/tests/test_authentication.py b/tests/test_authentication.py
index 8ab185a30..32f687ee2 100644
--- a/tests/test_authentication.py
+++ b/tests/test_authentication.py
@@ -917,7 +917,7 @@ class TestAuthTktCookieHelper(unittest.TestCase):
self.assertEqual(len(request.callbacks), 1)
response = DummyResponse()
request.callbacks[0](request, response)
- self.assertEqual(len(response.headerlist), 3)
+ self.assertEqual(len(response.headerlist), 1)
self.assertEqual(response.headerlist[0][0], 'Set-Cookie')
def test_identify_cookie_str_reissue(self):
@@ -934,7 +934,7 @@ class TestAuthTktCookieHelper(unittest.TestCase):
self.assertEqual(len(request.callbacks), 1)
response = DummyResponse()
request.callbacks[0](request, response)
- self.assertEqual(len(response.headerlist), 3)
+ self.assertEqual(len(response.headerlist), 1)
self.assertEqual(response.headerlist[0][0], 'Set-Cookie')
def test_identify_cookie_reissue_already_reissued_this_request(self):
@@ -1017,7 +1017,7 @@ class TestAuthTktCookieHelper(unittest.TestCase):
self.assertEqual(len(request.callbacks), 1)
response = DummyResponse()
request.callbacks[0](None, response)
- self.assertEqual(len(response.headerlist), 3)
+ self.assertEqual(len(response.headerlist), 1)
self.assertEqual(response.headerlist[0][0], 'Set-Cookie')
self.assertTrue("/tokens=/" in response.headerlist[0][1])
@@ -1025,89 +1025,52 @@ class TestAuthTktCookieHelper(unittest.TestCase):
helper = self._makeOne('secret')
request = self._makeRequest()
result = helper.remember(request, 'userid')
- self.assertEqual(len(result), 3)
-
- self.assertEqual(result[0][0], 'Set-Cookie')
- self.assertTrue(result[0][1].endswith('; Path=/; SameSite=Lax'))
- self.assertTrue(result[0][1].startswith('auth_tkt='))
-
- self.assertEqual(result[1][0], 'Set-Cookie')
- self.assertTrue(
- result[1][1].endswith('; Domain=localhost; Path=/; SameSite=Lax')
- )
- self.assertTrue(result[1][1].startswith('auth_tkt='))
+ self.assertEqual(len(result), 1)
- self.assertEqual(result[2][0], 'Set-Cookie')
+ name, value = result[0]
+ self.assertEqual(name, 'Set-Cookie')
self.assertTrue(
- result[2][1].endswith('; Domain=.localhost; Path=/; SameSite=Lax')
+ value.endswith('; Domain=localhost; Path=/; SameSite=Lax')
)
- self.assertTrue(result[2][1].startswith('auth_tkt='))
+ self.assertTrue(value.startswith('auth_tkt='))
def test_remember_nondefault_samesite(self):
helper = self._makeOne('secret', samesite='Strict')
request = self._makeRequest()
result = helper.remember(request, 'userid')
- self.assertEqual(len(result), 3)
-
- self.assertEqual(result[0][0], 'Set-Cookie')
- self.assertTrue(result[0][1].endswith('; Path=/; SameSite=Strict'))
- self.assertTrue(result[0][1].startswith('auth_tkt='))
-
- self.assertEqual(result[1][0], 'Set-Cookie')
- self.assertTrue(
- result[1][1].endswith(
- '; Domain=localhost; Path=/; SameSite=Strict'
- )
- )
- self.assertTrue(result[1][1].startswith('auth_tkt='))
+ self.assertEqual(len(result), 1)
- self.assertEqual(result[2][0], 'Set-Cookie')
+ name, value = result[0]
+ self.assertEqual(name, 'Set-Cookie')
self.assertTrue(
- result[2][1].endswith(
- '; Domain=.localhost; Path=/; SameSite=Strict'
- )
+ value.endswith('; Domain=localhost; Path=/; SameSite=Strict')
)
- self.assertTrue(result[2][1].startswith('auth_tkt='))
+ self.assertTrue(value.startswith('auth_tkt='))
def test_remember_None_samesite(self):
helper = self._makeOne('secret', samesite=None)
request = self._makeRequest()
result = helper.remember(request, 'userid')
- self.assertEqual(len(result), 3)
-
- self.assertEqual(result[0][0], 'Set-Cookie')
- self.assertTrue(result[0][1].endswith('; Path=/')) # no samesite
- self.assertTrue(result[0][1].startswith('auth_tkt='))
-
- self.assertEqual(result[1][0], 'Set-Cookie')
- self.assertTrue(result[1][1].endswith('; Domain=localhost; Path=/'))
- self.assertTrue(result[1][1].startswith('auth_tkt='))
+ self.assertEqual(len(result), 1)
- self.assertEqual(result[2][0], 'Set-Cookie')
- self.assertTrue(result[2][1].endswith('; Domain=.localhost; Path=/'))
- self.assertTrue(result[2][1].startswith('auth_tkt='))
+ name, value = result[0]
+ self.assertEqual(name, 'Set-Cookie')
+ self.assertTrue('SameSite=' not in value)
+ self.assertTrue(value.endswith('; Domain=localhost; Path=/'))
+ self.assertTrue(value.startswith('auth_tkt='))
def test_remember_include_ip(self):
helper = self._makeOne('secret', include_ip=True)
request = self._makeRequest()
result = helper.remember(request, 'other')
- self.assertEqual(len(result), 3)
-
- self.assertEqual(result[0][0], 'Set-Cookie')
- self.assertTrue(result[0][1].endswith('; Path=/; SameSite=Lax'))
- self.assertTrue(result[0][1].startswith('auth_tkt='))
-
- self.assertEqual(result[1][0], 'Set-Cookie')
- self.assertTrue(
- result[1][1].endswith('; Domain=localhost; Path=/; SameSite=Lax')
- )
- self.assertTrue(result[1][1].startswith('auth_tkt='))
+ self.assertEqual(len(result), 1)
- self.assertEqual(result[2][0], 'Set-Cookie')
+ name, value = result[0]
+ self.assertEqual(name, 'Set-Cookie')
self.assertTrue(
- result[2][1].endswith('; Domain=.localhost; Path=/; SameSite=Lax')
+ value.endswith('; Domain=localhost; Path=/; SameSite=Lax')
)
- self.assertTrue(result[2][1].startswith('auth_tkt='))
+ self.assertTrue(value.startswith('auth_tkt='))
def test_remember_path(self):
helper = self._makeOne(
@@ -1115,81 +1078,50 @@ class TestAuthTktCookieHelper(unittest.TestCase):
)
request = self._makeRequest()
result = helper.remember(request, 'other')
- self.assertEqual(len(result), 3)
-
- self.assertEqual(result[0][0], 'Set-Cookie')
- self.assertTrue(
- result[0][1].endswith('; Path=/cgi-bin/app.cgi/; SameSite=Lax')
- )
- self.assertTrue(result[0][1].startswith('auth_tkt='))
+ self.assertEqual(len(result), 1)
- self.assertEqual(result[1][0], 'Set-Cookie')
+ name, value = result[0]
+ self.assertEqual(name, 'Set-Cookie')
self.assertTrue(
- result[1][1].endswith(
+ value.endswith(
'; Domain=localhost; Path=/cgi-bin/app.cgi/; SameSite=Lax'
)
)
- self.assertTrue(result[1][1].startswith('auth_tkt='))
-
- self.assertEqual(result[2][0], 'Set-Cookie')
- self.assertTrue(
- result[2][1].endswith(
- '; Domain=.localhost; Path=/cgi-bin/app.cgi/; SameSite=Lax'
- )
- )
- self.assertTrue(result[2][1].startswith('auth_tkt='))
+ self.assertTrue(value.startswith('auth_tkt='))
def test_remember_http_only(self):
helper = self._makeOne('secret', include_ip=True, http_only=True)
request = self._makeRequest()
result = helper.remember(request, 'other')
- self.assertEqual(len(result), 3)
-
- self.assertEqual(result[0][0], 'Set-Cookie')
- self.assertTrue(result[0][1].endswith('; HttpOnly; SameSite=Lax'))
- self.assertTrue(result[0][1].startswith('auth_tkt='))
-
- self.assertEqual(result[1][0], 'Set-Cookie')
- self.assertTrue('; HttpOnly' in result[1][1])
- self.assertTrue(result[1][1].startswith('auth_tkt='))
+ self.assertEqual(len(result), 1)
- self.assertEqual(result[2][0], 'Set-Cookie')
- self.assertTrue('; HttpOnly' in result[2][1])
- self.assertTrue(result[2][1].startswith('auth_tkt='))
+ name, value = result[0]
+ self.assertEqual(name, 'Set-Cookie')
+ self.assertTrue(value.endswith('; HttpOnly; SameSite=Lax'))
+ self.assertTrue(value.startswith('auth_tkt='))
def test_remember_secure(self):
helper = self._makeOne('secret', include_ip=True, secure=True)
request = self._makeRequest()
result = helper.remember(request, 'other')
- self.assertEqual(len(result), 3)
-
- self.assertEqual(result[0][0], 'Set-Cookie')
- self.assertTrue('; secure' in result[0][1])
- self.assertTrue(result[0][1].startswith('auth_tkt='))
-
- self.assertEqual(result[1][0], 'Set-Cookie')
- self.assertTrue('; secure' in result[1][1])
- self.assertTrue(result[1][1].startswith('auth_tkt='))
+ self.assertEqual(len(result), 1)
- self.assertEqual(result[2][0], 'Set-Cookie')
- self.assertTrue('; secure' in result[2][1])
- self.assertTrue(result[2][1].startswith('auth_tkt='))
+ name, value = result[0]
+ self.assertEqual(name, 'Set-Cookie')
+ self.assertTrue('; secure' in value)
+ self.assertTrue(value.startswith('auth_tkt='))
def test_remember_wild_domain_disabled(self):
helper = self._makeOne('secret', wild_domain=False)
request = self._makeRequest()
result = helper.remember(request, 'other')
- self.assertEqual(len(result), 2)
-
- self.assertEqual(result[0][0], 'Set-Cookie')
- self.assertTrue(result[0][1].endswith('; Path=/; SameSite=Lax'))
- self.assertTrue(result[0][1].startswith('auth_tkt='))
+ self.assertEqual(len(result), 1)
- self.assertEqual(result[1][0], 'Set-Cookie')
- self.assertTrue(
- result[1][1].endswith('; Domain=localhost; Path=/; SameSite=Lax')
- )
- self.assertTrue(result[1][1].startswith('auth_tkt='))
+ name, value = result[0]
+ self.assertEqual(name, 'Set-Cookie')
+ self.assertTrue('Domain=' not in value)
+ self.assertTrue(value.endswith('; Path=/; SameSite=Lax'))
+ self.assertTrue(value.startswith('auth_tkt='))
def test_remember_parent_domain(self):
helper = self._makeOne('secret', parent_domain=True)
@@ -1198,13 +1130,12 @@ class TestAuthTktCookieHelper(unittest.TestCase):
result = helper.remember(request, 'other')
self.assertEqual(len(result), 1)
- self.assertEqual(result[0][0], 'Set-Cookie')
+ name, value = result[0]
+ self.assertEqual(name, 'Set-Cookie')
self.assertTrue(
- result[0][1].endswith(
- '; Domain=.example.com; Path=/; SameSite=Lax'
- )
+ value.endswith('; Domain=example.com; Path=/; SameSite=Lax')
)
- self.assertTrue(result[0][1].startswith('auth_tkt='))
+ self.assertTrue(value.startswith('auth_tkt='))
def test_remember_parent_domain_supercedes_wild_domain(self):
helper = self._makeOne('secret', parent_domain=True, wild_domain=True)
@@ -1212,10 +1143,10 @@ class TestAuthTktCookieHelper(unittest.TestCase):
request.domain = 'www.example.com'
result = helper.remember(request, 'other')
self.assertEqual(len(result), 1)
+ name, value = result[0]
+ self.assertEqual(name, 'Set-Cookie')
self.assertTrue(
- result[0][1].endswith(
- '; Domain=.example.com; Path=/; SameSite=Lax'
- )
+ value.endswith('; Domain=example.com; Path=/; SameSite=Lax')
)
def test_remember_explicit_domain(self):
@@ -1257,7 +1188,7 @@ class TestAuthTktCookieHelper(unittest.TestCase):
request = self._makeRequest()
result = helper.remember(request, b'userid')
values = self._parseHeaders(result)
- self.assertEqual(len(result), 3)
+ self.assertEqual(len(result), 1)
val = self._cookieValue(values[0])
self.assertEqual(
val['userid'], text_(base64.b64encode(b'userid').strip())
@@ -1269,7 +1200,7 @@ class TestAuthTktCookieHelper(unittest.TestCase):
request = self._makeRequest()
result = helper.remember(request, 1)
values = self._parseHeaders(result)
- self.assertEqual(len(result), 3)
+ self.assertEqual(len(result), 1)
val = self._cookieValue(values[0])
self.assertEqual(val['userid'], '1')
self.assertEqual(val['user_data'], 'userid_type:int')
@@ -1282,7 +1213,7 @@ class TestAuthTktCookieHelper(unittest.TestCase):
userid = text_(b'\xc2\xa9', 'utf-8')
result = helper.remember(request, userid)
values = self._parseHeaders(result)
- self.assertEqual(len(result), 3)
+ self.assertEqual(len(result), 1)
val = self._cookieValue(values[0])
self.assertEqual(
val['userid'], text_(base64.b64encode(userid.encode('utf-8')))
@@ -1298,7 +1229,7 @@ class TestAuthTktCookieHelper(unittest.TestCase):
result = helper.remember(request, userid)
self.assertTrue(str(w[-1].message).startswith('userid is of type'))
values = self._parseHeaders(result)
- self.assertEqual(len(result), 3)
+ self.assertEqual(len(result), 1)
value = values[0]
self.assertTrue('userid' in value.value)
@@ -1307,7 +1238,7 @@ class TestAuthTktCookieHelper(unittest.TestCase):
request = self._makeRequest()
result = helper.remember(request, 'userid', max_age=500)
values = self._parseHeaders(result)
- self.assertEqual(len(result), 3)
+ self.assertEqual(len(result), 1)
self.assertEqual(values[0]['max-age'], '500')
self.assertTrue(values[0]['expires'])
@@ -1317,7 +1248,7 @@ class TestAuthTktCookieHelper(unittest.TestCase):
request = self._makeRequest()
result = helper.remember(request, 'userid', max_age='500')
values = self._parseHeaders(result)
- self.assertEqual(len(result), 3)
+ self.assertEqual(len(result), 1)
self.assertEqual(values[0]['max-age'], '500')
self.assertTrue(values[0]['expires'])
@@ -1337,69 +1268,34 @@ class TestAuthTktCookieHelper(unittest.TestCase):
helper = self._makeOne('secret')
request = self._makeRequest()
result = helper.remember(request, 'other', tokens=('foo', 'bar'))
- self.assertEqual(len(result), 3)
-
- self.assertEqual(result[0][0], 'Set-Cookie')
- self.assertTrue("/tokens=foo|bar/" in result[0][1])
-
- self.assertEqual(result[1][0], 'Set-Cookie')
- self.assertTrue("/tokens=foo|bar/" in result[1][1])
+ self.assertEqual(len(result), 1)
- self.assertEqual(result[2][0], 'Set-Cookie')
- self.assertTrue("/tokens=foo|bar/" in result[2][1])
+ name, value = result[0]
+ self.assertEqual(name, 'Set-Cookie')
+ self.assertTrue("/tokens=foo|bar/" in value)
def test_remember_samesite_nondefault(self):
helper = self._makeOne('secret', samesite='Strict')
request = self._makeRequest()
result = helper.remember(request, 'userid')
- self.assertEqual(len(result), 3)
-
- self.assertEqual(result[0][0], 'Set-Cookie')
- cookieval = result[0][1]
- self.assertTrue(
- 'SameSite=Strict' in [x.strip() for x in cookieval.split(';')],
- cookieval,
- )
-
- self.assertEqual(result[1][0], 'Set-Cookie')
- cookieval = result[1][1]
- self.assertTrue(
- 'SameSite=Strict' in [x.strip() for x in cookieval.split(';')],
- cookieval,
- )
+ self.assertEqual(len(result), 1)
- self.assertEqual(result[2][0], 'Set-Cookie')
- cookieval = result[2][1]
+ name, value = result[0]
+ self.assertEqual(name, 'Set-Cookie')
self.assertTrue(
- 'SameSite=Strict' in [x.strip() for x in cookieval.split(';')],
- cookieval,
+ 'SameSite=Strict' in [x.strip() for x in value.split(';')], value,
)
def test_remember_samesite_default(self):
helper = self._makeOne('secret')
request = self._makeRequest()
result = helper.remember(request, 'userid')
- self.assertEqual(len(result), 3)
-
- self.assertEqual(result[0][0], 'Set-Cookie')
- cookieval = result[0][1]
- self.assertTrue(
- 'SameSite=Lax' in [x.strip() for x in cookieval.split(';')],
- cookieval,
- )
-
- self.assertEqual(result[1][0], 'Set-Cookie')
- cookieval = result[1][1]
- self.assertTrue(
- 'SameSite=Lax' in [x.strip() for x in cookieval.split(';')],
- cookieval,
- )
+ self.assertEqual(len(result), 1)
- self.assertEqual(result[2][0], 'Set-Cookie')
- cookieval = result[2][1]
+ name, value = result[0]
+ self.assertEqual(name, 'Set-Cookie')
self.assertTrue(
- 'SameSite=Lax' in [x.strip() for x in cookieval.split(';')],
- cookieval,
+ 'SameSite=Lax' in [x.strip() for x in value.split(';')], value,
)
def test_remember_unicode_but_ascii_token(self):
@@ -1432,28 +1328,14 @@ class TestAuthTktCookieHelper(unittest.TestCase):
helper = self._makeOne('secret')
request = self._makeRequest()
headers = helper.forget(request)
- self.assertEqual(len(headers), 3)
+ self.assertEqual(len(headers), 1)
name, value = headers[0]
self.assertEqual(name, 'Set-Cookie')
self.assertEqual(
value,
- 'auth_tkt=; Max-Age=0; Path=/; '
- 'expires=Wed, 31-Dec-97 23:59:59 GMT; SameSite=Lax',
- )
- name, value = headers[1]
- self.assertEqual(name, 'Set-Cookie')
- self.assertEqual(
- value,
'auth_tkt=; Domain=localhost; Max-Age=0; Path=/; '
'expires=Wed, 31-Dec-97 23:59:59 GMT; SameSite=Lax',
)
- name, value = headers[2]
- self.assertEqual(name, 'Set-Cookie')
- self.assertEqual(
- value,
- 'auth_tkt=; Domain=.localhost; Max-Age=0; Path=/; '
- 'expires=Wed, 31-Dec-97 23:59:59 GMT; SameSite=Lax',
- )
class TestAuthTicket(unittest.TestCase):