summaryrefslogtreecommitdiff
path: root/repoze/bfg/configuration.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-10-16 00:47:13 +0000
committerChris McDonough <chrism@agendaless.com>2009-10-16 00:47:13 +0000
commit0dc26efaddf70c02cac7e84245666340f13abd29 (patch)
tree770a5913c8527928c36486bae19305455e733648 /repoze/bfg/configuration.py
parent6a80e3d4099304ed7327cf2c72f7d786c01344ee (diff)
downloadpyramid-0dc26efaddf70c02cac7e84245666340f13abd29.tar.gz
pyramid-0dc26efaddf70c02cac7e84245666340f13abd29.tar.bz2
pyramid-0dc26efaddf70c02cac7e84245666340f13abd29.zip
- Add ``zcml_configure`` to ``repoze.bfg.testing`` module API. This
function populates a component registry from a ZCML file for testing purposes.
Diffstat (limited to 'repoze/bfg/configuration.py')
-rw-r--r--repoze/bfg/configuration.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/repoze/bfg/configuration.py b/repoze/bfg/configuration.py
index 629a58047..7ea74853c 100644
--- a/repoze/bfg/configuration.py
+++ b/repoze/bfg/configuration.py
@@ -4,6 +4,9 @@ import threading
import zope.component
+from zope.configuration import xmlconfig
+from zope.configuration.config import ConfigurationMachine
+
from zope.component import getGlobalSiteManager
from zope.component import getSiteManager
@@ -23,7 +26,6 @@ from repoze.bfg.settings import get_options
from repoze.bfg.threadlocal import get_current_registry
from repoze.bfg.threadlocal import manager
from repoze.bfg.urldispatch import RoutesRootFactory
-from repoze.bfg.zcml import zcml_configure
def make_registry(root_factory, package=None, filename='configure.zcml',
authentication_policy=None, authorization_policy=None,
@@ -132,3 +134,17 @@ class DefaultRootFactory:
# factory") in BFG 0.9.X and before
self.__dict__.update(environ['bfg.routes.matchdict'])
+def zcml_configure(name, package):
+ """ Given a ZCML filename as ``name`` and a Python package as
+ ``package`` which the filename should be relative to, load the
+ ZCML into the current ZCML registry.
+
+ .. note:: This feature is new as of :mod:`repoze.bfg` 1.1.
+ """
+ context = ConfigurationMachine()
+ xmlconfig.registerCommonDirectives(context)
+ context.package = package
+ xmlconfig.include(context, name, package)
+ context.execute_actions(clear=False)
+ return context.actions
+