(self)
| 2896 | self.assertEqual(len(tokens_seen), 6) |
| 2897 | |
| 2898 | def test_versioning(self): |
| 2899 | # Version 1 still produces distinct tokens per request. |
| 2900 | self.assertNotEqual(self.get_token(version=1), self.get_token(version=1)) |
| 2901 | |
| 2902 | # Refreshed v1 tokens are all identical. |
| 2903 | v1_token = self.get_token(version=1) |
| 2904 | for i in range(5): |
| 2905 | self.assertEqual(self.get_token(v1_token, version=1), v1_token) |
| 2906 | |
| 2907 | # Upgrade to a v2 version of the same token |
| 2908 | v2_token = self.get_token(v1_token) |
| 2909 | self.assertNotEqual(v1_token, v2_token) |
| 2910 | # Each v1 token can map to many v2 tokens. |
| 2911 | self.assertNotEqual(v2_token, self.get_token(v1_token)) |
| 2912 | |
| 2913 | # The tokens are cross-compatible. |
| 2914 | for cookie_token, body_token in ((v1_token, v2_token), (v2_token, v1_token)): |
| 2915 | response = self.fetch( |
| 2916 | "/", |
| 2917 | method="POST", |
| 2918 | body=urllib.parse.urlencode(dict(_xsrf=body_token)), |
| 2919 | headers=self.cookie_headers(cookie_token), |
| 2920 | ) |
| 2921 | self.assertEqual(response.code, 200) |
| 2922 | |
| 2923 | |
| 2924 | class XSRFCookieKwargsTest(SimpleHandlerTestCase): |
nothing calls this directly
no test coverage detected