mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 20:44:50 -04:00
Implement .call_later() in MockClock
This commit is contained in:
parent
be9a8d68e0
commit
38da9884e7
2 changed files with 48 additions and 0 deletions
|
@ -18,6 +18,8 @@ from synapse.api.errors import cs_error, CodeMessageException, StoreError
|
|||
from synapse.api.constants import Membership
|
||||
from synapse.storage import prepare_database
|
||||
|
||||
from synapse.util.logcontext import LoggingContext
|
||||
|
||||
from synapse.api.events.room import (
|
||||
RoomMemberEvent, MessageEvent
|
||||
)
|
||||
|
@ -134,16 +136,40 @@ class MockKey(object):
|
|||
class MockClock(object):
|
||||
now = 1000
|
||||
|
||||
def __init__(self):
|
||||
# list of tuples of (absolute_time, callback) in no particular order
|
||||
self.timers = []
|
||||
|
||||
def time(self):
|
||||
return self.now
|
||||
|
||||
def time_msec(self):
|
||||
return self.time() * 1000
|
||||
|
||||
def call_later(self, delay, callback):
|
||||
current_context = LoggingContext.current_context()
|
||||
|
||||
def wrapped_callback():
|
||||
LoggingContext.thread_local.current_context = current_context
|
||||
callback()
|
||||
self.timers.append((self.now + delay, wrapped_callback))
|
||||
|
||||
def cancel_call_later(self, timer):
|
||||
raise NotImplementedError("Oopsie")
|
||||
|
||||
# For unit testing
|
||||
def advance_time(self, secs):
|
||||
self.now += secs
|
||||
|
||||
timers = self.timers
|
||||
self.timers = []
|
||||
|
||||
for time, callback in timers:
|
||||
if self.now >= time:
|
||||
callback()
|
||||
else:
|
||||
self.timers.append((time, callback))
|
||||
|
||||
|
||||
class SQLiteMemoryDbPool(ConnectionPool, object):
|
||||
def __init__(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue