def _default_controllers(self): # Find controllers in the root plugin __init__.py controller_class = _controller_class_from_module(self.module, self.name) if controller_class: class_name = controller_class.__module__ + '.' + controller_class.__name__ log.debug('Controller loaded; "%s" = %s' % (self.name, class_name)) return {self.name: controller_class} # Search a controllers directory, standard pylons style if not resource_exists(self.package_name, 'controllers'): return {} controllers = {} directory = resource_filename(self.package_name, 'controllers') for name in controller_scan(directory): module_name = '.'.join([self.package_name, 'controllers', name.replace('/', '.')]) module = import_module(module_name) mycontroller = _controller_class_from_module(module, name) if mycontroller is None: log.warn('Controller %r expected but not found in: %r', name, module) continue controllers[self.name + '/' + name] = mycontroller class_name = mycontroller.__module__ + '.' + mycontroller.__name__ log.debug('Controller loaded; "%s" = %s' % (self.name + '/' + name, class_name)) return controllers
def _default_controllers(self): # Find controllers in the root plugin __init__.py controller_class = _controller_class_from_module( self.module, self.name) if controller_class: class_name = controller_class.__module__ + '.' + controller_class.__name__ log.debug('Controller loaded; "%s" = %s' % (self.name, class_name)) return {self.name: controller_class} # Search a controllers directory, standard pylons style if not resource_exists(self.package_name, 'controllers'): return {} controllers = {} directory = resource_filename(self.package_name, 'controllers') for name in controller_scan(directory): module_name = '.'.join( [self.package_name, 'controllers', name.replace('/', '.')]) module = import_module(module_name) mycontroller = _controller_class_from_module(module, name) if mycontroller is None: log.warn('Controller %r expected but not found in: %r', name, module) continue controllers[self.name + '/' + name] = mycontroller class_name = mycontroller.__module__ + '.' + mycontroller.__name__ log.debug('Controller loaded; "%s" = %s' % (self.name + '/' + name, class_name)) return controllers
def controller_scan(self, directory): """Extend the controller discovery by routes with our plugin controllers. :param directory: The full path to the core controllers directory. :rtype: list :returns: Controller names """ return controller_scan(directory) + self.controller_classes().keys()
def test_controller_scan(self): here_dir = os.path.dirname(__file__) controller_dir = os.path.join(os.path.dirname(here_dir), os.path.join("test_files", "controller_files")) controllers = controller_scan(controller_dir) eq_(len(controllers), 3) eq_(controllers[0], "admin/users") eq_(controllers[1], "content") eq_(controllers[2], "users")
def test_controller_scan(self): here_dir = os.path.dirname(__file__) controller_dir = os.path.join(os.path.dirname(here_dir), os.path.join('test_files', 'controller_files')) controllers = controller_scan(controller_dir) eq_(len(controllers), 3) eq_(controllers[0], 'admin/users') eq_(controllers[1], 'content') eq_(controllers[2], 'users')
def _default_controllers(self): # Find controllers in the root plugin __init__.py controller_class = _controller_class_from_module(self.module, self.name) if controller_class: return {self.name: controller_class} controllers = {} # Search a controllers directory, standard pylons style if resource_exists(self.modname, 'controllers'): directory = resource_filename(self.modname, 'controllers') for name in controller_scan(directory): module_name = '.'.join([self.modname, 'controllers', name.replace('/', '.')]) module = import_module(module_name) mycontroller = _controller_class_from_module(module, name) if mycontroller is None: log.warn('Controller expected but not found in: %r', module) controllers[self.name + '/' + name] = mycontroller return controllers
def directory_scanner(): """ Scan each of the controller paths and use the routes.util controller_scan() to recover from each path. This function uses the paths set up in config['pylons.paths']['controllers'] by the load_environment step. """ returned = [] for directory in config['pylons.paths']['controllers']: #get_log().debug("controller_scan: looking for controllers in '%s'." % directory) rc = controller_scan(directory) #get_log().debug("controller_scan: found controllers '%s'." % str(rc)) returned.extend(rc) return returned