diff --git a/tests/handlers/test_device.py b/tests/handlers/test_device.py
index dca539d203..55a4f95ef3 100644
--- a/tests/handlers/test_device.py
+++ b/tests/handlers/test_device.py
@@ -122,50 +122,50 @@ class DeviceTestCase(unittest.HomeserverTestCase):
self.assertEqual(3, len(res))
device_map = {d["device_id"]: d for d in res}
- self.assertDictContainsSubset(
+ self.assertLessEqual(
{
"user_id": user1,
"device_id": "xyz",
"display_name": "display 0",
"last_seen_ip": None,
"last_seen_ts": None,
- },
- device_map["xyz"],
+ }.items(),
+ device_map["xyz"].items(),
)
- self.assertDictContainsSubset(
+ self.assertLessEqual(
{
"user_id": user1,
"device_id": "fco",
"display_name": "display 1",
"last_seen_ip": "ip1",
"last_seen_ts": 1000000,
- },
- device_map["fco"],
+ }.items(),
+ device_map["fco"].items(),
)
- self.assertDictContainsSubset(
+ self.assertLessEqual(
{
"user_id": user1,
"device_id": "abc",
"display_name": "display 2",
"last_seen_ip": "ip3",
"last_seen_ts": 3000000,
- },
- device_map["abc"],
+ }.items(),
+ device_map["abc"].items(),
)
def test_get_device(self) -> None:
self._record_users()
res = self.get_success(self.handler.get_device(user1, "abc"))
- self.assertDictContainsSubset(
+ self.assertLessEqual(
{
"user_id": user1,
"device_id": "abc",
"display_name": "display 2",
"last_seen_ip": "ip3",
"last_seen_ts": 3000000,
- },
- res,
+ }.items(),
+ res.items(),
)
def test_delete_device(self) -> None:
diff --git a/tests/rest/client/test_login.py b/tests/rest/client/test_login.py
index 62c32cae5e..a2a6589564 100644
--- a/tests/rest/client/test_login.py
+++ b/tests/rest/client/test_login.py
@@ -581,8 +581,9 @@ class LoginRestServletTestCase(unittest.HomeserverTestCase):
body,
)
self.assertEqual(channel.code, 403, channel.result)
- self.assertDictContainsSubset(
- {"errcode": Codes.LIMIT_EXCEEDED, "extra": "value"}, channel.json_body
+ self.assertLessEqual(
+ {"errcode": Codes.LIMIT_EXCEEDED, "extra": "value"}.items(),
+ channel.json_body.items(),
)
diff --git a/tests/rest/client/test_register.py b/tests/rest/client/test_register.py
index b228dba861..c33393dc28 100644
--- a/tests/rest/client/test_register.py
+++ b/tests/rest/client/test_register.py
@@ -75,7 +75,7 @@ class RegisterRestServletTestCase(unittest.HomeserverTestCase):
self.assertEqual(channel.code, 200, msg=channel.result)
det_data = {"user_id": user_id, "home_server": self.hs.hostname}
- self.assertDictContainsSubset(det_data, channel.json_body)
+ self.assertLessEqual(det_data.items(), channel.json_body.items())
def test_POST_appservice_registration_no_type(self) -> None:
as_token = "i_am_an_app_service"
@@ -136,7 +136,7 @@ class RegisterRestServletTestCase(unittest.HomeserverTestCase):
"device_id": device_id,
}
self.assertEqual(channel.code, 200, msg=channel.result)
- self.assertDictContainsSubset(det_data, channel.json_body)
+ self.assertLessEqual(det_data.items(), channel.json_body.items())
@override_config({"enable_registration": False})
def test_POST_disabled_registration(self) -> None:
@@ -157,7 +157,7 @@ class RegisterRestServletTestCase(unittest.HomeserverTestCase):
det_data = {"home_server": self.hs.hostname, "device_id": "guest_device"}
self.assertEqual(channel.code, 200, msg=channel.result)
- self.assertDictContainsSubset(det_data, channel.json_body)
+ self.assertLessEqual(det_data.items(), channel.json_body.items())
def test_POST_disabled_guest_registration(self) -> None:
self.hs.config.registration.allow_guest_access = False
@@ -267,7 +267,7 @@ class RegisterRestServletTestCase(unittest.HomeserverTestCase):
"device_id": device_id,
}
self.assertEqual(channel.code, 200, msg=channel.result)
- self.assertDictContainsSubset(det_data, channel.json_body)
+ self.assertLessEqual(det_data.items(), channel.json_body.items())
# Check the `completed` counter has been incremented and pending is 0
res = self.get_success(
diff --git a/tests/rest/client/test_relations.py b/tests/rest/client/test_relations.py
index d3f6191996..61773fb28c 100644
--- a/tests/rest/client/test_relations.py
+++ b/tests/rest/client/test_relations.py
@@ -570,7 +570,7 @@ class RelationsTestCase(BaseRelationsTestCase):
)
self.assertEqual(200, channel.code, channel.json_body)
event_result = channel.json_body
- self.assertDictContainsSubset(original_body, event_result["content"])
+ self.assertLessEqual(original_body.items(), event_result["content"].items())
# also check /context, which returns the *edited* event
channel = self.make_request(
@@ -587,14 +587,14 @@ class RelationsTestCase(BaseRelationsTestCase):
(context_result, "/context"),
):
# The reference metadata should still be intact.
- self.assertDictContainsSubset(
+ self.assertLessEqual(
{
"m.relates_to": {
"event_id": self.parent_id,
"rel_type": "m.reference",
}
- },
- result_event_dict["content"],
+ }.items(),
+ result_event_dict["content"].items(),
desc,
)
@@ -1372,9 +1372,11 @@ class BundledAggregationsTestCase(BaseRelationsTestCase):
latest_event_in_thread = thread_summary["latest_event"]
# The latest event in the thread should have the edit appear under the
# bundled aggregations.
- self.assertDictContainsSubset(
- {"event_id": edit_event_id, "sender": "@alice:test"},
- latest_event_in_thread["unsigned"]["m.relations"][RelationTypes.REPLACE],
+ self.assertLessEqual(
+ {"event_id": edit_event_id, "sender": "@alice:test"}.items(),
+ latest_event_in_thread["unsigned"]["m.relations"][
+ RelationTypes.REPLACE
+ ].items(),
)
def test_aggregation_get_event_for_annotation(self) -> None:
@@ -1637,9 +1639,9 @@ class RelationRedactionTestCase(BaseRelationsTestCase):
##################################################
self.assertEqual(self._get_related_events(), list(reversed(thread_replies)))
relations = self._get_bundled_aggregations()
- self.assertDictContainsSubset(
- {"count": 3, "current_user_participated": True},
- relations[RelationTypes.THREAD],
+ self.assertLessEqual(
+ {"count": 3, "current_user_participated": True}.items(),
+ relations[RelationTypes.THREAD].items(),
)
# The latest event is the last sent event.
self.assertEqual(
@@ -1658,9 +1660,9 @@ class RelationRedactionTestCase(BaseRelationsTestCase):
# The thread should still exist, but the latest event should be updated.
self.assertEqual(self._get_related_events(), list(reversed(thread_replies)))
relations = self._get_bundled_aggregations()
- self.assertDictContainsSubset(
- {"count": 2, "current_user_participated": True},
- relations[RelationTypes.THREAD],
+ self.assertLessEqual(
+ {"count": 2, "current_user_participated": True}.items(),
+ relations[RelationTypes.THREAD].items(),
)
# And the latest event is the last unredacted event.
self.assertEqual(
@@ -1677,9 +1679,9 @@ class RelationRedactionTestCase(BaseRelationsTestCase):
# Nothing should have changed (except the thread count).
self.assertEqual(self._get_related_events(), thread_replies)
relations = self._get_bundled_aggregations()
- self.assertDictContainsSubset(
- {"count": 1, "current_user_participated": True},
- relations[RelationTypes.THREAD],
+ self.assertLessEqual(
+ {"count": 1, "current_user_participated": True}.items(),
+ relations[RelationTypes.THREAD].items(),
)
# And the latest event is the last unredacted event.
self.assertEqual(
@@ -1774,12 +1776,12 @@ class RelationRedactionTestCase(BaseRelationsTestCase):
event_ids = self._get_related_events()
relations = self._get_bundled_aggregations()
self.assertEqual(len(event_ids), 1)
- self.assertDictContainsSubset(
+ self.assertLessEqual(
{
"count": 1,
"current_user_participated": True,
- },
- relations[RelationTypes.THREAD],
+ }.items(),
+ relations[RelationTypes.THREAD].items(),
)
self.assertEqual(
relations[RelationTypes.THREAD]["latest_event"]["event_id"],
diff --git a/tests/storage/test_client_ips.py b/tests/storage/test_client_ips.py
index 12e24d4dbd..6b9692c486 100644
--- a/tests/storage/test_client_ips.py
+++ b/tests/storage/test_client_ips.py
@@ -65,15 +65,15 @@ class ClientIpStoreTestCase(unittest.HomeserverTestCase):
)
r = result[(user_id, device_id)]
- self.assertDictContainsSubset(
+ self.assertLessEqual(
{
"user_id": user_id,
"device_id": device_id,
"ip": "ip",
"user_agent": "user_agent",
"last_seen": 12345678000,
- },
- r,
+ }.items(),
+ r.items(),
)
def test_insert_new_client_ip_none_device_id(self) -> None:
@@ -526,15 +526,15 @@ class ClientIpStoreTestCase(unittest.HomeserverTestCase):
)
r = result[(user_id, device_id)]
- self.assertDictContainsSubset(
+ self.assertLessEqual(
{
"user_id": user_id,
"device_id": device_id,
"ip": None,
"user_agent": None,
"last_seen": None,
- },
- r,
+ }.items(),
+ r.items(),
)
# Register the background update to run again.
@@ -561,15 +561,15 @@ class ClientIpStoreTestCase(unittest.HomeserverTestCase):
)
r = result[(user_id, device_id)]
- self.assertDictContainsSubset(
+ self.assertLessEqual(
{
"user_id": user_id,
"device_id": device_id,
"ip": "ip",
"user_agent": "user_agent",
"last_seen": 0,
- },
- r,
+ }.items(),
+ r.items(),
)
def test_old_user_ips_pruned(self) -> None:
@@ -640,15 +640,15 @@ class ClientIpStoreTestCase(unittest.HomeserverTestCase):
)
r = result2[(user_id, device_id)]
- self.assertDictContainsSubset(
+ self.assertLessEqual(
{
"user_id": user_id,
"device_id": device_id,
"ip": "ip",
"user_agent": "user_agent",
"last_seen": 0,
- },
- r,
+ }.items(),
+ r.items(),
)
def test_invalid_user_agents_are_ignored(self) -> None:
@@ -777,13 +777,13 @@ class ClientIpAuthTestCase(unittest.HomeserverTestCase):
self.store.get_last_client_ip_by_device(self.user_id, device_id)
)
r = result[(self.user_id, device_id)]
- self.assertDictContainsSubset(
+ self.assertLessEqual(
{
"user_id": self.user_id,
"device_id": device_id,
"ip": expected_ip,
"user_agent": "Mozzila pizza",
"last_seen": 123456100,
- },
- r,
+ }.items(),
+ r.items(),
)
diff --git a/tests/storage/test_devices.py b/tests/storage/test_devices.py
index f03807c8f9..58ab41cf26 100644
--- a/tests/storage/test_devices.py
+++ b/tests/storage/test_devices.py
@@ -58,13 +58,13 @@ class DeviceStoreTestCase(HomeserverTestCase):
res = self.get_success(self.store.get_device("user_id", "device_id"))
assert res is not None
- self.assertDictContainsSubset(
+ self.assertLessEqual(
{
"user_id": "user_id",
"device_id": "device_id",
"display_name": "display_name",
- },
- res,
+ }.items(),
+ res.items(),
)
def test_get_devices_by_user(self) -> None:
@@ -80,21 +80,21 @@ class DeviceStoreTestCase(HomeserverTestCase):
res = self.get_success(self.store.get_devices_by_user("user_id"))
self.assertEqual(2, len(res.keys()))
- self.assertDictContainsSubset(
+ self.assertLessEqual(
{
"user_id": "user_id",
"device_id": "device1",
"display_name": "display_name 1",
- },
- res["device1"],
+ }.items(),
+ res["device1"].items(),
)
- self.assertDictContainsSubset(
+ self.assertLessEqual(
{
"user_id": "user_id",
"device_id": "device2",
"display_name": "display_name 2",
- },
- res["device2"],
+ }.items(),
+ res["device2"].items(),
)
def test_count_devices_by_users(self) -> None:
diff --git a/tests/storage/test_end_to_end_keys.py b/tests/storage/test_end_to_end_keys.py
index 5fde3b9c78..2033377b52 100644
--- a/tests/storage/test_end_to_end_keys.py
+++ b/tests/storage/test_end_to_end_keys.py
@@ -38,7 +38,7 @@ class EndToEndKeyStoreTestCase(HomeserverTestCase):
self.assertIn("user", res)
self.assertIn("device", res["user"])
dev = res["user"]["device"]
- self.assertDictContainsSubset(json, dev)
+ self.assertLessEqual(json.items(), dev.items())
def test_reupload_key(self) -> None:
now = 1470174257070
@@ -71,8 +71,12 @@ class EndToEndKeyStoreTestCase(HomeserverTestCase):
self.assertIn("user", res)
self.assertIn("device", res["user"])
dev = res["user"]["device"]
- self.assertDictContainsSubset(
- {"key": "value", "unsigned": {"device_display_name": "display_name"}}, dev
+ self.assertLessEqual(
+ {
+ "key": "value",
+ "unsigned": {"device_display_name": "display_name"},
+ }.items(),
+ dev.items(),
)
def test_multiple_devices(self) -> None:
diff --git a/tests/storage/test_room.py b/tests/storage/test_room.py
index 71ec74eadc..1e27f2c275 100644
--- a/tests/storage/test_room.py
+++ b/tests/storage/test_room.py
@@ -44,13 +44,13 @@ class RoomStoreTestCase(HomeserverTestCase):
def test_get_room(self) -> None:
res = self.get_success(self.store.get_room(self.room.to_string()))
assert res is not None
- self.assertDictContainsSubset(
+ self.assertLessEqual(
{
"room_id": self.room.to_string(),
"creator": self.u_creator.to_string(),
"is_public": True,
- },
- res,
+ }.items(),
+ res.items(),
)
def test_get_room_unknown_room(self) -> None:
@@ -59,13 +59,13 @@ class RoomStoreTestCase(HomeserverTestCase):
def test_get_room_with_stats(self) -> None:
res = self.get_success(self.store.get_room_with_stats(self.room.to_string()))
assert res is not None
- self.assertDictContainsSubset(
+ self.assertLessEqual(
{
"room_id": self.room.to_string(),
"creator": self.u_creator.to_string(),
"public": True,
- },
- res,
+ }.items(),
+ res.items(),
)
def test_get_room_with_stats_unknown_room(self) -> None:
diff --git a/tests/test_terms_auth.py b/tests/test_terms_auth.py
index 52424aa087..64a49488c6 100644
--- a/tests/test_terms_auth.py
+++ b/tests/test_terms_auth.py
@@ -85,7 +85,9 @@ class TermsTestCase(unittest.HomeserverTestCase):
}
}
self.assertIsInstance(channel.json_body["params"], dict)
- self.assertDictContainsSubset(channel.json_body["params"], expected_params)
+ self.assertLessEqual(
+ channel.json_body["params"].items(), expected_params.items()
+ )
# We have to complete the dummy auth stage before completing the terms stage
request_data = {
|