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'))
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))
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), )
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'))
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())), )
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), )
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())
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)
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))
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'))
def _remove_cookie_key(name): value = cookie.get_value(name) cookie.unchecked_remove(name) return value