From f0fd9d62c991afe0b125beb6d7f583be9500de84 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Tue, 2 Jun 2009 18:40:52 +0000 Subject: - Add API named ``repoze.bfg.settings.get_settings`` which retrieves a derivation of values passed as the ``options`` value of ``repoze.bfg.router.make_app``. This API should be preferred instead of using getUtility(ISettings). I added a new ``repoze.bfg.settings`` API document as well. --- repoze/bfg/tests/test_router.py | 11 +++++++++++ repoze/bfg/tests/test_settings.py | 38 +++++++++++++++++++++++++++++--------- 2 files changed, 40 insertions(+), 9 deletions(-) (limited to 'repoze/bfg/tests') diff --git a/repoze/bfg/tests/test_router.py b/repoze/bfg/tests/test_router.py index d07efcc69..6e18f6089 100644 --- a/repoze/bfg/tests/test_router.py +++ b/repoze/bfg/tests/test_router.py @@ -798,6 +798,17 @@ class MakeAppTests(unittest.TestCase): app = self._callFUT(rootpolicy, fixtureapp) assert app.created is True + def test_custom_settings(self): + options= {'mysetting':True} + from repoze.bfg.tests import fixtureapp + rootpolicy = make_rootfactory(None) + app = self._callFUT(rootpolicy, fixtureapp, options=options) + from repoze.bfg.interfaces import ISettings + settings = app.registry.getUtility(ISettings) + self.assertEqual(settings.reload_templates, False) + self.assertEqual(settings.debug_authorization, False) + self.assertEqual(settings.mysetting, True) + def test_registrations(self): options= {'reload_templates':True, 'debug_authorization':True} diff --git a/repoze/bfg/tests/test_settings.py b/repoze/bfg/tests/test_settings.py index 97fe9d026..903a23f5d 100644 --- a/repoze/bfg/tests/test_settings.py +++ b/repoze/bfg/tests/test_settings.py @@ -1,4 +1,5 @@ import unittest +from repoze.bfg.testing import cleanUp class TestSettings(unittest.TestCase): def _getTargetClass(self): @@ -9,17 +10,36 @@ class TestSettings(unittest.TestCase): klass = self._getTargetClass() return klass(options) - def test_no_options(self): - settings = self._makeOne() + def test_getattr(self): + settings = self._makeOne(reload_templates=False) self.assertEqual(settings.reload_templates, False) - self.assertEqual(settings.debug_notfound, False) - self.assertEqual(settings.debug_authorization, False) - def test_with_option(self): - settings = self._makeOne(reload_templates=True) - self.assertEqual(settings.reload_templates, True) - self.assertEqual(settings.debug_notfound, False) - self.assertEqual(settings.debug_authorization, False) + def test_getattr_raises_attribute_error(self): + settings = self._makeOne() + self.assertRaises(AttributeError, settings.__getattr__, + 'reload_templates' + ) + +class TestGetSettings(unittest.TestCase): + def setUp(self): + cleanUp() + + def tearDown(self): + cleanUp() + + def _callFUT(self): + from repoze.bfg.settings import get_settings + return get_settings() + + def test_it_nosettings(self): + self.assertEqual(self._callFUT(), None) + + def test_it_withsettings(self): + from repoze.bfg.interfaces import ISettings + from zope.component import provideUtility + settings = {'a':1} + provideUtility(settings, ISettings) + self.assertEqual(self._callFUT(), settings) class TestGetOptions(unittest.TestCase): def _callFUT(self, *arg, **kw): -- cgit v1.2.3