diff options
author | Erik Johnston <erik@matrix.org> | 2015-01-22 13:35:34 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2015-01-22 13:35:34 +0000 |
commit | 7f058c5ff743e2cf563b9aa5436ee9801a14e633 (patch) | |
tree | 8ef0270ede93c304b0859c4e8fba49b9581b2514 /tests/utils.py | |
parent | Add twisted Service interface (diff) | |
parent | Move experiments, graph and cmdclient into contrib (diff) | |
download | synapse-7f058c5ff743e2cf563b9aa5436ee9801a14e633.tar.xz |
Merge branch 'develop' of github.com:matrix-org/synapse into erikj-perf
Conflicts: synapse/app/homeserver.py
Diffstat (limited to 'tests/utils.py')
-rw-r--r-- | tests/utils.py | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/tests/utils.py b/tests/utils.py index 731e03f517..97fa8d8181 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -138,7 +138,8 @@ class MockClock(object): now = 1000 def __init__(self): - # list of tuples of (absolute_time, callback) in no particular order + # list of lists of [absolute_time, callback, expired] in no particular + # order self.timers = [] def time(self): @@ -154,11 +155,16 @@ class MockClock(object): LoggingContext.thread_local.current_context = current_context callback() - t = (self.now + delay, wrapped_callback) + t = [self.now + delay, wrapped_callback, False] self.timers.append(t) + return t def cancel_call_later(self, timer): + if timer[2]: + raise Exception("Cannot cancel an expired timer") + + timer[2] = True self.timers = [t for t in self.timers if t != timer] # For unit testing @@ -168,11 +174,17 @@ class MockClock(object): timers = self.timers self.timers = [] - for time, callback in timers: + for t in timers: + time, callback, expired = t + + if expired: + raise Exception("Timer already expired") + if self.now >= time: + t[2] = True callback() else: - self.timers.append((time, callback)) + self.timers.append(t) class SQLiteMemoryDbPool(ConnectionPool, object): |