Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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))
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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
Exemplo n.º 5
0
    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)