diff options
author | Erik Johnston <erik@matrix.org> | 2020-09-28 18:00:30 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-28 18:00:30 +0100 |
commit | bd380d942fdf91cf1214d6859f2bc97d12a92ab4 (patch) | |
tree | 515186a89d274f7d4272f4cdcb0e9698dac7e2ef /tests/unittest.py | |
parent | Create a mechanism for marking tests "logcontext clean" (#8399) (diff) | |
download | synapse-bd380d942fdf91cf1214d6859f2bc97d12a92ab4.tar.xz |
Add checks for postgres sequence consistency (#8402)
Diffstat (limited to '')
-rw-r--r-- | tests/unittest.py | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/tests/unittest.py b/tests/unittest.py index bbe50c3851..e654c0442d 100644 --- a/tests/unittest.py +++ b/tests/unittest.py @@ -14,7 +14,6 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - import gc import hashlib import hmac @@ -28,6 +27,7 @@ from mock import Mock, patch from canonicaljson import json from twisted.internet.defer import Deferred, ensureDeferred, succeed +from twisted.python.failure import Failure from twisted.python.threadpool import ThreadPool from twisted.trial import unittest @@ -476,6 +476,35 @@ class HomeserverTestCase(TestCase): self.pump() return self.failureResultOf(d, exc) + def get_success_or_raise(self, d, by=0.0): + """Drive deferred to completion and return result or raise exception + on failure. + """ + + if inspect.isawaitable(d): + deferred = ensureDeferred(d) + if not isinstance(deferred, Deferred): + return d + + results = [] # type: list + deferred.addBoth(results.append) + + self.pump(by=by) + + if not results: + self.fail( + "Success result expected on {!r}, found no result instead".format( + deferred + ) + ) + + result = results[0] + + if isinstance(result, Failure): + result.raiseException() + + return result + def register_user(self, username, password, admin=False): """ Register a user. Requires the Admin API be registered. |