def test_secure_dumps_and_loads(self): """ Tests secure_dumps and secure_loads""" testobj = {'a': 1, 'b': 2} testkey = 'mysecret' secured = secure_dumps(testobj, testkey) original = secure_loads(secured, testkey) self.assertEqual(testobj, original) self.assertTrue(isinstance(secured, bytes)) self.assertTrue(b':' in secured) large_testobj = [x for x in range(1000)] secured_comp = secure_dumps(large_testobj, testkey, compression_level=9) original_comp = secure_loads(secured_comp, testkey, compression_level=9) self.assertEqual(large_testobj, original_comp) secured = secure_dumps(large_testobj, testkey) self.assertTrue(len(secured_comp) < len(secured)) testhash = 'myhash' secured = secure_dumps(testobj, testkey, testhash) original = secure_loads(secured, testkey, testhash) self.assertEqual(testobj, original) wrong1 = secure_loads(secured, testkey, 'wronghash') self.assertEqual(wrong1, None) wrong2 = secure_loads(secured, 'wrongkey', testhash) self.assertEqual(wrong2, None) wrong3 = secure_loads(secured, 'wrongkey', 'wronghash') self.assertEqual(wrong3, None) wrong4 = secure_loads('abc', 'a', 'b') self.assertEqual(wrong4, None)
def _try_store_in_cookie(self, request, response): if self._forget or self._unchanged(response): self.save_session_id_cookie() return False name = response.session_data_name compression_level = response.session_cookie_compression_level value = secure_dumps(dict(self), response.session_cookie_key, compression_level=compression_level) expires = response.session_cookie_expires rcookies = response.cookies rcookies.pop(name, None) rcookies[name] = value rcookies[name]['path'] = '/' if expires: rcookies[name]['expires'] = expires.strftime(FMT) return True
def _try_store_in_cookie(self, request, response): if self._forget or self._unchanged(response): # self.clear_session_cookies() self.save_session_id_cookie() return False name = response.session_data_name compression_level = response.session_cookie_compression_level value = secure_dumps(dict(self), response.session_cookie_key, compression_level=compression_level) rcookies = response.cookies rcookies.pop(name, None) rcookies[name] = value rcookies[name]["path"] = "/" expires = response.session_cookie_expires if isinstance(expires, datetime.datetime): expires = expires.strftime(FMT) if expires: rcookies[name]["expires"] = expires return True
def _try_store_in_cookie(self, request, response): if self._forget or self._unchanged(response): # self.clear_session_cookies() self.save_session_id_cookie() return False name = response.session_data_name compression_level = response.session_cookie_compression_level value = secure_dumps(dict(self), current._session_cookie_key, compression_level=compression_level) rcookies = response.cookies rcookies.pop(name, None) rcookies[name] = value rcookies[name]['path'] = '/' expires = response.session_cookie_expires if isinstance(expires, datetime.datetime): expires = expires.strftime(FMT) if expires: rcookies[name]['expires'] = expires return True