diff options
| author | Michael Merickel <michael@merickel.org> | 2020-11-01 18:09:12 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-01 18:09:12 -0600 |
| commit | f0a61fbe2f51173bf283989bee4085f8e839e952 (patch) | |
| tree | 82dc3afa815d6dd3e26529c37fbf137af555b0e4 /tests | |
| parent | ee7ca28cc51cf40d1190144834704e287c9fc72d (diff) | |
| parent | a8fe2cb53472bdbd515124a56faadea3b6a9d46a (diff) | |
| download | pyramid-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.py | 260 |
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): |
