コード例 #1
0
ファイル: test_sessions.py プロジェクト: zhankura/quart
def _save_session(session: SecureCookieSession) -> Response:
    interface = SecureCookieSessionInterface()
    app = Quart(__name__)
    app.secret_key = 'secret'
    response = Response('')
    interface.save_session(app, session, response)
    return response
コード例 #2
0
ファイル: test_sessions.py プロジェクト: zhankura/quart
def test_secure_cookie_session_interface_open_session() -> None:
    session = SecureCookieSession()
    session['something'] = 'else'
    interface = SecureCookieSessionInterface()
    app = Quart(__name__)
    app.secret_key = 'secret'
    response = Response('')
    interface.save_session(app, session, response)
    request = Request('GET', 'http', '/', b'', CIMultiDict())
    request.headers['Cookie'] = response.headers['Set-Cookie']
    new_session = interface.open_session(app, request)
    assert new_session == session
コード例 #3
0
async def _save_session(session: SecureCookieSession) -> Response:
    interface = SecureCookieSessionInterface()
    app = Quart(__name__)
    app.secret_key = "secret"
    response = Response("")
    await interface.save_session(app, session, response)
    return response
コード例 #4
0
ファイル: test_sessions.py プロジェクト: zhankura/quart
def test_secure_cookie_session_interface_save_session() -> None:
    session = SecureCookieSession()
    session['something'] = 'else'
    interface = SecureCookieSessionInterface()
    app = Quart(__name__)
    app.secret_key = 'secret'
    response = Response('')
    interface.save_session(app, session, response)
    cookies = SimpleCookie()
    cookies.load(response.headers['Set-Cookie'])
    cookie = cookies[app.session_cookie_name]
    assert cookie['path'] == interface.get_cookie_path(app)
    assert cookie['httponly'] == '' if not interface.get_cookie_httponly(app) else True
    assert cookie['secure'] == '' if not interface.get_cookie_secure(app) else True
    assert cookie['domain'] == (interface.get_cookie_domain(app) or '')
    assert cookie['expires'] == (interface.get_expiration_time(app, session) or '')
    assert response.headers['Vary'] == 'Cookie'
コード例 #5
0
ファイル: test_sessions.py プロジェクト: yongheshinian/quart
async def test_secure_cookie_session_interface_open_session() -> None:
    session = SecureCookieSession()
    session["something"] = "else"
    interface = SecureCookieSessionInterface()
    app = Quart(__name__)
    app.secret_key = "secret"
    response = Response("")
    await interface.save_session(app, session, response)
    request = Request("GET",
                      "http",
                      "/",
                      b"",
                      Headers(),
                      "",
                      "1.1", {},
                      send_push_promise=no_op_push)
    request.headers["Cookie"] = response.headers["Set-Cookie"]
    new_session = await interface.open_session(app, request)
    assert new_session == session
コード例 #6
0
async def test_secure_cookie_session_interface_save_session() -> None:
    session = SecureCookieSession()
    session["something"] = "else"
    interface = SecureCookieSessionInterface()
    app = Quart(__name__)
    app.secret_key = "secret"
    response = Response("")
    await interface.save_session(app, session, response)
    cookies: SimpleCookie = SimpleCookie()
    cookies.load(response.headers["Set-Cookie"])
    cookie = cookies[app.session_cookie_name]
    assert cookie["path"] == interface.get_cookie_path(app)
    assert cookie["httponly"] == "" if not interface.get_cookie_httponly(
        app) else True
    assert cookie["secure"] == "" if not interface.get_cookie_secure(
        app) else True
    if version_info >= (3, 8):
        assert cookie["samesite"] == (interface.get_cookie_samesite(app) or "")
    assert cookie["domain"] == (interface.get_cookie_domain(app) or "")
    assert cookie["expires"] == (interface.get_expiration_time(app, session)
                                 or "")
    assert response.headers["Vary"] == "Cookie"
コード例 #7
0
from sqlalchemy import func, or_
from sqlalchemy.orm.attributes import flag_modified

import envs
from notificationmanager import notify
from utils import (
    check_password_hash,
    dburl,
    generate_password_hash,
    get_data_from,
    is_logged_in,
    open_and_read,
    safe_int,
)

cookie_sess = SecureCookieSessionInterface()


class SameSite(Enum):
    none = "None"


app = Quart(__name__)
app.__sockets__ = set()
sec = SecureCookie(samesite=SameSite.none)

app.secret_key = os.environ.get("_secret-key")
app.config["SQLALCHEMY_DATABASE_URI"] = dburl.replace("postgres://",
                                                      "postgresql://")
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db = SQLAlchemy(app)