diff options
Diffstat (limited to 'repoze/bfg/tests/test_threadlocal.py')
| -rw-r--r-- | repoze/bfg/tests/test_threadlocal.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/repoze/bfg/tests/test_threadlocal.py b/repoze/bfg/tests/test_threadlocal.py new file mode 100644 index 000000000..230bb3726 --- /dev/null +++ b/repoze/bfg/tests/test_threadlocal.py @@ -0,0 +1,46 @@ +from repoze.bfg.testing import cleanUp +import unittest + +class TestThreadLocalManager(unittest.TestCase): + def setUp(self): + cleanUp() + + def tearDown(self): + cleanUp() + + def _getTargetClass(self): + from repoze.bfg.threadlocal import ThreadLocalManager + return ThreadLocalManager + + def _makeOne(self, default=lambda *x: 1): + return self._getTargetClass()(default) + + def test_init(self): + local = self._makeOne() + self.assertEqual(local.stack, []) + self.assertEqual(local.get(), 1) + + def test_default(self): + from zope.component import getGlobalSiteManager + local = self._makeOne(getGlobalSiteManager) + self.assertEqual(local.stack, []) + self.assertEqual(local.get(), getGlobalSiteManager()) + + def test_push_and_pop(self): + local = self._makeOne() + local.push(True) + self.assertEqual(local.get(), True) + self.assertEqual(local.pop(), True) + self.assertEqual(local.pop(), None) + self.assertEqual(local.get(), 1) + + def test_set_get_and_clear(self): + local = self._makeOne() + local.set(None) + self.assertEqual(local.stack, [None]) + self.assertEqual(local.get(), None) + local.clear() + self.assertEqual(local.get(), 1) + local.clear() + self.assertEqual(local.get(), 1) + |
