mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
IGN:Tag release
This commit is contained in:
parent
b16ca1e038
commit
19b196f782
@ -9,6 +9,7 @@ __docformat__ = 'restructuredtext en'
|
||||
|
||||
import unittest
|
||||
|
||||
from calibre.constants import iswindows, islinux
|
||||
from calibre.utils.icu import lower
|
||||
from calibre.devices.mtp.driver import MTP_DEVICE
|
||||
from calibre.devices.scanner import DeviceScanner
|
||||
@ -77,6 +78,11 @@ class TestDeviceInteraction(unittest.TestCase):
|
||||
with self.assertRaises(ValueError):
|
||||
self.dev.create_folder(root_file[0], 'sub-folder')
|
||||
|
||||
def test_memory_leaks(self):
|
||||
if not (iswindows or islinux):
|
||||
self.skipTest('Can only test for leaks on windows and linux')
|
||||
from calibre.utils.mem import memory
|
||||
|
||||
def tests():
|
||||
return unittest.TestLoader().loadTestsFromTestCase(TestDeviceInteraction)
|
||||
|
||||
|
@ -53,7 +53,7 @@ class MTP_DEVICE(MTPDeviceBase):
|
||||
self.progress_reporter(p)
|
||||
|
||||
@synchronous
|
||||
def detect_managed_devices(self, devices_on_system):
|
||||
def detect_managed_devices(self, devices_on_system, force_refresh=False):
|
||||
if self.libmtp is None: return None
|
||||
# First remove blacklisted devices.
|
||||
devs = set()
|
||||
@ -74,6 +74,8 @@ class MTP_DEVICE(MTPDeviceBase):
|
||||
devs = devs - self.ejected_devices
|
||||
|
||||
# Now check for MTP devices
|
||||
if force_refresh:
|
||||
self.detect_cache = {}
|
||||
cache = self.detect_cache
|
||||
for d in devs:
|
||||
ans = cache.get(d, None)
|
||||
|
@ -73,12 +73,13 @@ class MTP_DEVICE(MTPDeviceBase):
|
||||
self.wpd.uninit()
|
||||
|
||||
@same_thread
|
||||
def detect_managed_devices(self, devices_on_system):
|
||||
def detect_managed_devices(self, devices_on_system, force_refresh=False):
|
||||
if self.wpd is None: return None
|
||||
|
||||
devices_on_system = frozenset(devices_on_system)
|
||||
if (devices_on_system != self.previous_devices_on_system or time.time()
|
||||
- self.last_refresh_devices_time > 10):
|
||||
if (force_refresh or
|
||||
devices_on_system != self.previous_devices_on_system or
|
||||
time.time() - self.last_refresh_devices_time > 10):
|
||||
self.previous_devices_on_system = devices_on_system
|
||||
self.last_refresh_devices_time = time.time()
|
||||
try:
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user