Esempio n. 1
0
def app_factory(global_settings, **local_settings):  # pylint: disable=W0613
    reg = get_current_registry()
    config = Configurator(reg)
    config.setup_registry(settings=local_settings, root_factory=RootFactory())
    zcml_file = local_settings.get("configure_zcml", "configure.zcml")
    config.load_zcml(zcml_file)
    return config.make_wsgi_app()
Esempio n. 2
0
 def test_configure_with_full_zcml(self):
     reg = self._registry
     # Check adapters.
     ent = FooEntity()
     member = object.__new__(FooMember)
     coll = object.__new__(FooCollection)
     # Make sure no adapters are in the registry.
     self.assert_is_none(
         reg.queryAdapter(coll, IMemberResource, name='member-class'))
     self.assert_is_none(
         reg.queryAdapter(member,
                          ICollectionResource,
                          name='collection-class'))
     self.assert_is_none(
         reg.queryAdapter(member, IEntity, name='entity-class'))
     self.assert_is_none(reg.queryAdapter(ent, IMemberResource))
     self.assert_is_none(
         reg.queryAdapter(coll, IRepresenter,
                          name=CsvMime.mime_type_string))
     # Load the configuration.
     config = Configurator(registry=reg, package=package)
     config.load_zcml('everest.tests.simple_app:configure.zcml')
     self.__check(reg, member, ent, coll)
     rpr = as_representer(coll, CsvMime)
     self.assert_true(isinstance(rpr, Representer))
Esempio n. 3
0
 def __create(cls, ini):
     reg = Registry('testing')
     conf = Configurator(registry=reg, package=ini.package_name)
     conf.setup_registry(settings=ini.settings)
     if not ini.config_file_name is None and not ini.package_name is None:
         conf.begin()
         try:
             conf.load_zcml(ini.config_file_name)
         finally:
             conf.end()
     return conf
Esempio n. 4
0
 def __create(cls, ini):
     reg = Registry('testing')
     conf = Configurator(registry=reg, package=ini.package_name)
     conf.setup_registry(settings=ini.settings)
     if not ini.config_file_name is None and not ini.package_name is None:
         conf.begin()
         try:
             conf.load_zcml(ini.config_file_name)
         finally:
             conf.end()
     return conf
Esempio n. 5
0
File: run.py Progetto: papagr/TheLMA
def create_config(settings, package='thelma', registry=None):
    """
    Returns a configurator for TheLMA.
    """
    config = Configurator(package=package, registry=registry)
    if registry is None:
        config.setup_registry(settings=settings, root_factory=RootFactory())
        config.load_zcml('configure.zcml')
    # tractor registration
    tractor_config_file = settings['tractor_config_file']
    tractor_api = make_api_from_config(tractor_config_file)
    config.registry.registerUtility(tractor_api, ITractor)  # pylint: disable=E1103
    return config
Esempio n. 6
0
class BaseTestCaseWithConfiguration(TestCaseWithIni):
    """
    Base class for test cases that access an initialized (but not configured)
    registry.

    :ivar config: The registry configurator. This is set in the set_up method.
    """
    #: The name of a package containing a configuration file to load.
    #: Defaults to `None` indicating that no configuration applies.
    package_name = None
    # : The name of a ZCML configuration file to use.
    config_file_name = 'configure.zcml'
    # : The section name in the ini file to look for settings. Override as
    # : needed in derived classes.
    ini_section_name = None

    def set_up(self):
        super(BaseTestCaseWithConfiguration, self).set_up()
        # Create and configure a new testing registry.
        reg = Registry('testing')
        self.config = Configurator(registry=reg,
                                   package=self.package_name)
        if not self.ini_section_name is None:
            settings = self.ini.get_settings(self.ini_section_name)
        else:
            try:
                settings = self.ini.get_settings('DEFAULT')
            except configparser.NoSectionError:
                settings = None
        self.config.setup_registry(settings=settings)
        if not self.package_name is None:
            if not settings is None:
                cfg_zcml = settings.get('configure_zcml',
                                        self.config_file_name)
            else:
                cfg_zcml = self.config_file_name
            self.config.begin()
            try:
                self.config.load_zcml(cfg_zcml)
            finally:
                self.config.end()

    def tear_down(self):
        super(BaseTestCaseWithConfiguration, self).tear_down()
        tear_down_registry(self.config.registry)
        try:
            del self.config
        except AttributeError:
            pass
Esempio n. 7
0
def create_config(settings, package='thelma', registry=None):
    """
    Returns a configurator for TheLMA.
    """
    config = Configurator(package=package,
                          registry=registry)
    if registry is None:
        config.setup_registry(settings=settings,
                              root_factory=RootFactory())
        config.load_zcml('configure.zcml')
    # tractor registration
    tractor_config_file = settings['tractor_config_file']
    tractor_api = make_api_from_config(tractor_config_file)
    config.registry.registerUtility(tractor_api, ITractor) # pylint: disable=E1103
    return config
Esempio n. 8
0
 def test_configure_with_full_zcml(self):
     reg = self._registry
     # Check adapters.
     ent = FooEntity()
     member = object.__new__(FooMember)
     coll = object.__new__(FooCollection)
     # Make sure no adapters are in the registry.
     self.assert_is_none(reg.queryAdapter(coll, IMemberResource,
                                       name='member-class'))
     self.assert_is_none(reg.queryAdapter(member, ICollectionResource,
                                       name='collection-class'))
     self.assert_is_none(reg.queryAdapter(member, IEntity,
                                       name='entity-class'))
     self.assert_is_none(reg.queryAdapter(ent, IMemberResource))
     self.assert_is_none(reg.queryAdapter(coll, IRepresenter,
                                       name=CsvMime.mime_type_string))
     # Load the configuration.
     config = Configurator(registry=reg, package=package)
     config.load_zcml('everest.tests.simple_app:configure.zcml')
     self.__check(reg, member, ent, coll)
     rpr = as_representer(coll, CsvMime)
     self.assert_true(isinstance(rpr, Representer))
Esempio n. 9
0
def app_factory(global_settings, **local_settings):  # pylint: disable=W0613
    """
    Default factory for creating a WSGI application using the everest
    configurator and root factory.

    :param dict global_settings: Global settings extracted from an ini file.
        Not used in this default app factory.
    :param dict local_settings: App settings extracted from an ini file.
    """
    config = Configurator()
    config.setup_registry(settings=local_settings, root_factory=RootFactory())
    if 'configure_zcml' in local_settings:
        config.load_zcml(local_settings['configure_zcml'])
    app = config.make_wsgi_app()
    # In the absence of an application name in the settings, we have to
    # extract the main app's name from the ini file, which unfortunately
    # means parsing it again.
    app_name = app_name_from_ini_file(global_settings['__file__'])
    ep_group = "%s.plugins" % app_name
    plugin_mgr = config.get_registered_utility(IPluginManager)
    plugin_mgr.load_all(ep_group)
    return app
Esempio n. 10
0
def app_factory(global_settings, **local_settings): # pylint: disable=W0613
    """
    Default factory for creating a WSGI application using the everest
    configurator and root factory.

    :param dict global_settings: Global settings extracted from an ini file.
        Not used in this default app factory.
    :param dict local_settings: App settings extracted from an ini file.
    """
    config = Configurator()
    config.setup_registry(settings=local_settings,
                          root_factory=RootFactory())
    if 'configure_zcml' in local_settings:
        config.load_zcml(local_settings['configure_zcml'])
    app = config.make_wsgi_app()
    # In the absence of an application name in the settings, we have to
    # extract the main app's name from the ini file, which unfortunately
    # means parsing it again.
    app_name = app_name_from_ini_file(global_settings['__file__'])
    ep_group = "%s.plugins" % app_name
    plugin_mgr = config.get_registered_utility(IPluginManager)
    plugin_mgr.load_all(ep_group)
    return app
Esempio n. 11
0
class DirectivesTestCase(Pep8CompliantTestCase):

    def set_up(self):
        testing_set_up()
        reg = self._registry = get_current_registry()
        self._config = Configurator(registry=reg, package=package)
        self._config.setup_registry()
        repo_mgr = self._config.get_registered_utility(IRepositoryManager)
        repo_mgr.initialize_all()

    def tear_down(self):
        testing_tear_down()

    def test_configure_with_simple_zcml(self):
        # Load the configuration.
        self._config.load_zcml('everest.tests.simple_app:configure_simple.zcml')
        reg = self._registry
        # Check adapters.
        ent = FooEntity()
        member = object.__new__(FooMember)
        coll_cls = reg.queryUtility(IFoo, name='collection-class')
        self.assert_is_not_none(coll_cls)
        self.assert_is_not_none(coll_cls.root_name)
        self.assert_is_not_none(coll_cls.title)
        coll = object.__new__(coll_cls)
        self.__check(reg, member, ent, coll)
        # Check service.
        srvc = reg.queryUtility(IService)
        self.assert_is_not_none(srvc)
        srvc.start()
        self.assert_true(isinstance(srvc.get('foos'), Collection))
        self.assert_is_none(srvc.get(coll_cls))
        self.assert_is_none(srvc.get(IBar))

    def test_configure_with_full_zcml(self):
        reg = self._registry
        # Check adapters.
        ent = FooEntity()
        member = object.__new__(FooMember)
        coll = object.__new__(FooCollection)
        # Make sure no adapters are in the registry.
        self.assert_is_none(reg.queryAdapter(coll, IMemberResource,
                                          name='member-class'))
        self.assert_is_none(reg.queryAdapter(member, ICollectionResource,
                                          name='collection-class'))
        self.assert_is_none(reg.queryAdapter(member, IEntity,
                                          name='entity-class'))
        self.assert_is_none(reg.queryAdapter(ent, IMemberResource))
        self.assert_is_none(reg.queryAdapter(coll, IRepresenter,
                                          name=CsvMime.mime_type_string))
        # Load the configuration.
        config = Configurator(registry=reg, package=package)
        config.load_zcml('everest.tests.simple_app:configure.zcml')
        self.__check(reg, member, ent, coll)
        rpr = as_representer(coll, CsvMime)
        self.assert_true(isinstance(rpr, Representer))

    def test_configure_with_custom_repo_zcml(self):
        repo_mgr = self._registry.queryUtility(IRepositoryManager)
        self.assert_is_none(repo_mgr.get('CUSTOM_MEMORY'))
        self.assert_is_none(repo_mgr.get('CUSTOM_FILESYSTEM'))
        self.assert_is_none(repo_mgr.get('CUSTOM_RDB'))
        self._config.load_zcml('everest.tests.simple_app:configure_repos.zcml')
        self.assert_is_not_none(repo_mgr.get('CUSTOM_MEMORY'))
        self.assert_is_not_none(repo_mgr.get('CUSTOM_FILESYSTEM'))
        self.assert_is_not_none(repo_mgr.get('CUSTOM_RDB'))

    def __check(self, reg, member, ent, coll):
        for idx, obj in enumerate((member, coll, ent)):
            self.assert_equal(reg.queryAdapter(obj, IMemberResource,
                                              name='member-class'),
                              type(member))
            self.assert_equal(reg.queryAdapter(obj, ICollectionResource,
                                              name='collection-class'),
                              type(coll))
            self.assert_equal(reg.queryAdapter(obj, IEntity,
                                              name='entity-class'),
                              type(ent))
            if idx < 2: # lookup with class only for member/collection.
                self.assert_equal(reg.queryAdapter(type(obj), IMemberResource,
                                                  name='member-class'),
                                  type(member))
                self.assert_equal(reg.queryAdapter(type(obj),
                                                   ICollectionResource,
                                                  name='collection-class'),
                                  type(coll))
                self.assert_equal(reg.queryAdapter(type(obj), IEntity,
                                                   name='entity-class'),
                                  type(ent))
        # Check instance adapters.
        self.assert_is_not_none(reg.queryAdapter(ent, IMemberResource))
Esempio n. 12
0
class DirectivesTestCase(Pep8CompliantTestCase):
    def set_up(self):
        testing_set_up()
        reg = self._registry = get_current_registry()
        self._config = Configurator(registry=reg, package=package)
        self._config.setup_registry()
        repo_mgr = self._config.get_registered_utility(IRepositoryManager)
        repo_mgr.initialize_all()

    def tear_down(self):
        testing_tear_down()

    def test_configure_with_simple_zcml(self):
        # Load the configuration.
        self._config.load_zcml(
            'everest.tests.simple_app:configure_simple.zcml')
        reg = self._registry
        # Check adapters.
        ent = FooEntity()
        member = object.__new__(FooMember)
        coll_cls = reg.queryUtility(IFoo, name='collection-class')
        self.assert_is_not_none(coll_cls)
        self.assert_is_not_none(coll_cls.root_name)
        self.assert_is_not_none(coll_cls.title)
        coll = object.__new__(coll_cls)
        self.__check(reg, member, ent, coll)
        # Check service.
        srvc = reg.queryUtility(IService)
        self.assert_is_not_none(srvc)
        srvc.start()
        self.assert_true(isinstance(srvc.get('foos'), Collection))
        self.assert_is_none(srvc.get(coll_cls))
        self.assert_is_none(srvc.get(IBar))

    def test_configure_with_full_zcml(self):
        reg = self._registry
        # Check adapters.
        ent = FooEntity()
        member = object.__new__(FooMember)
        coll = object.__new__(FooCollection)
        # Make sure no adapters are in the registry.
        self.assert_is_none(
            reg.queryAdapter(coll, IMemberResource, name='member-class'))
        self.assert_is_none(
            reg.queryAdapter(member,
                             ICollectionResource,
                             name='collection-class'))
        self.assert_is_none(
            reg.queryAdapter(member, IEntity, name='entity-class'))
        self.assert_is_none(reg.queryAdapter(ent, IMemberResource))
        self.assert_is_none(
            reg.queryAdapter(coll, IRepresenter,
                             name=CsvMime.mime_type_string))
        # Load the configuration.
        config = Configurator(registry=reg, package=package)
        config.load_zcml('everest.tests.simple_app:configure.zcml')
        self.__check(reg, member, ent, coll)
        rpr = as_representer(coll, CsvMime)
        self.assert_true(isinstance(rpr, Representer))

    def test_configure_with_custom_repo_zcml(self):
        repo_mgr = self._registry.queryUtility(IRepositoryManager)
        self.assert_is_none(repo_mgr.get('CUSTOM_MEMORY'))
        self.assert_is_none(repo_mgr.get('CUSTOM_FILESYSTEM'))
        self.assert_is_none(repo_mgr.get('CUSTOM_RDB'))
        self._config.load_zcml('everest.tests.simple_app:configure_repos.zcml')
        self.assert_is_not_none(repo_mgr.get('CUSTOM_MEMORY'))
        self.assert_is_not_none(repo_mgr.get('CUSTOM_FILESYSTEM'))
        self.assert_is_not_none(repo_mgr.get('CUSTOM_RDB'))

    def __check(self, reg, member, ent, coll):
        for idx, obj in enumerate((member, coll, ent)):
            self.assert_equal(
                reg.queryAdapter(obj, IMemberResource, name='member-class'),
                type(member))
            self.assert_equal(
                reg.queryAdapter(obj,
                                 ICollectionResource,
                                 name='collection-class'), type(coll))
            self.assert_equal(
                reg.queryAdapter(obj, IEntity, name='entity-class'), type(ent))
            if idx < 2:  # lookup with class only for member/collection.
                self.assert_equal(
                    reg.queryAdapter(type(obj),
                                     IMemberResource,
                                     name='member-class'), type(member))
                self.assert_equal(
                    reg.queryAdapter(type(obj),
                                     ICollectionResource,
                                     name='collection-class'), type(coll))
                self.assert_equal(
                    reg.queryAdapter(type(obj), IEntity, name='entity-class'),
                    type(ent))
        # Check instance adapters.
        self.assert_is_not_none(reg.queryAdapter(ent, IMemberResource))