def GetIOStats(self, pid): try: io_stats = win32process.GetProcessIoCounters( self._GetProcessHandle(pid)) except pywintypes.error, e: errcode = e[0] if errcode == 87: # The process may have been closed. return {} raise
def test_io_counters(self): handle = win32api.OpenProcess(win32con.PROCESS_QUERY_INFORMATION, win32con.FALSE, os.getpid()) self.addCleanup(win32api.CloseHandle, handle) sys_value = win32process.GetProcessIoCounters(handle) psutil_value = psutil.Process().io_counters() self.assertEqual(psutil_value.read_count, sys_value['ReadOperationCount']) self.assertEqual(psutil_value.write_count, sys_value['WriteOperationCount']) self.assertEqual(psutil_value.read_bytes, sys_value['ReadTransferCount']) self.assertEqual(psutil_value.write_bytes, sys_value['WriteTransferCount']) self.assertEqual(psutil_value.other_count, sys_value['OtherOperationCount']) self.assertEqual(psutil_value.other_bytes, sys_value['OtherTransferCount'])