Merge pull request #3481 from matrix-org/rav/fix_cachedescriptor_test

Reinstate lost run_on_reactor in unit test
This commit is contained in:
Richard van der Hoff 2018-07-04 18:55:33 +01:00 committed by GitHub
commit f192a93875
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 2 deletions

1
changelog.d/3385.misc Normal file
View File

@ -0,0 +1 @@
Reinstate lost run_on_reactor in unit tests

View File

@ -19,13 +19,19 @@ import logging
import mock import mock
from synapse.api.errors import SynapseError from synapse.api.errors import SynapseError
from synapse.util import logcontext from synapse.util import logcontext
from twisted.internet import defer from twisted.internet import defer, reactor
from synapse.util.caches import descriptors from synapse.util.caches import descriptors
from tests import unittest from tests import unittest
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def run_on_reactor():
d = defer.Deferred()
reactor.callLater(0, d.callback, 0)
return logcontext.make_deferred_yieldable(d)
class CacheTestCase(unittest.TestCase): class CacheTestCase(unittest.TestCase):
def test_invalidate_all(self): def test_invalidate_all(self):
cache = descriptors.Cache("testcache") cache = descriptors.Cache("testcache")
@ -194,6 +200,8 @@ class DescriptorTestCase(unittest.TestCase):
def fn(self, arg1): def fn(self, arg1):
@defer.inlineCallbacks @defer.inlineCallbacks
def inner_fn(): def inner_fn():
# we want this to behave like an asynchronous function
yield run_on_reactor()
raise SynapseError(400, "blah") raise SynapseError(400, "blah")
return inner_fn() return inner_fn()
@ -203,7 +211,12 @@ class DescriptorTestCase(unittest.TestCase):
with logcontext.LoggingContext() as c1: with logcontext.LoggingContext() as c1:
c1.name = "c1" c1.name = "c1"
try: try:
yield obj.fn(1) d = obj.fn(1)
self.assertEqual(
logcontext.LoggingContext.current_context(),
logcontext.LoggingContext.sentinel,
)
yield d
self.fail("No exception thrown") self.fail("No exception thrown")
except SynapseError: except SynapseError:
pass pass