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,))
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)