mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 10:16:07 -04:00
Fix a couple of bugs in presence handler related to pushing updatesto the correct user. Fix presence tests.
This commit is contained in:
parent
8113eb7c79
commit
5dd38d579b
5 changed files with 200 additions and 90 deletions
|
@ -21,7 +21,7 @@ from synapse.api.events.room import (
|
|||
RoomMemberEvent, MessageEvent
|
||||
)
|
||||
|
||||
from twisted.internet import defer
|
||||
from twisted.internet import defer, reactor
|
||||
|
||||
from collections import namedtuple
|
||||
from mock import patch, Mock
|
||||
|
@ -263,18 +263,43 @@ class DeferredMockCallable(object):
|
|||
d.callback(None)
|
||||
return result
|
||||
|
||||
raise AssertionError("Was not expecting call(%s)" %
|
||||
failure = AssertionError("Was not expecting call(%s)" %
|
||||
_format_call(args, kwargs)
|
||||
)
|
||||
|
||||
for _, _, d in self.expectations:
|
||||
try:
|
||||
d.errback(failure)
|
||||
except:
|
||||
pass
|
||||
|
||||
raise failure
|
||||
|
||||
def expect_call_and_return(self, call, result):
|
||||
self.expectations.append((call, result, defer.Deferred()))
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def await_calls(self):
|
||||
while self.expectations:
|
||||
(_, _, d) = self.expectations.pop(0)
|
||||
yield d
|
||||
def await_calls(self, timeout=1000):
|
||||
deferred = defer.DeferredList(
|
||||
[d for _, _, d in self.expectations],
|
||||
fireOnOneErrback=True
|
||||
)
|
||||
|
||||
timer = reactor.callLater(
|
||||
timeout/1000,
|
||||
deferred.errback,
|
||||
AssertionError(
|
||||
"%d pending calls left: %s"% (
|
||||
len([e for e in self.expectations if not e[2].called]),
|
||||
[e for e in self.expectations if not e[2].called]
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
yield deferred
|
||||
|
||||
timer.cancel()
|
||||
|
||||
self.calls = []
|
||||
|
||||
def assert_had_no_calls(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue