def max_number_of_running_processes(self): """ Obtains information from /proc/sys/kernel/pid_max See `man 5 proc` for more information """ return int(lines_from_file("/proc/sys/kernel/pid_max")[0])
def test_returns_list_of_strings(self): ensure_contains_only_formatted_lines(FILE_PATH, 'line') found_lines = lines_from_file(FILE_PATH) assert_is_instance(found_lines, list) for found_line in found_lines: assert_is_instance(found_line, string_types)
def test_returns_up_to_maximum_number_of_lines(self): ensure_contains_only_formatted_lines(FILE_PATH, 'line', 3) maximum_number_of_lines = 2 found_lines = lines_from_file(FILE_PATH, maximum_number_of_lines) assert_less_equal(maximum_number_of_lines, len(found_lines))
def _net_interface_infos(self): lines = lines_from_file("/proc/net/dev") interface_info_lines = lines[2:] interface_stats = dict() for interface_info_line in interface_info_lines: interface_name, interface_info = interface_info_line.split(':') interface_name = interface_name.strip() interface_info = interface_info.split() incoming = [int(value) for value in interface_info[0:4]] outgoing = [int(value) for value in interface_info[8:12]] collisions = [int(interface_info[14])] interface_stats[interface_name] = NetworkInterfaceInfo( *(incoming + outgoing + collisions)) return interface_stats
def _process_command_line(self, process_id): proc_cmd_line = os.path.join('/proc', process_id, 'cmdline') proc_cmd_line = lines_from_file(proc_cmd_line)[0] return proc_cmd_line.replace('\0', ' ').rstrip()