diff options
| author | Chris McDonough <chrism@agendaless.com> | 2008-09-04 05:58:05 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2008-09-04 05:58:05 +0000 |
| commit | 23756f9943958e957270ad84912dc074ddc3b026 (patch) | |
| tree | 936a47d40f5f5df1c1b9d89bc2c627e27148ccda /repoze/bfg/tests | |
| parent | 6f97fecf3b0a4fa9f3cb193b6efad3fc6fd67d44 (diff) | |
| download | pyramid-23756f9943958e957270ad84912dc074ddc3b026.tar.gz pyramid-23756f9943958e957270ad84912dc074ddc3b026.tar.bz2 pyramid-23756f9943958e957270ad84912dc074ddc3b026.zip | |
- Allow configuration cache to be bypassed by actions which include
special "uncacheable" discriminators (for actions that have
variable results).
Diffstat (limited to 'repoze/bfg/tests')
| -rw-r--r-- | repoze/bfg/tests/test_registry.py | 19 | ||||
| -rw-r--r-- | repoze/bfg/tests/test_zcml.py | 53 |
2 files changed, 60 insertions, 12 deletions
diff --git a/repoze/bfg/tests/test_registry.py b/repoze/bfg/tests/test_registry.py index de8481fd8..efc99b41a 100644 --- a/repoze/bfg/tests/test_registry.py +++ b/repoze/bfg/tests/test_registry.py @@ -42,17 +42,16 @@ class TestGetOptions(unittest.TestCase): from repoze.bfg.registry import get_options return get_options - def test_it(self): + def test_reload_templates(self): get_options = self._getFUT() - self.assertEqual(get_options({}), - {'reload_templates':False}) - self.assertEqual(get_options({'reload_templates':'false'}), - {'reload_templates':False}) - self.assertEqual(get_options({'reload_templates':'t'}), - {'reload_templates':True}) - self.assertEqual(get_options({'reload_templates':'1'}), - {'reload_templates':True}) - + result = get_options({}) + self.assertEqual(result['reload_templates'], False) + result = get_options({'reload_templates':'false'}) + self.assertEqual(result['reload_templates'], False) + result = get_options({'reload_templates':'t'}) + self.assertEqual(result['reload_templates'], True) + result = get_options({'reload_templates':'1'}) + self.assertEqual(result['reload_templates'], True) class TestThreadLocalRegistryManager(unittest.TestCase, PlacelessSetup): def setUp(self): diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py index 28ea04ff6..158743c64 100644 --- a/repoze/bfg/tests/test_zcml.py +++ b/repoze/bfg/tests/test_zcml.py @@ -57,7 +57,7 @@ class TestViewDirective(unittest.TestCase, PlacelessSetup): self.assertEqual(permission['args'][5], None) regadapt = actions[2] - regadapt_discriminator = ('view', IFoo, '', IRequest, IView) + regadapt_discriminator = ('view', IFoo, '', IRequest, IView, True) self.assertEqual(regadapt['discriminator'], regadapt_discriminator) self.assertEqual(regadapt['callable'], handler) self.assertEqual(regadapt['args'][0], 'registerAdapter') @@ -104,7 +104,34 @@ class TestViewDirective(unittest.TestCase, PlacelessSetup): self.assertEqual(permission['args'][5], None) regadapt = actions[2] - regadapt_discriminator = ('view', IFoo, '', IDummy, IView) + regadapt_discriminator = ('view', IFoo, '', IDummy, IView, True) + self.assertEqual(regadapt['discriminator'], regadapt_discriminator) + self.assertEqual(regadapt['callable'], handler) + self.assertEqual(regadapt['args'][0], 'registerAdapter') + self.assertEqual(regadapt['args'][1], view) + self.assertEqual(regadapt['args'][2], (IFoo, IDummy)) + self.assertEqual(regadapt['args'][3], IView) + self.assertEqual(regadapt['args'][4], '') + self.assertEqual(regadapt['args'][5], None) + + def test_uncacheable(self): + f = self._getFUT() + context = DummyContext() + class IFoo: + pass + def view(context, request): + pass + f(context, 'repoze.view', IFoo, view=view, request_type=IDummy, + cacheable=False) + actions = context.actions + from repoze.bfg.interfaces import IView + from zope.component.zcml import handler + from repoze.bfg.zcml import Uncacheable + + self.assertEqual(len(actions), 3) + + regadapt = actions[2] + regadapt_discriminator = ('view', IFoo, '', IDummy, IView, Uncacheable) self.assertEqual(regadapt['discriminator'], regadapt_discriminator) self.assertEqual(regadapt['callable'], handler) self.assertEqual(regadapt['args'][0], 'registerAdapter') @@ -180,6 +207,28 @@ class TestZCMLPickling(unittest.TestCase, PlacelessSetup): actions = cPickle.load(open(picklename, 'rb')) self.failUnless(actions) + def test_file_configure_uncacheable_removes_cache(self): + import os + from repoze.bfg.zcml import file_configure + picklename = os.path.join(self.packagepath, 'configure.zcml.cache') + f = open(picklename, 'w') + f.write('imhere') + self.failUnless(os.path.exists(picklename)) + + import repoze.bfg.zcml + keep_view = repoze.bfg.zcml.view + + def wrap_view(*arg, **kw): + kw['cacheable'] = False + return keep_view(*arg, **kw) + + try: + repoze.bfg.zcml.view = wrap_view + file_configure('configure.zcml', self.module) + self.failIf(os.path.exists(picklename)) # should be deleted + finally: + repoze.bfg.zcml.view = keep_view + def test_file_configure_nonexistent_configure_dot_zcml(self): import os from repoze.bfg.zcml import file_configure |
