def testLoadNoneDone(self): self._operator.save() o = renamer.Operator(self._statePath, 'test') o.load() self.assertEquals(o._todo, self._operator._todo) self.assertEquals(o._done, []) os.unlink(self._source)
def setUp(self): self._statePath = tempfile.mkdtemp(suffix='.morituri.renamer.operator') self._operator = renamer.Operator(self._statePath, 'test') (fd, self._source) = tempfile.mkstemp(suffix='.morituri.renamer.operator') os.write(fd, 'This is a test\nThis is another\n') os.close(fd) (fd, self._destination) = tempfile.mkstemp( suffix='.morituri.renamer.operator') os.close(fd) os.unlink(self._destination) self._operator.addOperation( renamer.RenameInFile(self._source, 'is is a', 'at was some')) self._operator.addOperation( renamer.RenameFile(self._source, self._destination))
def testLoadOneDone(self): self.assertEquals(len(self._operator._done), 0) self._operator.save() self._operator.next() self.assertEquals(len(self._operator._done), 1) o = renamer.Operator(self._statePath, 'test') o.load() self.assertEquals(len(o._done), 1) self.assertEquals(o._todo, self._operator._todo) self.assertEquals(o._done, self._operator._done) # now continue o.next() self.assertEquals(len(o._done), 2) os.unlink(self._destination)
def do(self, args): prog = program.Program(self.getRootCommand.config(), stdout=self.stdout) runner = task.SyncRunner() for arg in args: self.stdout.write('Renaming image %r\n' % arg) arg = arg.decode('utf-8') cueImage = image.Image(arg) cueImage.setup(runner) mbdiscid = cueImage.table.getMusicBrainzDiscId() operator = renamer.Operator(statePath, mbdiscid) self.stdout.write('MusicBrainz disc id is %s\n' % mbdiscid) prog.metadata = prog.getMusicBrainz( cueImage.table, mbdiscid, release=self.options.release_id) if not prog.metadata: print 'Not in MusicBrainz database, skipping' continue # FIXME: this feels like we're poking at internals. prog.cuePath = arg prog.result = result.RipResult() for track in cueImage.table.tracks: path = cueImage.getRealPath(track.indexes[1].path) taglist = prog.getTagList(track.number) self.debug( 'possibly retagging %r from cue path %r with taglist %r', path, arg, taglist) t = encode.SafeRetagTask(path, taglist) runner.run(t) path = os.path.basename(path) if t.changed: print 'Retagged %s' % path else: print '%s already tagged correctly' % path print
def testLoadOneInterrupted(self): self.assertEquals(len(self._operator._done), 0) self._operator.save() # cheat by doing a task without saving self._operator._todo[0].do() self.assertEquals(len(self._operator._done), 0) o = renamer.Operator(self._statePath, 'test') o.load() self.assertEquals(len(o._done), 0) self.assertEquals(o._todo, self._operator._todo) self.assertEquals(o._done, self._operator._done) # now continue, resuming o.next() self.assertEquals(len(o._done), 1) o.next() self.assertEquals(len(o._done), 2) os.unlink(self._destination)