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)
|