Michael Merickel
2018-10-15 81576ee51564c49d5ff3c1c07f214f22a8438231
commit | author | age
b60bdb 1 from pyramid import testing
a1a9fb 2 import unittest
CM 3
4 class TestThreadLocalManager(unittest.TestCase):
5     def setUp(self):
cbfafb 6         testing.setUp()
a1a9fb 7
CM 8     def tearDown(self):
cbfafb 9         testing.tearDown()
a1a9fb 10
CM 11     def _getTargetClass(self):
b60bdb 12         from pyramid.threadlocal import ThreadLocalManager
a1a9fb 13         return ThreadLocalManager
CM 14
15     def _makeOne(self, default=lambda *x: 1):
16         return self._getTargetClass()(default)
17
18     def test_init(self):
19         local = self._makeOne()
20         self.assertEqual(local.stack, [])
21         self.assertEqual(local.get(), 1)
22
23     def test_default(self):
17b8bc 24         def thedefault():
CM 25             return '123'
26         local = self._makeOne(thedefault)
a1a9fb 27         self.assertEqual(local.stack, [])
17b8bc 28         self.assertEqual(local.get(), '123')
a1a9fb 29
CM 30     def test_push_and_pop(self):
31         local = self._makeOne()
32         local.push(True)
33         self.assertEqual(local.get(), True)
34         self.assertEqual(local.pop(), True)
35         self.assertEqual(local.pop(), None)
36         self.assertEqual(local.get(), 1)
37
38     def test_set_get_and_clear(self):
39         local = self._makeOne()
40         local.set(None)
41         self.assertEqual(local.stack, [None])
42         self.assertEqual(local.get(), None)
43         local.clear()
44         self.assertEqual(local.get(), 1)
45         local.clear()
46         self.assertEqual(local.get(), 1)
47
947b8b 48
CM 49 class TestGetCurrentRequest(unittest.TestCase):
50     def _callFUT(self):
b60bdb 51         from pyramid.threadlocal import get_current_request
947b8b 52         return get_current_request()
CM 53
54     def test_it_None(self):
55         request = self._callFUT()
56         self.assertEqual(request, None)
57
58     def test_it(self):
b60bdb 59         from pyramid.threadlocal import manager
947b8b 60         request = object()
CM 61         try:
62             manager.push({'request':request})
63             self.assertEqual(self._callFUT(), request)
64         finally:
65             manager.pop()
66         self.assertEqual(self._callFUT(), None)
67
68 class GetCurrentRegistryTests(unittest.TestCase):
69     def setUp(self):
cbfafb 70         testing.setUp()
947b8b 71
CM 72     def tearDown(self):
cbfafb 73         testing.tearDown()
947b8b 74         
CM 75     def _callFUT(self):
b60bdb 76         from pyramid.threadlocal import get_current_registry
947b8b 77         return get_current_registry()
CM 78
cbfafb 79     def test_it(self):
b60bdb 80         from pyramid.threadlocal import manager
947b8b 81         try:
CM 82             manager.push({'registry':123})
83             self.assertEqual(self._callFUT(), 123)
84         finally:
85             manager.pop()
cbfafb 86
CM 87 class GetCurrentRegistryWithoutTestingRegistry(unittest.TestCase):
88     def _callFUT(self):
b60bdb 89         from pyramid.threadlocal import get_current_registry
cbfafb 90         return get_current_registry()
CM 91
92     def test_it(self):
b60bdb 93         from pyramid.registry import global_registry
59c5df 94         self.assertEqual(self._callFUT(), global_registry)
947b8b 95