예제 #1
0
def get_paused_sessions():
    if not os.path.exists(PAUSED_SESSIONS_FILE):
        return []

    try:
        sessions_f = open_locked(PAUSED_SESSIONS_FILE, 'r')
    except IOError as err:
        logger.error('Error opening the paused sessions file: {}'.format(err))
        return []
    else:
        with sessions_f:
            paused_sessions = []
            for session in sessions_f:
                if not session:
                    continue

                try:
                    new_session = TrackingSession.loads(session)
                except TypeError:
                    logger.warn(
                        'Failed to process session: {}'.format(session))
                    continue
                paused_sessions.append(new_session)

            return paused_sessions
def test_pause_tracking_sessions(tracking_session, sample_tracking_sessions):
    import kano_profile.tracker.tracking_sessions as tracking_sessions
    from kano_profile.tracker.tracking_session import TrackingSession
    from kano_profile.paths import PAUSED_SESSIONS_FILE

    open_session = tracking_session.format_session('active-session', 987654321,
                                                   os.getpid(), 55, False)
    open_session_obj = TrackingSession(name=open_session['name'],
                                       pid=open_session['pid'])
    sample_tracking_sessions.append(open_session)
    tracking_session.setup_sessions(sample_tracking_sessions)
    tracking_session.setup_paused_sessions(None)

    assert tracking_sessions.get_open_sessions() == [open_session_obj]
    assert tracking_sessions.get_paused_sessions() == []

    tracking_sessions.pause_tracking_sessions()

    assert tracking_sessions.get_open_sessions() == []
    assert tracking_sessions.get_paused_sessions() == [open_session_obj]

    with open(PAUSED_SESSIONS_FILE, 'r') as paused_sessions_f:
        tracking_session = [line for line in paused_sessions_f if line]
        assert len(tracking_session) == 1
        assert TrackingSession.loads(tracking_session[0]) == open_session_obj
def test_pause_tracking_sessions(tracking_session, sample_tracking_sessions):
    import kano_profile.tracker.tracking_sessions as tracking_sessions
    from kano_profile.tracker.tracking_session import TrackingSession
    from kano_profile.paths import PAUSED_SESSIONS_FILE

    open_session = tracking_session.format_session(
        'active-session', 987654321, os.getpid(), 55, False
    )
    open_session_obj = TrackingSession(
        name=open_session['name'], pid=open_session['pid']
    )
    sample_tracking_sessions.append(open_session)
    tracking_session.setup_sessions(sample_tracking_sessions)
    tracking_session.setup_paused_sessions(None)

    assert tracking_sessions.get_open_sessions() == [open_session_obj]
    assert tracking_sessions.get_paused_sessions() == []

    tracking_sessions.pause_tracking_sessions()

    assert tracking_sessions.get_open_sessions() == []
    assert tracking_sessions.get_paused_sessions() == [open_session_obj]

    with open(PAUSED_SESSIONS_FILE, 'r') as paused_sessions_f:
        tracking_session = [
            line for line in paused_sessions_f
            if line
        ]
        assert len(tracking_session) == 1
        assert TrackingSession.loads(tracking_session[0]) == open_session_obj
def get_paused_sessions():
    if not os.path.exists(PAUSED_SESSIONS_FILE):
        return []

    try:
        sessions_f = open_locked(PAUSED_SESSIONS_FILE, 'r')
    except IOError as err:
        logger.error('Error opening the paused sessions file: {}'.format(err))
        return []
    else:
        with sessions_f:
            paused_sessions = []
            for session in sessions_f:
                if not session:
                    continue

                try:
                    new_session = TrackingSession.loads(session)
                except TypeError:
                    logger.warn('Failed to process session: {}'.format(session))
                    continue
                paused_sessions.append(new_session)

            return paused_sessions