forked from MirrorHub/synapse
Add unit tests
This commit is contained in:
parent
233b14ebe1
commit
e7943f660a
2 changed files with 52 additions and 1 deletions
|
@ -307,7 +307,7 @@ class Filter(object):
|
||||||
content = event.get("content", {})
|
content = event.get("content", {})
|
||||||
# check if there is a string url field in the content for filtering purposes
|
# check if there is a string url field in the content for filtering purposes
|
||||||
contains_url = isinstance(content.get("url"), text_type)
|
contains_url = isinstance(content.get("url"), text_type)
|
||||||
labels = content.get(LabelsField)
|
labels = content.get(LabelsField, [])
|
||||||
|
|
||||||
return self.check_fields(room_id, sender, ev_type, labels, contains_url)
|
return self.check_fields(room_id, sender, ev_type, labels, contains_url)
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ import jsonschema
|
||||||
|
|
||||||
from twisted.internet import defer
|
from twisted.internet import defer
|
||||||
|
|
||||||
|
from synapse.api.constants import LabelsField
|
||||||
from synapse.api.errors import SynapseError
|
from synapse.api.errors import SynapseError
|
||||||
from synapse.api.filtering import Filter
|
from synapse.api.filtering import Filter
|
||||||
from synapse.events import FrozenEvent
|
from synapse.events import FrozenEvent
|
||||||
|
@ -95,6 +96,8 @@ class FilteringTestCase(unittest.TestCase):
|
||||||
"types": ["m.room.message"],
|
"types": ["m.room.message"],
|
||||||
"not_rooms": ["!726s6s6q:example.com"],
|
"not_rooms": ["!726s6s6q:example.com"],
|
||||||
"not_senders": ["@spam:example.com"],
|
"not_senders": ["@spam:example.com"],
|
||||||
|
"org.matrix.labels": ["#fun"],
|
||||||
|
"org.matrix.not_labels": ["#work"],
|
||||||
},
|
},
|
||||||
"ephemeral": {
|
"ephemeral": {
|
||||||
"types": ["m.receipt", "m.typing"],
|
"types": ["m.receipt", "m.typing"],
|
||||||
|
@ -320,6 +323,54 @@ class FilteringTestCase(unittest.TestCase):
|
||||||
)
|
)
|
||||||
self.assertFalse(Filter(definition).check(event))
|
self.assertFalse(Filter(definition).check(event))
|
||||||
|
|
||||||
|
def test_filter_labels(self):
|
||||||
|
definition = {"org.matrix.labels": ["#fun"]}
|
||||||
|
event = MockEvent(
|
||||||
|
sender="@foo:bar",
|
||||||
|
type="m.room.message",
|
||||||
|
room_id="!secretbase:unknown",
|
||||||
|
content={
|
||||||
|
LabelsField: ["#fun"]
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertTrue(Filter(definition).check(event))
|
||||||
|
|
||||||
|
event = MockEvent(
|
||||||
|
sender="@foo:bar",
|
||||||
|
type="m.room.message",
|
||||||
|
room_id="!secretbase:unknown",
|
||||||
|
content={
|
||||||
|
LabelsField: ["#notfun"]
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertFalse(Filter(definition).check(event))
|
||||||
|
|
||||||
|
def test_filter_not_labels(self):
|
||||||
|
definition = {"org.matrix.not_labels": ["#fun"]}
|
||||||
|
event = MockEvent(
|
||||||
|
sender="@foo:bar",
|
||||||
|
type="m.room.message",
|
||||||
|
room_id="!secretbase:unknown",
|
||||||
|
content={
|
||||||
|
LabelsField: ["#fun"]
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertFalse(Filter(definition).check(event))
|
||||||
|
|
||||||
|
event = MockEvent(
|
||||||
|
sender="@foo:bar",
|
||||||
|
type="m.room.message",
|
||||||
|
room_id="!secretbase:unknown",
|
||||||
|
content={
|
||||||
|
LabelsField: ["#notfun"]
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertTrue(Filter(definition).check(event))
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def test_filter_presence_match(self):
|
def test_filter_presence_match(self):
|
||||||
user_filter_json = {"presence": {"types": ["m.*"]}}
|
user_filter_json = {"presence": {"types": ["m.*"]}}
|
||||||
|
|
Loading…
Reference in a new issue