diff --git a/tests/api/test_filtering.py b/tests/api/test_filtering.py
index 2525018e95..8c3354ce3c 100644
--- a/tests/api/test_filtering.py
+++ b/tests/api/test_filtering.py
@@ -18,6 +18,7 @@
from unittest.mock import patch
import jsonschema
+from frozendict import frozendict
from synapse.api.constants import EventContentFields
from synapse.api.errors import SynapseError
@@ -327,6 +328,15 @@ class FilteringTestCase(unittest.HomeserverTestCase):
self.assertFalse(Filter(self.hs, definition)._check(event))
+ # check it works with frozendicts too
+ event = MockEvent(
+ sender="@foo:bar",
+ type="m.room.message",
+ room_id="!secretbase:unknown",
+ content=frozendict({EventContentFields.LABELS: ["#fun"]}),
+ )
+ self.assertTrue(Filter(self.hs, definition)._check(event))
+
def test_filter_not_labels(self):
definition = {"org.matrix.not_labels": ["#fun"]}
event = MockEvent(
diff --git a/tests/push/test_push_rule_evaluator.py b/tests/push/test_push_rule_evaluator.py
index a52e89e407..3849beb9d6 100644
--- a/tests/push/test_push_rule_evaluator.py
+++ b/tests/push/test_push_rule_evaluator.py
@@ -14,6 +14,8 @@
from typing import Any, Dict
+import frozendict
+
from synapse.api.room_versions import RoomVersions
from synapse.events import FrozenEvent
from synapse.push import push_rule_evaluator
@@ -191,6 +193,13 @@ class PushRuleEvaluatorTestCase(unittest.TestCase):
"pattern should only match at the start/end of the value",
)
+ # it should work on frozendicts too
+ self._assert_matches(
+ condition,
+ frozendict.frozendict({"value": "FoobaZ"}),
+ "patterns should match on frozendicts",
+ )
+
# wildcards should match
condition = {
"kind": "event_match",
|