Пример #1
0
def test_set_get():
    from pykern import pkunit
    from pykern.pkunit import pkeq
    from pykern.pkdebug import pkdp
    from pykern import pkcollections
    from sirepo import cookie

    class _Response(pkcollections.Dict):
        def set_cookie(self, *args, **kwargs):
            self.args = args
            self.kwargs = kwargs

    cookie.process_header('x')
    with pkunit.pkexcept('KeyError'):
        cookie.get_value('hi')
    with pkunit.pkexcept('AssertionError'):
        cookie.set_value('hi', 'hello')
    pkeq(None, cookie.unchecked_get_value('hi'))
    cookie.init_mock()
    cookie.set_value('hi', 'hello')
    r = _Response(status_code=200)
    cookie.save_to_cookie(r)
    pkeq('sirepo_dev', r.args[0])
    pkeq(False, r.kwargs['secure'])
    pkeq('hello', cookie.get_value('hi'))
    cookie.unchecked_remove('hi')
    pkeq(None, cookie.unchecked_get_value('hi'))
    cookie.process_header('sirepo_dev={}'.format(r.args[1]))
    pkeq('hello', cookie.get_value('hi'))
Пример #2
0
def login_success_redirect(sim_type):
    r = None
    if cookie.get_value(_COOKIE_STATE) == _STATE_COMPLETE_REGISTRATION:
        if cookie.get_value(_COOKIE_METHOD) == METHOD_GUEST:
            complete_registration()
        else:
            r = 'completeRegistration'
    raise sirepo.util.SRException(r, PKDict(sim_type=sim_type, reload_js=True))
Пример #3
0
def set_default_state(logged_out_as_anonymous=False):
    if not cookie.has_sentinel():
        return None
    if not cookie.has_key(_COOKIE_STATE):
        _update_session(_ANONYMOUS)
    elif logged_out_as_anonymous and cookie.get_value(_COOKIE_STATE) == _LOGGED_OUT:
        _update_session(_ANONYMOUS)
    return pkcollections.Dict(
        login_state=_LOGIN_STATE_MAP.get(cookie.get_value(_COOKIE_STATE), _ANONYMOUS_OAUTH_TYPE),
        user_name=cookie.get_value(_COOKIE_NAME),
    )
Пример #4
0
def test_set_get():
    from pykern import pkunit, pkcompat
    from pykern.pkunit import pkeq
    from pykern.pkdebug import pkdp
    from sirepo import cookie

    with cookie.process_header('x'):
        with pkunit.pkexcept('KeyError'):
            cookie.get_value('hi1')
        with pkunit.pkexcept('AssertionError'):
            cookie.set_value('hi2', 'hello')
        pkeq(None, cookie.unchecked_get_value('hi3'))
Пример #5
0
def login_success_response(sim_type, want_redirect=False):
    r = None
    if (cookie.get_value(_COOKIE_STATE) == _STATE_COMPLETE_REGISTRATION
            and cookie.get_value(_COOKIE_METHOD) == METHOD_GUEST):
        complete_registration()
    if want_redirect:
        r = 'completeRegistration' if (
            cookie.get_value(_COOKIE_STATE)
            == _STATE_COMPLETE_REGISTRATION) else None
        raise sirepo.util.Redirect(
            sirepo.uri.local_route(sim_type, route_name=r))
    raise sirepo.util.Response(response=http_reply.gen_json_ok(
        PKDict(authState=_auth_state())), )
Пример #6
0
def set_default_state(logged_out_as_anonymous=False):
    if not cookie.has_sentinel():
        return None
    if not cookie.has_key(_COOKIE_STATE):
        _update_session(_ANONYMOUS)
    elif logged_out_as_anonymous and cookie.get_value(
            _COOKIE_STATE) == _LOGGED_OUT:
        _update_session(_ANONYMOUS)
    return pkcollections.Dict(
        login_state=_LOGIN_STATE_MAP.get(cookie.get_value(_COOKIE_STATE),
                                         _ANONYMOUS_OAUTH_TYPE),
        user_name=cookie.get_value(_COOKIE_NAME),
    )
Пример #7
0
def test_1():
    import shutil
    from pykern import pkconfig, pkunit, pkio
    from pykern.pkunit import pkeq
    from pykern.pkdebug import pkdp
    from sirepo import srunit
    srunit.flask_client()

    from sirepo import cookie
    cookie.init_mock()
    cookie.init('x')
    with pkunit.pkexcept('Unauthorized'):
        cookie.get_user()
    with pkunit.pkexcept('Unauthorized'):
        cookie.get_user(checked=False)
    cookie.set_sentinel()
    cookie.set_user('abc')
    cookie.set_value('hi', 'hello')
    r = _Response(status_code=200)
    cookie.save_to_cookie(r)
    pkeq('sirepo_dev', r.args[0])
    pkeq(False, r.kwargs['secure'])
    pkeq('abc', cookie.get_user())
    cookie.clear_user()
    cookie.unchecked_remove('hi')
    pkeq(None, cookie.get_user(checked=False))
    cookie.init('sirepo_dev={}'.format(r.args[1]))
    pkeq('hello', cookie.get_value('hi'))
    pkeq('abc', cookie.get_user())
Пример #8
0
def test_1():
    import shutil
    from pykern import pkconfig, pkunit, pkio
    from pykern.pkunit import pkeq
    from pykern.pkdebug import pkdp
    from sirepo import srunit
    srunit.flask_client()

    from sirepo import cookie
    cookie.init_mock()
    cookie.init('x')
    with pkunit.pkexcept('Unauthorized'):
        cookie.get_user()
    with pkunit.pkexcept('Unauthorized'):
        cookie.get_user(checked=False)
    cookie.set_sentinel()
    cookie.set_user('abc')
    cookie.set_value('hi', 'hello')
    r = _Response(status_code=200)
    cookie.save_to_cookie(r)
    pkeq('sirepo_dev', r.args[0])
    pkeq(False, r.kwargs['secure'])
    pkeq('abc', cookie.get_user())
    cookie.clear_user()
    cookie.unchecked_remove('hi')
    pkeq(None, cookie.get_user(checked=False))
    cookie.init('sirepo_dev={}'.format(r.args[1]))
    pkeq('hello', cookie.get_value('hi'))
    pkeq('abc', cookie.get_user())
Пример #9
0
def login_success_redirect(sim_type):
    if sim_type:
        if cookie.get_value(_COOKIE_STATE) == _STATE_COMPLETE_REGISTRATION:
            return http_reply.gen_redirect_for_local_route(
                sim_type,
                'completeRegistration',
            )
    return http_reply.gen_redirect_for_root(sim_type)
Пример #10
0
    def _op():
        from sirepo import cookie

        pkeq(uid, cookie.get_user(checked=False))
        for expect, key in cases:
            if expect is None:
                pkeq(False, cookie.has_key(key))
            else:
                pkeq(expect, cookie.get_value(key))
Пример #11
0
    def _op():
        from sirepo import cookie

        pkeq(uid, cookie.get_user(checked=False))
        for expect, key in cases:
            if expect is None:
                pkeq(False, cookie.has_key(key))
            else:
                pkeq(expect, cookie.get_value(key))
Пример #12
0
def test_cookie_outside_of_flask_request():
    from pykern import pkcompat
    from pykern.pkunit import pkeq
    from sirepo import cookie
    from sirepo import srunit

    with srunit.auth_db_session(), \
         cookie.set_cookie_outside_of_flask_request():
        cookie.set_value('hi4', 'hello')
        r = _Response(status_code=200)
        cookie.save_to_cookie(r)
        pkeq('sirepo_dev', r.args[0])
        pkeq(False, r.kwargs['secure'])
        pkeq('hello', cookie.get_value('hi4'))
        cookie.unchecked_remove('hi4')
        pkeq(None, cookie.unchecked_get_value('hi4'))
        # Nest cookie contexts
        with cookie.process_header(
                'sirepo_dev={}'.format(pkcompat.from_bytes(r.args[1])), ):
            pkeq('hello', cookie.get_value('hi4'))
Пример #13
0
def _remove_cookie_key(name):
    value = cookie.get_value(name)
    cookie.unchecked_remove(name)
    return value
Пример #14
0
def _remove_cookie_key(name):
    value = cookie.get_value(name)
    cookie.unchecked_remove(name)
    return value