def test_callback(self): app = Flask(__name__) app.config['SECRET_KEY'] = 'foo' paranoid = Paranoid() paranoid.init_app(app) paranoid.redirect_view = 'custom_redirect' @app.route('/') def index(): return 'foobar' @paranoid.on_invalid_session def custom_callback(): return 'foo' client = app.test_client(use_cookies=True) self.assertEqual(paranoid.redirect_view, custom_callback) rv = client.get('/', headers={'User-Agent': 'foo'}) self.assertEqual(rv.status_code, 200) rv = client.get('/', headers={'User-Agent': 'bar'}) self.assertEqual(rv.status_code, 200) self.assertEqual(rv.get_data(as_text=True), 'foo') self.assertIn(self._delete_cookie('session'), rv.headers.getlist('Set-Cookie')) self.assertNotIn(self._delete_cookie('remember_token'), rv.headers.getlist('Set-Cookie'))
from flask_paranoid import Paranoid from typing import Callable from TexDBook.src.python.core.init_app import app, default_init_app from TexDBook.src.python.util.flask.flask_utils_types import JsonOrMessage from TexDBook.src.python.util.flask.rest_api import json, rest_api from TexDBook.src.python.util.oop import override from TexDBook.src.python.util.password import sha256 init_app = default_init_app login_manager = LoginManager() # type: LoginManager login_manager.init_app(app) paranoid = Paranoid() # type: Paranoid paranoid.init_app(app) # @override(Paranoid) # def write_token_to_session(_super, self, token): # print("writing token: " + token) # print(paranoid.create_token()) # print(paranoid.get_token_from_session()) # print(request.headers.get("User-Agent")) # print(request.headers.get("X-Forwarded-For")) # print(request.remote_addr) # return _super(self, token) @override(Paranoid) def create_token(_super, self): # type: (Callable[[], str], Paranoid) -> str