diff options
author | Paul "LeoNerd" Evans <paul@matrix.org> | 2014-12-10 19:24:12 +0000 |
---|---|---|
committer | Paul "LeoNerd" Evans <paul@matrix.org> | 2014-12-10 19:24:12 +0000 |
commit | 38da9884e70e8e44bde14c67a7a8a9d49a8b87ac (patch) | |
tree | 2de9674ac2f460987d2c59cd653586ed28fdd767 /tests/utils.py | |
parent | Trivial test of MockClock() (diff) | |
download | synapse-38da9884e70e8e44bde14c67a7a8a9d49a8b87ac.tar.xz |
Implement .call_later() in MockClock
Diffstat (limited to '')
-rw-r--r-- | tests/utils.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/utils.py b/tests/utils.py index d8be73dba8..72843714fd 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -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): |