summary refs log tree commit diff
path: root/tests/util/test_log_context.py
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2014-11-14 11:46:07 +0000
committerErik Johnston <erik@matrix.org>2014-11-14 11:46:07 +0000
commitb8eca1ffbf697b968acd0e3abc0341ca134dc6a0 (patch)
tree64b1eb1540f1eff147fb58ac9e85fc64920a49ad /tests/util/test_log_context.py
parentUse modelService to access room member power levels rather than RoomController. (diff)
parentMerge branch 'develop' into request_logging (diff)
downloadsynapse-b8eca1ffbf697b968acd0e3abc0341ca134dc6a0.tar.xz
Merge pull request #13 from matrix-org/request_logging
Request logging
Diffstat (limited to 'tests/util/test_log_context.py')
-rw-r--r--tests/util/test_log_context.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/util/test_log_context.py b/tests/util/test_log_context.py
new file mode 100644
index 0000000000..efa0f28bad
--- /dev/null
+++ b/tests/util/test_log_context.py
@@ -0,0 +1,43 @@
+from twisted.internet import defer
+from twisted.internet import reactor
+from .. import unittest
+
+from synapse.util.async import sleep
+from synapse.util.logcontext import LoggingContext
+
+class LoggingContextTestCase(unittest.TestCase):
+
+    def _check_test_key(self, value):
+        self.assertEquals(
+            LoggingContext.current_context().test_key, value
+        )
+
+    def test_with_context(self):
+        with LoggingContext() as context_one:
+            context_one.test_key = "test"
+            self._check_test_key("test")
+
+    def test_chaining(self):
+        with LoggingContext() as context_one:
+            context_one.test_key = "one"
+            with LoggingContext() as context_two:
+                self._check_test_key("one")
+                context_two.test_key = "two"
+                self._check_test_key("two")
+            self._check_test_key("one")
+
+    @defer.inlineCallbacks
+    def test_sleep(self):
+        @defer.inlineCallbacks
+        def competing_callback():
+            with LoggingContext() as competing_context:
+                competing_context.test_key = "competing"
+                yield sleep(0)
+                self._check_test_key("competing")
+
+        reactor.callLater(0, competing_callback)
+
+        with LoggingContext() as context_one:
+            context_one.test_key = "one"
+            yield sleep(0)
+            self._check_test_key("one")