Add valid filter tests, flake8, fix typo

Signed-off-by: pik <alexander.maznev@gmail.com>
This commit is contained in:
pik 2017-03-07 20:54:02 -03:00
parent e56c79c114
commit acafcf1c5b
2 changed files with 55 additions and 10 deletions

View File

@ -78,7 +78,7 @@ ROOM_FILTER_SCHEMA = {
"timeline": { "timeline": {
"$ref": "#/definitions/room_event_filter" "$ref": "#/definitions/room_event_filter"
}, },
"accpount_data": { "account_data": {
"$ref": "#/definitions/room_event_filter" "$ref": "#/definitions/room_event_filter"
}, },
} }
@ -131,7 +131,7 @@ USER_ID_ARRAY_SCHEMA = {
"type": "array", "type": "array",
"items": { "items": {
"type": "string", "type": "string",
"pattern": "^[A-Za-z0-9_]+:[A-Za-z0-9_-\.]+$" "pattern": "^@[A-Za-z0-9_]+:[A-Za-z0-9_\-\.]+$"
} }
} }
@ -155,9 +155,10 @@ USER_FILTER_SCHEMA = {
"room": { "room": {
"$ref": "#/definitions/room_filter" "$ref": "#/definitions/room_filter"
}, },
# "event_format": { "event_format": {
# "type": { "enum": [ "client", "federation" ] } "type": "string",
# }, "enum": ["client", "federation"]
},
"event_fields": { "event_fields": {
"type": "array", "type": "array",
"items": { "items": {

View File

@ -35,6 +35,7 @@ def MockEvent(**kwargs):
kwargs["type"] = "fake_type" kwargs["type"] = "fake_type"
return FrozenEvent(kwargs) return FrozenEvent(kwargs)
class FilteringTestCase(unittest.TestCase): class FilteringTestCase(unittest.TestCase):
@defer.inlineCallbacks @defer.inlineCallbacks
@ -56,18 +57,61 @@ class FilteringTestCase(unittest.TestCase):
def test_errors_on_invalid_filters(self): def test_errors_on_invalid_filters(self):
invalid_filters = [ invalid_filters = [
{ "boom": {} }, {"boom": {}},
{ "account_data": "Hello World" }, {"account_data": "Hello World"},
{ "event_fields": ["\\foo"] }, {"event_fields": ["\\foo"]},
{ "room": { "timeline" : { "limit" : 0 }, "state": { "not_bars": ["*"]} } }, {"room": {"timeline": {"limit": 0}, "state": {"not_bars": ["*"]}}},
{"event_format": "other"}
] ]
for filter in invalid_filters: for filter in invalid_filters:
with self.assertRaises(SynapseError) as check_filter_error: with self.assertRaises(SynapseError) as check_filter_error:
self.filtering.check_valid_filter(filter) self.filtering.check_valid_filter(filter)
self.assertIsInstance(check_filter_error.exception, SynapseError) self.assertIsInstance(check_filter_error.exception, SynapseError)
def test_valid_filters(self):
valid_filters = [
{
"room": {
"timeline": {"limit": 20},
"state": {"not_types": ["m.room.member"]},
"ephemeral": {"limit": 0, "not_types": ["*"]},
"include_leave": False,
"rooms": ["#dee:pik-test"],
"not_rooms": ["#gee:pik-test"],
"account_data": {"limit": 0, "types": ["*"]}
}
},
{
"room": {
"state": {
"types": ["m.room.*"],
"not_rooms": ["!726s6s6q:example.com"]
},
"timeline": {
"limit": 10,
"types": ["m.room.message"],
"not_rooms": ["!726s6s6q:example.com"],
"not_senders": ["@spam:example.com"]
},
"ephemeral": {
"types": ["m.receipt", "m.typing"],
"not_rooms": ["!726s6s6q:example.com"],
"not_senders": ["@spam:example.com"]
}
},
"presence": {
"types": ["m.presence"],
"not_senders": ["@alice:example.com"]
},
"event_format": "client",
"event_fields": ["type", "content", "sender"]
}
]
for filter in valid_filters:
self.filtering.check_valid_filter(filter)
def test_limits_are_applied(self): def test_limits_are_applied(self):
#TODO # TODO
pass pass
def test_definition_types_works_with_literals(self): def test_definition_types_works_with_literals(self):