diff options
| author | Chris McDonough <chrism@agendaless.com> | 2010-08-13 03:55:49 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2010-08-13 03:55:49 +0000 |
| commit | ec55db55aba80618fb250aace0d22f0aa56cef1f (patch) | |
| tree | 84f98cfbfb0c46df4261fb670d8afa2f2fd2df3d /repoze | |
| parent | 59ee5fc5d9c27b46fc4514626aa87a221df78630 (diff) | |
| download | pyramid-ec55db55aba80618fb250aace0d22f0aa56cef1f.tar.gz pyramid-ec55db55aba80618fb250aace0d22f0aa56cef1f.tar.bz2 pyramid-ec55db55aba80618fb250aace0d22f0aa56cef1f.zip | |
- The new
:meth"`repoze.bfg.configuration.Configurator.absolute_resource_spec`
method resolves a potentially relative :term:`resource
specification` string into an absolute version.
Diffstat (limited to 'repoze')
| -rw-r--r-- | repoze/bfg/configuration.py | 13 | ||||
| -rw-r--r-- | repoze/bfg/tests/test_configuration.py | 18 |
2 files changed, 31 insertions, 0 deletions
diff --git a/repoze/bfg/configuration.py b/repoze/bfg/configuration.py index 59ae63989..89d287f14 100644 --- a/repoze/bfg/configuration.py +++ b/repoze/bfg/configuration.py @@ -325,6 +325,19 @@ class Configurator(object): constructor.""" return self.name_resolver.maybe_resolve(dotted) + def absolute_resource_spec(self, relative_spec): + """ Resolve the potentially relative :term:`resource + specification` string passed as ``relative_spec`` into an + absolute resource specification string and return the string. + Use the ``package`` of this configurator as the package to + which the resource specification will be considered relative + when generating an absolute resource specification. If the + provided ``relative_spec`` argument is already absolute, or if + the ``relative_spec`` is not a string, it is simply returned.""" + if not isinstance(relative_spec, basestring): + return relative_spec + return self._make_spec(relative_spec) + def setup_registry(self, settings=None, root_factory=None, authentication_policy=None, authorization_policy=None, renderers=DEFAULT_RENDERERS, debug_logger=None, diff --git a/repoze/bfg/tests/test_configuration.py b/repoze/bfg/tests/test_configuration.py index f11aee2c1..58a4a2eda 100644 --- a/repoze/bfg/tests/test_configuration.py +++ b/repoze/bfg/tests/test_configuration.py @@ -210,6 +210,24 @@ class ConfiguratorTests(unittest.TestCase): result = config.maybe_dotted(repoze.bfg.tests) self.assertEqual(result, repoze.bfg.tests) + def test_absolute_resource_spec_already_absolute(self): + import repoze.bfg.tests + config = self._makeOne(package=repoze.bfg.tests) + result = config.absolute_resource_spec('already:absolute') + self.assertEqual(result, 'already:absolute') + + def test_absolute_resource_spec_notastring(self): + import repoze.bfg.tests + config = self._makeOne(package=repoze.bfg.tests) + result = config.absolute_resource_spec(None) + self.assertEqual(result, None) + + def test_absolute_resource_spec_relative(self): + import repoze.bfg.tests + config = self._makeOne(package=repoze.bfg.tests) + result = config.absolute_resource_spec('templates') + self.assertEqual(result, 'repoze.bfg.tests:templates') + def test_setup_registry_fixed(self): class DummyRegistry(object): def subscribers(self, events, name): |
