Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit ff8a9a6

Browse files
committed
Merge commit 'e00816ad9' into anoa/dinsic_release_1_21_x
* commit 'e00816ad9': Do not yield on awaitables in tests. (#8193)
2 parents ed944cb + e00816a commit ff8a9a6

15 files changed

+227
-130
lines changed

changelog.d/8193.misc

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Convert various parts of the codebase to async/await.

tests/api/test_filtering.py

+24-12
Original file line numberDiff line numberDiff line change
@@ -369,8 +369,10 @@ def test_filter_not_labels(self):
369369
@defer.inlineCallbacks
370370
def test_filter_presence_match(self):
371371
user_filter_json = {"presence": {"types": ["m.*"]}}
372-
filter_id = yield self.datastore.add_user_filter(
373-
user_localpart=user_localpart, user_filter=user_filter_json
372+
filter_id = yield defer.ensureDeferred(
373+
self.datastore.add_user_filter(
374+
user_localpart=user_localpart, user_filter=user_filter_json
375+
)
374376
)
375377
event = MockEvent(sender="@foo:bar", type="m.profile")
376378
events = [event]
@@ -388,8 +390,10 @@ def test_filter_presence_match(self):
388390
def test_filter_presence_no_match(self):
389391
user_filter_json = {"presence": {"types": ["m.*"]}}
390392

391-
filter_id = yield self.datastore.add_user_filter(
392-
user_localpart=user_localpart + "2", user_filter=user_filter_json
393+
filter_id = yield defer.ensureDeferred(
394+
self.datastore.add_user_filter(
395+
user_localpart=user_localpart + "2", user_filter=user_filter_json
396+
)
393397
)
394398
event = MockEvent(
395399
event_id="$asdasd:localhost",
@@ -410,8 +414,10 @@ def test_filter_presence_no_match(self):
410414
@defer.inlineCallbacks
411415
def test_filter_room_state_match(self):
412416
user_filter_json = {"room": {"state": {"types": ["m.*"]}}}
413-
filter_id = yield self.datastore.add_user_filter(
414-
user_localpart=user_localpart, user_filter=user_filter_json
417+
filter_id = yield defer.ensureDeferred(
418+
self.datastore.add_user_filter(
419+
user_localpart=user_localpart, user_filter=user_filter_json
420+
)
415421
)
416422
event = MockEvent(sender="@foo:bar", type="m.room.topic", room_id="!foo:bar")
417423
events = [event]
@@ -428,8 +434,10 @@ def test_filter_room_state_match(self):
428434
@defer.inlineCallbacks
429435
def test_filter_room_state_no_match(self):
430436
user_filter_json = {"room": {"state": {"types": ["m.*"]}}}
431-
filter_id = yield self.datastore.add_user_filter(
432-
user_localpart=user_localpart, user_filter=user_filter_json
437+
filter_id = yield defer.ensureDeferred(
438+
self.datastore.add_user_filter(
439+
user_localpart=user_localpart, user_filter=user_filter_json
440+
)
433441
)
434442
event = MockEvent(
435443
sender="@foo:bar", type="org.matrix.custom.event", room_id="!foo:bar"
@@ -465,8 +473,10 @@ def test_filter_rooms(self):
465473
def test_add_filter(self):
466474
user_filter_json = {"room": {"state": {"types": ["m.*"]}}}
467475

468-
filter_id = yield self.filtering.add_user_filter(
469-
user_localpart=user_localpart, user_filter=user_filter_json
476+
filter_id = yield defer.ensureDeferred(
477+
self.filtering.add_user_filter(
478+
user_localpart=user_localpart, user_filter=user_filter_json
479+
)
470480
)
471481

472482
self.assertEquals(filter_id, 0)
@@ -485,8 +495,10 @@ def test_add_filter(self):
485495
def test_get_filter(self):
486496
user_filter_json = {"room": {"state": {"types": ["m.*"]}}}
487497

488-
filter_id = yield self.datastore.add_user_filter(
489-
user_localpart=user_localpart, user_filter=user_filter_json
498+
filter_id = yield defer.ensureDeferred(
499+
self.datastore.add_user_filter(
500+
user_localpart=user_localpart, user_filter=user_filter_json
501+
)
490502
)
491503

492504
filter = yield defer.ensureDeferred(

tests/crypto/test_keyring.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ def test_verify_json_for_server(self):
190190

191191
# should fail immediately on an unsigned object
192192
d = _verify_json_for_server(kr, "server9", {}, 0, "test unsigned")
193-
self.failureResultOf(d, SynapseError)
193+
self.get_failure(d, SynapseError)
194194

195195
# should succeed on a signed object
196196
d = _verify_json_for_server(kr, "server9", json1, 500, "test signed")
@@ -221,7 +221,7 @@ def test_verify_json_for_server_with_null_valid_until_ms(self):
221221

222222
# should fail immediately on an unsigned object
223223
d = _verify_json_for_server(kr, "server9", {}, 0, "test unsigned")
224-
self.failureResultOf(d, SynapseError)
224+
self.get_failure(d, SynapseError)
225225

226226
# should fail on a signed object with a non-zero minimum_valid_until_ms,
227227
# as it tries to refetch the keys and fails.

tests/federation/test_complexity.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515

1616
from mock import Mock
1717

18-
from twisted.internet import defer
19-
2018
from synapse.api.errors import Codes, SynapseError
2119
from synapse.rest import admin
2220
from synapse.rest.client.v1 import login, room
@@ -60,7 +58,7 @@ def test_complexity_simple(self):
6058

6159
# Artificially raise the complexity
6260
store = self.hs.get_datastore()
63-
store.get_current_state_event_counts = lambda x: defer.succeed(500 * 1.23)
61+
store.get_current_state_event_counts = lambda x: make_awaitable(500 * 1.23)
6462

6563
# Get the room complexity again -- make sure it's our artificial value
6664
request, channel = self.make_request(
@@ -160,7 +158,7 @@ def test_join_too_large_once_joined(self):
160158
)
161159

162160
# Artificially raise the complexity
163-
self.hs.get_datastore().get_current_state_event_counts = lambda x: defer.succeed(
161+
self.hs.get_datastore().get_current_state_event_counts = lambda x: make_awaitable(
164162
600
165163
)
166164

tests/handlers/test_typing.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,9 @@ def get_users_in_room(room_id):
155155
self.datastore.get_new_device_msgs_for_remote = lambda *args, **kargs: make_awaitable(
156156
([], 0)
157157
)
158-
self.datastore.delete_device_msgs_for_remote = lambda *args, **kargs: None
158+
self.datastore.delete_device_msgs_for_remote = lambda *args, **kargs: make_awaitable(
159+
None
160+
)
159161
self.datastore.set_received_txn_response = lambda *args, **kwargs: make_awaitable(
160162
None
161163
)

tests/rest/client/v2_alpha/test_filter.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515

16+
from twisted.internet import defer
17+
1618
from synapse.api.errors import Codes
1719
from synapse.rest.client.v2_alpha import filter
1820

@@ -73,8 +75,10 @@ def test_add_filter_non_local_user(self):
7375
self.assertEquals(channel.json_body["errcode"], Codes.FORBIDDEN)
7476

7577
def test_get_filter(self):
76-
filter_id = self.filtering.add_user_filter(
77-
user_localpart="apple", user_filter=self.EXAMPLE_FILTER
78+
filter_id = defer.ensureDeferred(
79+
self.filtering.add_user_filter(
80+
user_localpart="apple", user_filter=self.EXAMPLE_FILTER
81+
)
7882
)
7983
self.reactor.advance(1)
8084
filter_id = filter_id.result

tests/storage/test_appservice.py

+18-6
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,9 @@ def test_set_appservices_state_multiple_up(self):
243243
def test_create_appservice_txn_first(self):
244244
service = Mock(id=self.as_list[0]["id"])
245245
events = [Mock(event_id="e1"), Mock(event_id="e2")]
246-
txn = yield self.store.create_appservice_txn(service, events)
246+
txn = yield defer.ensureDeferred(
247+
self.store.create_appservice_txn(service, events)
248+
)
247249
self.assertEquals(txn.id, 1)
248250
self.assertEquals(txn.events, events)
249251
self.assertEquals(txn.service, service)
@@ -255,7 +257,9 @@ def test_create_appservice_txn_older_last_txn(self):
255257
yield self._set_last_txn(service.id, 9643) # AS is falling behind
256258
yield self._insert_txn(service.id, 9644, events)
257259
yield self._insert_txn(service.id, 9645, events)
258-
txn = yield self.store.create_appservice_txn(service, events)
260+
txn = yield defer.ensureDeferred(
261+
self.store.create_appservice_txn(service, events)
262+
)
259263
self.assertEquals(txn.id, 9646)
260264
self.assertEquals(txn.events, events)
261265
self.assertEquals(txn.service, service)
@@ -265,7 +269,9 @@ def test_create_appservice_txn_up_to_date_last_txn(self):
265269
service = Mock(id=self.as_list[0]["id"])
266270
events = [Mock(event_id="e1"), Mock(event_id="e2")]
267271
yield self._set_last_txn(service.id, 9643)
268-
txn = yield self.store.create_appservice_txn(service, events)
272+
txn = yield defer.ensureDeferred(
273+
self.store.create_appservice_txn(service, events)
274+
)
269275
self.assertEquals(txn.id, 9644)
270276
self.assertEquals(txn.events, events)
271277
self.assertEquals(txn.service, service)
@@ -286,7 +292,9 @@ def test_create_appservice_txn_up_fuzzing(self):
286292
yield self._insert_txn(self.as_list[2]["id"], 10, events)
287293
yield self._insert_txn(self.as_list[3]["id"], 9643, events)
288294

289-
txn = yield self.store.create_appservice_txn(service, events)
295+
txn = yield defer.ensureDeferred(
296+
self.store.create_appservice_txn(service, events)
297+
)
290298
self.assertEquals(txn.id, 9644)
291299
self.assertEquals(txn.events, events)
292300
self.assertEquals(txn.service, service)
@@ -298,7 +306,9 @@ def test_complete_appservice_txn_first_txn(self):
298306
txn_id = 1
299307

300308
yield self._insert_txn(service.id, txn_id, events)
301-
yield self.store.complete_appservice_txn(txn_id=txn_id, service=service)
309+
yield defer.ensureDeferred(
310+
self.store.complete_appservice_txn(txn_id=txn_id, service=service)
311+
)
302312

303313
res = yield self.db_pool.runQuery(
304314
self.engine.convert_param_style(
@@ -324,7 +334,9 @@ def test_complete_appservice_txn_existing_in_state_table(self):
324334
txn_id = 5
325335
yield self._set_last_txn(service.id, 4)
326336
yield self._insert_txn(service.id, txn_id, events)
327-
yield self.store.complete_appservice_txn(txn_id=txn_id, service=service)
337+
yield defer.ensureDeferred(
338+
self.store.complete_appservice_txn(txn_id=txn_id, service=service)
339+
)
328340

329341
res = yield self.db_pool.runQuery(
330342
self.engine.convert_param_style(

tests/storage/test_background_update.py

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
from mock import Mock
22

3-
from twisted.internet import defer
4-
53
from synapse.storage.background_updates import BackgroundUpdater
64

75
from tests import unittest
@@ -38,11 +36,10 @@ def test_do_background_update(self):
3836
)
3937

4038
# first step: make a bit of progress
41-
@defer.inlineCallbacks
42-
def update(progress, count):
43-
yield self.clock.sleep((count * duration_ms) / 1000)
39+
async def update(progress, count):
40+
await self.clock.sleep((count * duration_ms) / 1000)
4441
progress = {"my_key": progress["my_key"] + 1}
45-
yield store.db_pool.runInteraction(
42+
await store.db_pool.runInteraction(
4643
"update_progress",
4744
self.updates._background_update_progress_txn,
4845
"test_update",

tests/storage/test_end_to_end_keys.py

+24-8
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ def test_key_without_device_name(self):
3232

3333
yield defer.ensureDeferred(self.store.store_device("user", "device", None))
3434

35-
yield self.store.set_e2e_device_keys("user", "device", now, json)
35+
yield defer.ensureDeferred(
36+
self.store.set_e2e_device_keys("user", "device", now, json)
37+
)
3638

3739
res = yield defer.ensureDeferred(
3840
self.store.get_e2e_device_keys((("user", "device"),))
@@ -49,20 +51,26 @@ def test_reupload_key(self):
4951

5052
yield defer.ensureDeferred(self.store.store_device("user", "device", None))
5153

52-
changed = yield self.store.set_e2e_device_keys("user", "device", now, json)
54+
changed = yield defer.ensureDeferred(
55+
self.store.set_e2e_device_keys("user", "device", now, json)
56+
)
5357
self.assertTrue(changed)
5458

5559
# If we try to upload the same key then we should be told nothing
5660
# changed
57-
changed = yield self.store.set_e2e_device_keys("user", "device", now, json)
61+
changed = yield defer.ensureDeferred(
62+
self.store.set_e2e_device_keys("user", "device", now, json)
63+
)
5864
self.assertFalse(changed)
5965

6066
@defer.inlineCallbacks
6167
def test_get_key_with_device_name(self):
6268
now = 1470174257070
6369
json = {"key": "value"}
6470

65-
yield self.store.set_e2e_device_keys("user", "device", now, json)
71+
yield defer.ensureDeferred(
72+
self.store.set_e2e_device_keys("user", "device", now, json)
73+
)
6674
yield defer.ensureDeferred(
6775
self.store.store_device("user", "device", "display_name")
6876
)
@@ -86,10 +94,18 @@ def test_multiple_devices(self):
8694
yield defer.ensureDeferred(self.store.store_device("user2", "device1", None))
8795
yield defer.ensureDeferred(self.store.store_device("user2", "device2", None))
8896

89-
yield self.store.set_e2e_device_keys("user1", "device1", now, {"key": "json11"})
90-
yield self.store.set_e2e_device_keys("user1", "device2", now, {"key": "json12"})
91-
yield self.store.set_e2e_device_keys("user2", "device1", now, {"key": "json21"})
92-
yield self.store.set_e2e_device_keys("user2", "device2", now, {"key": "json22"})
97+
yield defer.ensureDeferred(
98+
self.store.set_e2e_device_keys("user1", "device1", now, {"key": "json11"})
99+
)
100+
yield defer.ensureDeferred(
101+
self.store.set_e2e_device_keys("user1", "device2", now, {"key": "json12"})
102+
)
103+
yield defer.ensureDeferred(
104+
self.store.set_e2e_device_keys("user2", "device1", now, {"key": "json21"})
105+
)
106+
yield defer.ensureDeferred(
107+
self.store.set_e2e_device_keys("user2", "device2", now, {"key": "json22"})
108+
)
93109

94110
res = yield defer.ensureDeferred(
95111
self.store.get_e2e_device_keys((("user1", "device1"), ("user2", "device2")))

0 commit comments

Comments
 (0)