def track_subprocess(name, cmd): """ Launch and track the session of a process. :param name: Name of the session. :type name: str :param cmd: The command line (env vars are not supported). :type cmd: str """ cmd_args = shlex.split(cmd) p = subprocess.Popen(cmd_args) pid = p.pid session_start(name, pid) p.wait() session_end(get_session_file_path(name, pid))
def test_session_start_no_pid(tracking_session): import kano_profile.tracker.tracking_sessions as tracking_sessions from kano_profile.tracker.tracking_session import TrackingSession tracking_session.setup_sessions([]) tracking_session.setup_paused_sessions(None) test_session = TrackingSession(name='test', pid=os.getpid()) session_path = tracking_sessions.session_start(test_session.name) assert os.path.abspath(session_path) == test_session.path with open(test_session.path, 'r') as test_session_f: session_data = json.load(test_session_f) assert test_session.name == session_data['name'] assert test_session.pid == session_data['pid']
def test_session_start_with_pid(tracking_session): import kano_profile.tracker.tracking_sessions as tracking_sessions from kano_profile.tracker.tracking_session import TrackingSession tracking_session.setup_sessions([]) tracking_session.setup_paused_sessions(None) test_session = TrackingSession(name='test', pid=1234) session_path = tracking_sessions.session_start( test_session.name, test_session.pid ) assert os.path.abspath(session_path) == test_session.path with open(test_session.path, 'r') as test_session_f: session_data = json.load(test_session_f) assert test_session.name == session_data['name'] assert test_session.pid == session_data['pid']
def __init__(self): self.path = session_start(get_program_name()) atexit.register(self._write_times)