From 306e6f2ad73936e77bde442890b690ba5e415188 Mon Sep 17 00:00:00 2001 From: Thomas Vander Stichele Date: Sun, 2 Dec 2012 17:27:15 +0000 Subject: [PATCH] * morituri/common/cache.py: * morituri/rip/debug.py: * morituri/test/test_common_cache.py: Add rip debug resultcache list to list cached results. --- ChangeLog | 7 +++++++ morituri/common/cache.py | 7 +++++++ morituri/rip/debug.py | 33 ++++++++++++++++++++++++++++-- morituri/test/test_common_cache.py | 6 +++++- 4 files changed, 50 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 277b19d..7768ce1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2012-12-02 Thomas Vander Stichele + + * morituri/common/cache.py: + * morituri/rip/debug.py: + * morituri/test/test_common_cache.py: + Add rip debug resultcache list to list cached results. + 2012-12-02 Thomas Vander Stichele * morituri/common/cache.py (added): diff --git a/morituri/common/cache.py b/morituri/common/cache.py index 3e372f4..f0147bf 100644 --- a/morituri/common/cache.py +++ b/morituri/common/cache.py @@ -22,6 +22,7 @@ import os import os.path +import glob import tempfile import shutil @@ -175,3 +176,9 @@ class ResultCache(log.Loggable): cddbdiscid) return presult + + def getIds(self): + paths = glob.glob(os.path.join(self._path, '*.pickle')) + + return [os.path.splitext(os.path.basename(path))[0] for path in paths] + diff --git a/morituri/rip/debug.py b/morituri/rip/debug.py index ff7dda2..8ae8342 100644 --- a/morituri/rip/debug.py +++ b/morituri/rip/debug.py @@ -22,7 +22,36 @@ from morituri.common import logcommand -from morituri.common import task +from morituri.common import task, cache + + +class RCList(logcommand.LogCommand): + + name = "list" + summary = "list cached results" + + def do(self, args): + self._cache = cache.ResultCache() + results = [] + + for i in self._cache.getIds(): + r = self._cache.getRipResult(i) + results.append((r.object.artist, r.object.title, i)) + + results.sort() + + for artist, title, cddbid in results: + self.stdout.write('%s: %s - %s\n' % ( + cddbid, artist, title)) + + + +class ResultCache(logcommand.LogCommand): + + summary = "debug result cache" + aliases = ['rc', ] + + subCommandClasses = [RCList, ] class Checksum(logcommand.LogCommand): @@ -117,4 +146,4 @@ class Debug(logcommand.LogCommand): summary = "debug internals" - subCommandClasses = [Checksum, Encode, MusicBrainzNGS] + subCommandClasses = [Checksum, Encode, MusicBrainzNGS, ResultCache] diff --git a/morituri/test/test_common_cache.py b/morituri/test/test_common_cache.py index 6dfe87d..55460a5 100644 --- a/morituri/test/test_common_cache.py +++ b/morituri/test/test_common_cache.py @@ -14,6 +14,10 @@ class ResultCacheTestCase(tcommon.TestCase): self.cache = cache.ResultCache( os.path.join(os.path.dirname(__file__), 'cache', 'result')) - def testGet(self): + def testGetResult(self): result = self.cache.getRipResult('fe105a11') self.assertEquals(result.object.title, "The Writing's on the Wall") + + def testGetIds(self): + ids = self.cache.getIds() + self.assertEquals(ids, ['fe105a11'])