def test_onlyTopModules(self): """ Verify that the iterModules API will only return top-level modules and packages, not submodules or subpackages. """ for module in modules.iterModules(): self.failIf( '.' in module.name, "no nested modules should be returned from iterModules: %r" % (module.filePath))
#!/usr/bin/env python import sys import os.path from twisted.python.modules import iterModules from scibby.config import values as configuration configuration.plugins_directory = os.path.expanduser(configuration.plugins_directory) sys.path.append(configuration.plugins_directory) plugins = {} # Get list of all plugins and import them # TODO make the modules be packages and have a file describing them as an actual # scibby plugin so not everything in this directory gets imported for modinfo in iterModules(): if os.path.dirname(modinfo.filePath.path) == configuration.plugins_directory: filename = os.path.basename(modinfo.filePath.path) modulename = os.path.splitext(filename)[0] plugins[modulename] = __import__(modulename, globals(), locals())