def test_find_worker_pid_no_daemon(mock_find_daemon_pid, mock_process_iter, mock_process): process_name = 'myprocess' dp = DaemonProcess(process_name) #set up mock values mock_find_daemon_pid.return_value = None mock_process.ppid.return_value = 88 mock_process.pid = 100 mock_process_iter.return_value = [mock_process] #find the worker PIDs result = dp.find_worker_pid() #check that find_worker_pid called find_daemon_pid with no arguements mock_find_daemon_pid.assert_called_with() #check list is None assert result == None
def test_find_worker_pid(mock_find_daemon_pid, mock_process_iter, mock_process): process_name = 'myprocess' dp = DaemonProcess(process_name) #set up mock values mock_find_daemon_pid.return_value = 11 mock_process.ppid.return_value = 11 mock_process.pid = 100 mock_process_iter.return_value = [mock_process] #find the worker PIDs result = dp.find_worker_pid() #check that find_worker_pid called find_daemon_pid with no arguements mock_find_daemon_pid.assert_called_with() #check worker PID 100 is in list assert (100 in result)
import sys import time import datetime import argparse from daemonprocess import DaemonProcess import memory_stats import cpu_stats parser = argparse.ArgumentParser() parser.add_argument("process", help="name of worker processes to monitor") parser.add_argument("frequency", type=int, help="sample frequency in seconds") args = parser.parse_args() process_name = args.process frequency_sec = args.frequency while True: current_time = str(datetime.datetime.now()) dp = DaemonProcess(process_name) list_pids = dp.find_worker_pid() if list_pids is None: break mem = memory_stats.memory_average(list_pids) cpu = cpu_stats.cpu_usage(list_pids) print current_time, (process_name, mem, cpu) time.sleep(frequency_sec)