Example #1
0
def test_session_data_disappears_when_session_does(web_fixture):
    """When a UserSession is deleted, all associated SessionData disappear as well."""
    fixture = web_fixture

    UserSession.initialise_web_session_on(fixture.context)
    user_session = fixture.context.session
    ui_name = 'user_interface'
    channel_name = 'channel'

    session_data = SessionData(web_session=user_session,
                               view_path='/',
                               ui_name=ui_name,
                               channel_name=channel_name)
    Session.add(session_data)
    Session.flush()

    Session.delete(user_session)

    assert Session.query(SessionData).filter_by(
        id=session_data.id).count() == 0
    assert Session.query(UserSession).filter_by(
        id=user_session.id).count() == 0
Example #2
0
def test_session_keeps_living(web_fixture):
    """When SessionData is deleted, the associated UserSession is not affected."""
    fixture = web_fixture

    UserSession.initialise_web_session_on(fixture.context)
    user_session = fixture.context.session
    ui_name = 'user_interface'
    channel_name = 'channel'

    session_data = SessionData(web_session=user_session,
                               view_path='/',
                               ui_name=ui_name,
                               channel_name=channel_name)
    Session.add(session_data)
    Session.flush()

    Session.delete(session_data)

    assert Session.query(SessionData).filter_by(
        id=session_data.id).count() == 0
    assert Session.query(UserSession).filter_by(
        id=user_session.id).one() is user_session
Example #3
0
def test_reading_cookies_on_initialising_a_session(web_fixture):
    fixture = web_fixture

    # Case: session cookie not set in Request
    UserSession.initialise_web_session_on(fixture.context)
    assert not fixture.context.session.is_active()
    assert not fixture.context.session.is_secured()

    # Case: session cookie set in Request
    fixture.context.session = None
    user_session = UserSession()
    user_session.set_last_activity_time()
    Session.add(user_session)

    fixture.request.headers['Cookie'] = ascii_as_bytes_or_str(
        'reahl=%s' % user_session.as_key())
    UserSession.initialise_web_session_on(fixture.context)

    assert fixture.context.session is user_session
    assert fixture.context.session.is_active()
    assert not fixture.context.session.is_secured()

    # Case: session cookie set, secure cookie also set in Request, https
    fixture.request.scheme = 'https'
    fixture.context.session = None
    user_session = UserSession()
    user_session.set_last_activity_time()
    Session.add(user_session)

    fixture.request.headers['Cookie'] = ascii_as_bytes_or_str('reahl=%s , reahl_secure=%s' % \
                                        (user_session.as_key(), user_session.secure_salt))
    UserSession.initialise_web_session_on(fixture.context)

    assert fixture.context.session is user_session
    assert fixture.context.session.is_active()
    assert fixture.context.session.is_secured()

    # Case: session cookie set, secure cookie also set in Request, http
    fixture.request.scheme = 'http'
    fixture.context.session = None
    user_session = UserSession()
    user_session.set_last_activity_time()
    Session.add(user_session)
    fixture.request.headers['Cookie'] = ascii_as_bytes_or_str('reahl=%s , reahl_secure=%s' % \
                                        (user_session.as_key(), user_session.secure_salt))

    UserSession.initialise_web_session_on(fixture.context)

    assert fixture.context.session is user_session
    assert fixture.context.session.is_active()
    assert not fixture.context.session.is_secured()
Example #4
0
 def new_session(self, system_account=None):
     return UserSession()
 def create_user_session(self):
     user_session = UserSession()
     Session.add(user_session)
     ExecutionContext.get_context().session = user_session
     return user_session
Example #6
0
 def new_session(self):
     web_user_session = UserSession()
     Session.add(web_user_session)
     return web_user_session
Example #7
0
 def new_session(self, system_account=None):
     user_session = UserSession()
     Session.add(user_session)
     Session.flush()
     return user_session