diff --git a/morituri/common/program.py b/morituri/common/program.py index 685a3ad..08a1843 100644 --- a/morituri/common/program.py +++ b/morituri/common/program.py @@ -49,6 +49,7 @@ class Program(log.Loggable): @ivar result: the rip's result @type result: L{result.RipResult} @type outdir: unicode + @type config: L{morituri.common.config.Config} """ cuePath = None @@ -59,13 +60,14 @@ class Program(log.Loggable): _stdout = None - def __init__(self, record=False, stdout=sys.stdout): + def __init__(self, config, record=False, stdout=sys.stdout): """ @param record: whether to record results of API calls for playback. """ self._record = record self._cache = cache.ResultCache() self._stdout = stdout + self._config = config def setWorkingDirectory(self, workingDirectory): if workingDirectory: diff --git a/morituri/rip/cd.py b/morituri/rip/cd.py index c2acb28..6b639ef 100644 --- a/morituri/rip/cd.py +++ b/morituri/rip/cd.py @@ -57,7 +57,8 @@ class _CD(logcommand.LogCommand): def do(self, args): - self.program = program.Program(record=self.getRootCommand().record, + self.program = program.Program(self.getRootCommand().config, + record=self.getRootCommand().record, stdout=self.stdout) self.runner = task.SyncRunner() diff --git a/morituri/rip/image.py b/morituri/rip/image.py index 4c19c15..6c766d6 100644 --- a/morituri/rip/image.py +++ b/morituri/rip/image.py @@ -51,7 +51,7 @@ class Encode(logcommand.LogCommand): default=default) def do(self, args): - prog = program.Program() + prog = program.Program(self.getRootCommand().config) prog.outdir = (self.options.output_directory or os.getcwd()) prog.outdir = prog.outdir.decode('utf-8') @@ -110,7 +110,7 @@ class Retag(logcommand.LogCommand): def do(self, args): - prog = program.Program(stdout=self.stdout) + prog = program.Program(self.getRootCommand().config, stdout=self.stdout) runner = task.SyncRunner() for arg in args: @@ -158,7 +158,7 @@ class Rename(logcommand.LogCommand): def do(self, args): - prog = program.Program(stdout=self.stdout) + prog = program.Program(self.getRootCommand.config(), stdout=self.stdout) runner = task.SyncRunner() for arg in args: @@ -208,7 +208,7 @@ Verifies the image from the given .cue files against the AccurateRip database. ''' def do(self, args): - prog = program.Program() + prog = program.Program(self.getRootCommand.config()) runner = task.SyncRunner() cache = accurip.AccuCache() diff --git a/morituri/test/test_common_program.py b/morituri/test/test_common_program.py index 21a8926..d49c8bb 100644 --- a/morituri/test/test_common_program.py +++ b/morituri/test/test_common_program.py @@ -1,13 +1,14 @@ # -*- Mode: Python; test-case-name: morituri.test.test_common_program -*- # vi:si:et:sw=4:sts=4:ts=4 + import os import pickle import unittest from morituri.result import result -from morituri.common import program, accurip, mbngs +from morituri.common import program, accurip, mbngs, config from morituri.rip import common as rcommon @@ -28,7 +29,7 @@ class TrackImageVerifyTestCase(unittest.TestCase): 1842579359, 2850056507, 1329730252, 2526965856, 2525886806, 209743350, 3184062337, 2099956663, 2943874164, 2321637196] - prog = program.Program() + prog = program.Program(config.Config()) prog.result = result.RipResult() # fill it with empty trackresults for i, c in enumerate(checksums): @@ -76,7 +77,7 @@ class HTOATestCase(unittest.TestCase): self._tracks = pickle.load(open(path, 'rb')) def testGetAccurateRipResults(self): - prog = program.Program() + prog = program.Program(config.Config()) prog.result = result.RipResult() prog.result.tracks = self._tracks @@ -86,7 +87,7 @@ class HTOATestCase(unittest.TestCase): class PathTestCase(unittest.TestCase): def testStandardTemplateEmpty(self): - prog = program.Program() + prog = program.Program(config.Config()) path = prog.getPath(u'/tmp', rcommon.DEFAULT_DISC_TEMPLATE, 'mbdiscid', 0) @@ -94,7 +95,7 @@ class PathTestCase(unittest.TestCase): u'/tmp/unknown/Unknown Artist - mbdiscid/Unknown Artist - mbdiscid') def testStandardTemplateFilled(self): - prog = program.Program() + prog = program.Program(config.Config()) md = mbngs.DiscMetadata() md.artist = md.sortName = 'Jeff Buckley' md.title = 'Grace' @@ -106,7 +107,7 @@ class PathTestCase(unittest.TestCase): u'/tmp/unknown/Jeff Buckley - Grace/Jeff Buckley - Grace') def testIssue66TemplateFilled(self): - prog = program.Program() + prog = program.Program(config.Config()) md = mbngs.DiscMetadata() md.artist = md.sortName = 'Jeff Buckley' md.title = 'Grace'