예제 #1
0
 def subCommands(self):
     commands = itertools.chain(
         plugin.getRenamingCommands(), plugin.getCommands())
     for plg in commands:
         try:
             yield (
                 plg.name,
                 None,
                 config.defaultsFromConfigFactory(self.config, plg),
                 plg.description)
         except AttributeError:
             raise RuntimeError('Malformed plugin: %r' % (plg,))
예제 #2
0
    def test_defaultsFromConfigFactory(self):
        """
        L{renamer.config.defaultsFromConfigFactory} creates a wrapper function
        around a L{renamer.irenamer.ICommand} that, when called, instantiates
        the L{renamer.irenamer.ICommand} and sets default values from a config
        file from a section with a name matched
        L{renamer.irenamer.ICommand.name}. Options that are explicitly provided
        to the command trump values from the config file.
        """
        wrapper = config.defaultsFromConfigFactory(self.config, TestCommand)
        cmd = wrapper()
        cmd.parseOptions([])
        self.assertEquals(cmd['aardvark'], u'hello')
        self.assertEquals(cmd['bobcat'], 3)
        self.assertIdentical(cmd['chocolate'], None)
        self.assertEquals(cmd['donut'], False)

        cmd = wrapper()
        cmd.parseOptions(['--bobcat=7', '--donut'])
        self.assertEquals(cmd['aardvark'], u'hello')
        self.assertEquals(cmd['bobcat'], 7)
        self.assertIdentical(cmd['chocolate'], None)
        self.assertEquals(cmd['donut'], True)