summaryrefslogtreecommitdiff
path: root/tests/test_threadlocal.py
diff options
context:
space:
mode:
authorMichael Merickel <github@m.merickel.org>2018-10-15 09:03:53 -0500
committerGitHub <noreply@github.com>2018-10-15 09:03:53 -0500
commit81576ee51564c49d5ff3c1c07f214f22a8438231 (patch)
tree5b3fe0b39a0fc33d545733d821738845909f638c /tests/test_threadlocal.py
parent433efe06191a7007ca8c5bf8fafee5c7c1439ebb (diff)
parent17e3abf320f6d9cd90f7e5a0352280c2fef584af (diff)
downloadpyramid-81576ee51564c49d5ff3c1c07f214f22a8438231.tar.gz
pyramid-81576ee51564c49d5ff3c1c07f214f22a8438231.tar.bz2
pyramid-81576ee51564c49d5ff3c1c07f214f22a8438231.zip
Merge pull request #3387 from mmerickel/src-folder-refactor
refactor pyramid tests into a tests folder and package into a src folder
Diffstat (limited to 'tests/test_threadlocal.py')
-rw-r--r--tests/test_threadlocal.py95
1 files changed, 95 insertions, 0 deletions
diff --git a/tests/test_threadlocal.py b/tests/test_threadlocal.py
new file mode 100644
index 000000000..088156507
--- /dev/null
+++ b/tests/test_threadlocal.py
@@ -0,0 +1,95 @@
+from pyramid import testing
+import unittest
+
+class TestThreadLocalManager(unittest.TestCase):
+ def setUp(self):
+ testing.setUp()
+
+ def tearDown(self):
+ testing.tearDown()
+
+ def _getTargetClass(self):
+ from pyramid.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):
+ def thedefault():
+ return '123'
+ local = self._makeOne(thedefault)
+ self.assertEqual(local.stack, [])
+ self.assertEqual(local.get(), '123')
+
+ 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)
+
+
+class TestGetCurrentRequest(unittest.TestCase):
+ def _callFUT(self):
+ from pyramid.threadlocal import get_current_request
+ return get_current_request()
+
+ def test_it_None(self):
+ request = self._callFUT()
+ self.assertEqual(request, None)
+
+ def test_it(self):
+ from pyramid.threadlocal import manager
+ request = object()
+ try:
+ manager.push({'request':request})
+ self.assertEqual(self._callFUT(), request)
+ finally:
+ manager.pop()
+ self.assertEqual(self._callFUT(), None)
+
+class GetCurrentRegistryTests(unittest.TestCase):
+ def setUp(self):
+ testing.setUp()
+
+ def tearDown(self):
+ testing.tearDown()
+
+ def _callFUT(self):
+ from pyramid.threadlocal import get_current_registry
+ return get_current_registry()
+
+ def test_it(self):
+ from pyramid.threadlocal import manager
+ try:
+ manager.push({'registry':123})
+ self.assertEqual(self._callFUT(), 123)
+ finally:
+ manager.pop()
+
+class GetCurrentRegistryWithoutTestingRegistry(unittest.TestCase):
+ def _callFUT(self):
+ from pyramid.threadlocal import get_current_registry
+ return get_current_registry()
+
+ def test_it(self):
+ from pyramid.registry import global_registry
+ self.assertEqual(self._callFUT(), global_registry)
+