Example #1
0
    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
Example #2
0
    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
Example #3
0
    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()
Example #4
0
    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()
Example #5
0
 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")
Example #6
0
 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')
Example #7
0
 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')
Example #8
0
 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
Example #9
0
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