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

Commit 84f441f

Browse files
authored
Prepare unit tests for Python 3.12 (#16099)
1 parent ed6de4b commit 84f441f

File tree

13 files changed

+94
-84
lines changed

13 files changed

+94
-84
lines changed

.ci/scripts/calculate_jobs.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,9 @@ def set_output(key: str, value: str):
4747
"database": "sqlite",
4848
"extras": "all",
4949
}
50-
for version in ("3.9", "3.10", "3.11")
50+
for version in ("3.9", "3.10", "3.11", "3.12.0-rc.1")
5151
)
5252

53-
5453
trial_postgres_tests = [
5554
{
5655
"python-version": "3.8",

changelog.d/16099.misc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Prepare unit tests for Python 3.12.

poetry.lock

Lines changed: 11 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

synapse/logging/_terse_json.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
"processName",
4545
"relativeCreated",
4646
"stack_info",
47+
"taskName",
4748
"thread",
4849
"threadName",
4950
}

tests/handlers/test_device.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -122,50 +122,50 @@ def test_get_devices_by_user(self) -> None:
122122

123123
self.assertEqual(3, len(res))
124124
device_map = {d["device_id"]: d for d in res}
125-
self.assertDictContainsSubset(
125+
self.assertLessEqual(
126126
{
127127
"user_id": user1,
128128
"device_id": "xyz",
129129
"display_name": "display 0",
130130
"last_seen_ip": None,
131131
"last_seen_ts": None,
132-
},
133-
device_map["xyz"],
132+
}.items(),
133+
device_map["xyz"].items(),
134134
)
135-
self.assertDictContainsSubset(
135+
self.assertLessEqual(
136136
{
137137
"user_id": user1,
138138
"device_id": "fco",
139139
"display_name": "display 1",
140140
"last_seen_ip": "ip1",
141141
"last_seen_ts": 1000000,
142-
},
143-
device_map["fco"],
142+
}.items(),
143+
device_map["fco"].items(),
144144
)
145-
self.assertDictContainsSubset(
145+
self.assertLessEqual(
146146
{
147147
"user_id": user1,
148148
"device_id": "abc",
149149
"display_name": "display 2",
150150
"last_seen_ip": "ip3",
151151
"last_seen_ts": 3000000,
152-
},
153-
device_map["abc"],
152+
}.items(),
153+
device_map["abc"].items(),
154154
)
155155

156156
def test_get_device(self) -> None:
157157
self._record_users()
158158

159159
res = self.get_success(self.handler.get_device(user1, "abc"))
160-
self.assertDictContainsSubset(
160+
self.assertLessEqual(
161161
{
162162
"user_id": user1,
163163
"device_id": "abc",
164164
"display_name": "display 2",
165165
"last_seen_ip": "ip3",
166166
"last_seen_ts": 3000000,
167-
},
168-
res,
167+
}.items(),
168+
res.items(),
169169
)
170170

171171
def test_delete_device(self) -> None:

tests/rest/client/test_login.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -581,8 +581,9 @@ def test_spam_checker_deny(self) -> None:
581581
body,
582582
)
583583
self.assertEqual(channel.code, 403, channel.result)
584-
self.assertDictContainsSubset(
585-
{"errcode": Codes.LIMIT_EXCEEDED, "extra": "value"}, channel.json_body
584+
self.assertLessEqual(
585+
{"errcode": Codes.LIMIT_EXCEEDED, "extra": "value"}.items(),
586+
channel.json_body.items(),
586587
)
587588

588589

tests/rest/client/test_register.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ def test_POST_appservice_registration_valid(self) -> None:
7575

7676
self.assertEqual(channel.code, 200, msg=channel.result)
7777
det_data = {"user_id": user_id, "home_server": self.hs.hostname}
78-
self.assertDictContainsSubset(det_data, channel.json_body)
78+
self.assertLessEqual(det_data.items(), channel.json_body.items())
7979

8080
def test_POST_appservice_registration_no_type(self) -> None:
8181
as_token = "i_am_an_app_service"
@@ -136,7 +136,7 @@ def test_POST_user_valid(self) -> None:
136136
"device_id": device_id,
137137
}
138138
self.assertEqual(channel.code, 200, msg=channel.result)
139-
self.assertDictContainsSubset(det_data, channel.json_body)
139+
self.assertLessEqual(det_data.items(), channel.json_body.items())
140140

141141
@override_config({"enable_registration": False})
142142
def test_POST_disabled_registration(self) -> None:
@@ -157,7 +157,7 @@ def test_POST_guest_registration(self) -> None:
157157

158158
det_data = {"home_server": self.hs.hostname, "device_id": "guest_device"}
159159
self.assertEqual(channel.code, 200, msg=channel.result)
160-
self.assertDictContainsSubset(det_data, channel.json_body)
160+
self.assertLessEqual(det_data.items(), channel.json_body.items())
161161

162162
def test_POST_disabled_guest_registration(self) -> None:
163163
self.hs.config.registration.allow_guest_access = False
@@ -267,7 +267,7 @@ def test_POST_registration_requires_token(self) -> None:
267267
"device_id": device_id,
268268
}
269269
self.assertEqual(channel.code, 200, msg=channel.result)
270-
self.assertDictContainsSubset(det_data, channel.json_body)
270+
self.assertLessEqual(det_data.items(), channel.json_body.items())
271271

272272
# Check the `completed` counter has been incremented and pending is 0
273273
res = self.get_success(

tests/rest/client/test_relations.py

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -570,7 +570,7 @@ def test_edit_reply(self) -> None:
570570
)
571571
self.assertEqual(200, channel.code, channel.json_body)
572572
event_result = channel.json_body
573-
self.assertDictContainsSubset(original_body, event_result["content"])
573+
self.assertLessEqual(original_body.items(), event_result["content"].items())
574574

575575
# also check /context, which returns the *edited* event
576576
channel = self.make_request(
@@ -587,14 +587,14 @@ def test_edit_reply(self) -> None:
587587
(context_result, "/context"),
588588
):
589589
# The reference metadata should still be intact.
590-
self.assertDictContainsSubset(
590+
self.assertLessEqual(
591591
{
592592
"m.relates_to": {
593593
"event_id": self.parent_id,
594594
"rel_type": "m.reference",
595595
}
596-
},
597-
result_event_dict["content"],
596+
}.items(),
597+
result_event_dict["content"].items(),
598598
desc,
599599
)
600600

@@ -1372,9 +1372,11 @@ def test_thread_edit_latest_event(self) -> None:
13721372
latest_event_in_thread = thread_summary["latest_event"]
13731373
# The latest event in the thread should have the edit appear under the
13741374
# bundled aggregations.
1375-
self.assertDictContainsSubset(
1376-
{"event_id": edit_event_id, "sender": "@alice:test"},
1377-
latest_event_in_thread["unsigned"]["m.relations"][RelationTypes.REPLACE],
1375+
self.assertLessEqual(
1376+
{"event_id": edit_event_id, "sender": "@alice:test"}.items(),
1377+
latest_event_in_thread["unsigned"]["m.relations"][
1378+
RelationTypes.REPLACE
1379+
].items(),
13781380
)
13791381

13801382
def test_aggregation_get_event_for_annotation(self) -> None:
@@ -1637,9 +1639,9 @@ def test_redact_relation_thread(self) -> None:
16371639
##################################################
16381640
self.assertEqual(self._get_related_events(), list(reversed(thread_replies)))
16391641
relations = self._get_bundled_aggregations()
1640-
self.assertDictContainsSubset(
1641-
{"count": 3, "current_user_participated": True},
1642-
relations[RelationTypes.THREAD],
1642+
self.assertLessEqual(
1643+
{"count": 3, "current_user_participated": True}.items(),
1644+
relations[RelationTypes.THREAD].items(),
16431645
)
16441646
# The latest event is the last sent event.
16451647
self.assertEqual(
@@ -1658,9 +1660,9 @@ def test_redact_relation_thread(self) -> None:
16581660
# The thread should still exist, but the latest event should be updated.
16591661
self.assertEqual(self._get_related_events(), list(reversed(thread_replies)))
16601662
relations = self._get_bundled_aggregations()
1661-
self.assertDictContainsSubset(
1662-
{"count": 2, "current_user_participated": True},
1663-
relations[RelationTypes.THREAD],
1663+
self.assertLessEqual(
1664+
{"count": 2, "current_user_participated": True}.items(),
1665+
relations[RelationTypes.THREAD].items(),
16641666
)
16651667
# And the latest event is the last unredacted event.
16661668
self.assertEqual(
@@ -1677,9 +1679,9 @@ def test_redact_relation_thread(self) -> None:
16771679
# Nothing should have changed (except the thread count).
16781680
self.assertEqual(self._get_related_events(), thread_replies)
16791681
relations = self._get_bundled_aggregations()
1680-
self.assertDictContainsSubset(
1681-
{"count": 1, "current_user_participated": True},
1682-
relations[RelationTypes.THREAD],
1682+
self.assertLessEqual(
1683+
{"count": 1, "current_user_participated": True}.items(),
1684+
relations[RelationTypes.THREAD].items(),
16831685
)
16841686
# And the latest event is the last unredacted event.
16851687
self.assertEqual(
@@ -1774,12 +1776,12 @@ def test_redact_parent_thread(self) -> None:
17741776
event_ids = self._get_related_events()
17751777
relations = self._get_bundled_aggregations()
17761778
self.assertEqual(len(event_ids), 1)
1777-
self.assertDictContainsSubset(
1779+
self.assertLessEqual(
17781780
{
17791781
"count": 1,
17801782
"current_user_participated": True,
1781-
},
1782-
relations[RelationTypes.THREAD],
1783+
}.items(),
1784+
relations[RelationTypes.THREAD].items(),
17831785
)
17841786
self.assertEqual(
17851787
relations[RelationTypes.THREAD]["latest_event"]["event_id"],

tests/storage/test_client_ips.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,15 @@ def test_insert_new_client_ip(self) -> None:
6565
)
6666

6767
r = result[(user_id, device_id)]
68-
self.assertDictContainsSubset(
68+
self.assertLessEqual(
6969
{
7070
"user_id": user_id,
7171
"device_id": device_id,
7272
"ip": "ip",
7373
"user_agent": "user_agent",
7474
"last_seen": 12345678000,
75-
},
76-
r,
75+
}.items(),
76+
r.items(),
7777
)
7878

7979
def test_insert_new_client_ip_none_device_id(self) -> None:
@@ -526,15 +526,15 @@ def test_devices_last_seen_bg_update(self) -> None:
526526
)
527527

528528
r = result[(user_id, device_id)]
529-
self.assertDictContainsSubset(
529+
self.assertLessEqual(
530530
{
531531
"user_id": user_id,
532532
"device_id": device_id,
533533
"ip": None,
534534
"user_agent": None,
535535
"last_seen": None,
536-
},
537-
r,
536+
}.items(),
537+
r.items(),
538538
)
539539

540540
# Register the background update to run again.
@@ -561,15 +561,15 @@ def test_devices_last_seen_bg_update(self) -> None:
561561
)
562562

563563
r = result[(user_id, device_id)]
564-
self.assertDictContainsSubset(
564+
self.assertLessEqual(
565565
{
566566
"user_id": user_id,
567567
"device_id": device_id,
568568
"ip": "ip",
569569
"user_agent": "user_agent",
570570
"last_seen": 0,
571-
},
572-
r,
571+
}.items(),
572+
r.items(),
573573
)
574574

575575
def test_old_user_ips_pruned(self) -> None:
@@ -640,15 +640,15 @@ def test_old_user_ips_pruned(self) -> None:
640640
)
641641

642642
r = result2[(user_id, device_id)]
643-
self.assertDictContainsSubset(
643+
self.assertLessEqual(
644644
{
645645
"user_id": user_id,
646646
"device_id": device_id,
647647
"ip": "ip",
648648
"user_agent": "user_agent",
649649
"last_seen": 0,
650-
},
651-
r,
650+
}.items(),
651+
r.items(),
652652
)
653653

654654
def test_invalid_user_agents_are_ignored(self) -> None:
@@ -777,13 +777,13 @@ def _runtest(
777777
self.store.get_last_client_ip_by_device(self.user_id, device_id)
778778
)
779779
r = result[(self.user_id, device_id)]
780-
self.assertDictContainsSubset(
780+
self.assertLessEqual(
781781
{
782782
"user_id": self.user_id,
783783
"device_id": device_id,
784784
"ip": expected_ip,
785785
"user_agent": "Mozzila pizza",
786786
"last_seen": 123456100,
787-
},
788-
r,
787+
}.items(),
788+
r.items(),
789789
)

0 commit comments

Comments
 (0)