mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-08-03 11:06:03 -04:00
Run black.
This commit is contained in:
parent
b37c472419
commit
8b3d9b6b19
75 changed files with 1626 additions and 2277 deletions
|
@ -34,7 +34,6 @@ class TestHandlers(object):
|
|||
|
||||
|
||||
class AuthTestCase(unittest.TestCase):
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def setUp(self):
|
||||
self.state_handler = Mock()
|
||||
|
@ -53,11 +52,7 @@ class AuthTestCase(unittest.TestCase):
|
|||
|
||||
@defer.inlineCallbacks
|
||||
def test_get_user_by_req_user_valid_token(self):
|
||||
user_info = {
|
||||
"name": self.test_user,
|
||||
"token_id": "ditto",
|
||||
"device_id": "device",
|
||||
}
|
||||
user_info = {"name": self.test_user, "token_id": "ditto", "device_id": "device"}
|
||||
self.store.get_user_by_access_token = Mock(return_value=user_info)
|
||||
|
||||
request = Mock(args={})
|
||||
|
@ -76,10 +71,7 @@ class AuthTestCase(unittest.TestCase):
|
|||
self.failureResultOf(d, AuthError)
|
||||
|
||||
def test_get_user_by_req_user_missing_token(self):
|
||||
user_info = {
|
||||
"name": self.test_user,
|
||||
"token_id": "ditto",
|
||||
}
|
||||
user_info = {"name": self.test_user, "token_id": "ditto"}
|
||||
self.store.get_user_by_access_token = Mock(return_value=user_info)
|
||||
|
||||
request = Mock(args={})
|
||||
|
@ -90,8 +82,7 @@ class AuthTestCase(unittest.TestCase):
|
|||
@defer.inlineCallbacks
|
||||
def test_get_user_by_req_appservice_valid_token(self):
|
||||
app_service = Mock(
|
||||
token="foobar", url="a_url", sender=self.test_user,
|
||||
ip_range_whitelist=None,
|
||||
token="foobar", url="a_url", sender=self.test_user, ip_range_whitelist=None
|
||||
)
|
||||
self.store.get_app_service_by_token = Mock(return_value=app_service)
|
||||
self.store.get_user_by_access_token = Mock(return_value=None)
|
||||
|
@ -106,8 +97,11 @@ class AuthTestCase(unittest.TestCase):
|
|||
@defer.inlineCallbacks
|
||||
def test_get_user_by_req_appservice_valid_token_good_ip(self):
|
||||
from netaddr import IPSet
|
||||
|
||||
app_service = Mock(
|
||||
token="foobar", url="a_url", sender=self.test_user,
|
||||
token="foobar",
|
||||
url="a_url",
|
||||
sender=self.test_user,
|
||||
ip_range_whitelist=IPSet(["192.168/16"]),
|
||||
)
|
||||
self.store.get_app_service_by_token = Mock(return_value=app_service)
|
||||
|
@ -122,8 +116,11 @@ class AuthTestCase(unittest.TestCase):
|
|||
|
||||
def test_get_user_by_req_appservice_valid_token_bad_ip(self):
|
||||
from netaddr import IPSet
|
||||
|
||||
app_service = Mock(
|
||||
token="foobar", url="a_url", sender=self.test_user,
|
||||
token="foobar",
|
||||
url="a_url",
|
||||
sender=self.test_user,
|
||||
ip_range_whitelist=IPSet(["192.168/16"]),
|
||||
)
|
||||
self.store.get_app_service_by_token = Mock(return_value=app_service)
|
||||
|
@ -160,8 +157,7 @@ class AuthTestCase(unittest.TestCase):
|
|||
def test_get_user_by_req_appservice_valid_token_valid_user_id(self):
|
||||
masquerading_user_id = b"@doppelganger:matrix.org"
|
||||
app_service = Mock(
|
||||
token="foobar", url="a_url", sender=self.test_user,
|
||||
ip_range_whitelist=None,
|
||||
token="foobar", url="a_url", sender=self.test_user, ip_range_whitelist=None
|
||||
)
|
||||
app_service.is_interested_in_user = Mock(return_value=True)
|
||||
self.store.get_app_service_by_token = Mock(return_value=app_service)
|
||||
|
@ -174,15 +170,13 @@ class AuthTestCase(unittest.TestCase):
|
|||
request.requestHeaders.getRawHeaders = mock_getRawHeaders()
|
||||
requester = yield self.auth.get_user_by_req(request)
|
||||
self.assertEquals(
|
||||
requester.user.to_string(),
|
||||
masquerading_user_id.decode('utf8')
|
||||
requester.user.to_string(), masquerading_user_id.decode('utf8')
|
||||
)
|
||||
|
||||
def test_get_user_by_req_appservice_valid_token_bad_user_id(self):
|
||||
masquerading_user_id = b"@doppelganger:matrix.org"
|
||||
app_service = Mock(
|
||||
token="foobar", url="a_url", sender=self.test_user,
|
||||
ip_range_whitelist=None,
|
||||
token="foobar", url="a_url", sender=self.test_user, ip_range_whitelist=None
|
||||
)
|
||||
app_service.is_interested_in_user = Mock(return_value=False)
|
||||
self.store.get_app_service_by_token = Mock(return_value=app_service)
|
||||
|
@ -201,17 +195,15 @@ class AuthTestCase(unittest.TestCase):
|
|||
# TODO(danielwh): Remove this mock when we remove the
|
||||
# get_user_by_access_token fallback.
|
||||
self.store.get_user_by_access_token = Mock(
|
||||
return_value={
|
||||
"name": "@baldrick:matrix.org",
|
||||
"device_id": "device",
|
||||
}
|
||||
return_value={"name": "@baldrick:matrix.org", "device_id": "device"}
|
||||
)
|
||||
|
||||
user_id = "@baldrick:matrix.org"
|
||||
macaroon = pymacaroons.Macaroon(
|
||||
location=self.hs.config.server_name,
|
||||
identifier="key",
|
||||
key=self.hs.config.macaroon_secret_key)
|
||||
key=self.hs.config.macaroon_secret_key,
|
||||
)
|
||||
macaroon.add_first_party_caveat("gen = 1")
|
||||
macaroon.add_first_party_caveat("type = access")
|
||||
macaroon.add_first_party_caveat("user_id = %s" % (user_id,))
|
||||
|
@ -225,15 +217,14 @@ class AuthTestCase(unittest.TestCase):
|
|||
|
||||
@defer.inlineCallbacks
|
||||
def test_get_guest_user_from_macaroon(self):
|
||||
self.store.get_user_by_id = Mock(return_value={
|
||||
"is_guest": True,
|
||||
})
|
||||
self.store.get_user_by_id = Mock(return_value={"is_guest": True})
|
||||
|
||||
user_id = "@baldrick:matrix.org"
|
||||
macaroon = pymacaroons.Macaroon(
|
||||
location=self.hs.config.server_name,
|
||||
identifier="key",
|
||||
key=self.hs.config.macaroon_secret_key)
|
||||
key=self.hs.config.macaroon_secret_key,
|
||||
)
|
||||
macaroon.add_first_party_caveat("gen = 1")
|
||||
macaroon.add_first_party_caveat("type = access")
|
||||
macaroon.add_first_party_caveat("user_id = %s" % (user_id,))
|
||||
|
@ -257,7 +248,8 @@ class AuthTestCase(unittest.TestCase):
|
|||
macaroon = pymacaroons.Macaroon(
|
||||
location=self.hs.config.server_name,
|
||||
identifier="key",
|
||||
key=self.hs.config.macaroon_secret_key)
|
||||
key=self.hs.config.macaroon_secret_key,
|
||||
)
|
||||
macaroon.add_first_party_caveat("gen = 1")
|
||||
macaroon.add_first_party_caveat("type = access")
|
||||
macaroon.add_first_party_caveat("user_id = %s" % (user,))
|
||||
|
@ -277,7 +269,8 @@ class AuthTestCase(unittest.TestCase):
|
|||
macaroon = pymacaroons.Macaroon(
|
||||
location=self.hs.config.server_name,
|
||||
identifier="key",
|
||||
key=self.hs.config.macaroon_secret_key)
|
||||
key=self.hs.config.macaroon_secret_key,
|
||||
)
|
||||
macaroon.add_first_party_caveat("gen = 1")
|
||||
macaroon.add_first_party_caveat("type = access")
|
||||
|
||||
|
@ -298,7 +291,8 @@ class AuthTestCase(unittest.TestCase):
|
|||
macaroon = pymacaroons.Macaroon(
|
||||
location=self.hs.config.server_name,
|
||||
identifier="key",
|
||||
key=self.hs.config.macaroon_secret_key + "wrong")
|
||||
key=self.hs.config.macaroon_secret_key + "wrong",
|
||||
)
|
||||
macaroon.add_first_party_caveat("gen = 1")
|
||||
macaroon.add_first_party_caveat("type = access")
|
||||
macaroon.add_first_party_caveat("user_id = %s" % (user,))
|
||||
|
@ -320,7 +314,8 @@ class AuthTestCase(unittest.TestCase):
|
|||
macaroon = pymacaroons.Macaroon(
|
||||
location=self.hs.config.server_name,
|
||||
identifier="key",
|
||||
key=self.hs.config.macaroon_secret_key)
|
||||
key=self.hs.config.macaroon_secret_key,
|
||||
)
|
||||
macaroon.add_first_party_caveat("gen = 1")
|
||||
macaroon.add_first_party_caveat("type = access")
|
||||
macaroon.add_first_party_caveat("user_id = %s" % (user,))
|
||||
|
@ -347,7 +342,8 @@ class AuthTestCase(unittest.TestCase):
|
|||
macaroon = pymacaroons.Macaroon(
|
||||
location=self.hs.config.server_name,
|
||||
identifier="key",
|
||||
key=self.hs.config.macaroon_secret_key)
|
||||
key=self.hs.config.macaroon_secret_key,
|
||||
)
|
||||
macaroon.add_first_party_caveat("gen = 1")
|
||||
macaroon.add_first_party_caveat("type = access")
|
||||
macaroon.add_first_party_caveat("user_id = %s" % (user,))
|
||||
|
@ -380,7 +376,8 @@ class AuthTestCase(unittest.TestCase):
|
|||
macaroon = pymacaroons.Macaroon(
|
||||
location=self.hs.config.server_name,
|
||||
identifier="key",
|
||||
key=self.hs.config.macaroon_secret_key)
|
||||
key=self.hs.config.macaroon_secret_key,
|
||||
)
|
||||
macaroon.add_first_party_caveat("gen = 1")
|
||||
macaroon.add_first_party_caveat("type = access")
|
||||
macaroon.add_first_party_caveat("user_id = %s" % (user_id,))
|
||||
|
@ -401,9 +398,7 @@ class AuthTestCase(unittest.TestCase):
|
|||
token = yield self.hs.handlers.auth_handler.issue_access_token(
|
||||
USER_ID, "DEVICE"
|
||||
)
|
||||
self.store.add_access_token_to_user.assert_called_with(
|
||||
USER_ID, token, "DEVICE"
|
||||
)
|
||||
self.store.add_access_token_to_user.assert_called_with(USER_ID, token, "DEVICE")
|
||||
|
||||
def get_user(tok):
|
||||
if token != tok:
|
||||
|
@ -414,10 +409,9 @@ class AuthTestCase(unittest.TestCase):
|
|||
"token_id": 1234,
|
||||
"device_id": "DEVICE",
|
||||
}
|
||||
|
||||
self.store.get_user_by_access_token = get_user
|
||||
self.store.get_user_by_id = Mock(return_value={
|
||||
"is_guest": False,
|
||||
})
|
||||
self.store.get_user_by_id = Mock(return_value={"is_guest": False})
|
||||
|
||||
# check the token works
|
||||
request = Mock(args={})
|
||||
|
|
|
@ -38,7 +38,6 @@ def MockEvent(**kwargs):
|
|||
|
||||
|
||||
class FilteringTestCase(unittest.TestCase):
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def setUp(self):
|
||||
self.mock_federation_resource = MockHttpResource()
|
||||
|
@ -47,9 +46,7 @@ class FilteringTestCase(unittest.TestCase):
|
|||
self.mock_http_client.put_json = DeferredMockCallable()
|
||||
|
||||
hs = yield setup_test_homeserver(
|
||||
handlers=None,
|
||||
http_client=self.mock_http_client,
|
||||
keyring=Mock(),
|
||||
handlers=None, http_client=self.mock_http_client, keyring=Mock()
|
||||
)
|
||||
|
||||
self.filtering = hs.get_filtering()
|
||||
|
@ -64,7 +61,7 @@ class FilteringTestCase(unittest.TestCase):
|
|||
{"room": {"timeline": {"limit": 0}, "state": {"not_bars": ["*"]}}},
|
||||
{"event_format": "other"},
|
||||
{"room": {"not_rooms": ["#foo:pik-test"]}},
|
||||
{"presence": {"senders": ["@bar;pik.test.com"]}}
|
||||
{"presence": {"senders": ["@bar;pik.test.com"]}},
|
||||
]
|
||||
for filter in invalid_filters:
|
||||
with self.assertRaises(SynapseError) as check_filter_error:
|
||||
|
@ -81,34 +78,34 @@ class FilteringTestCase(unittest.TestCase):
|
|||
"include_leave": False,
|
||||
"rooms": ["!dee:pik-test"],
|
||||
"not_rooms": ["!gee:pik-test"],
|
||||
"account_data": {"limit": 0, "types": ["*"]}
|
||||
"account_data": {"limit": 0, "types": ["*"]},
|
||||
}
|
||||
},
|
||||
{
|
||||
"room": {
|
||||
"state": {
|
||||
"types": ["m.room.*"],
|
||||
"not_rooms": ["!726s6s6q:example.com"]
|
||||
"not_rooms": ["!726s6s6q:example.com"],
|
||||
},
|
||||
"timeline": {
|
||||
"limit": 10,
|
||||
"types": ["m.room.message"],
|
||||
"not_rooms": ["!726s6s6q:example.com"],
|
||||
"not_senders": ["@spam:example.com"]
|
||||
"not_senders": ["@spam:example.com"],
|
||||
},
|
||||
"ephemeral": {
|
||||
"types": ["m.receipt", "m.typing"],
|
||||
"not_rooms": ["!726s6s6q:example.com"],
|
||||
"not_senders": ["@spam:example.com"]
|
||||
}
|
||||
"not_senders": ["@spam:example.com"],
|
||||
},
|
||||
},
|
||||
"presence": {
|
||||
"types": ["m.presence"],
|
||||
"not_senders": ["@alice:example.com"]
|
||||
"not_senders": ["@alice:example.com"],
|
||||
},
|
||||
"event_format": "client",
|
||||
"event_fields": ["type", "content", "sender"]
|
||||
}
|
||||
"event_fields": ["type", "content", "sender"],
|
||||
},
|
||||
]
|
||||
for filter in valid_filters:
|
||||
try:
|
||||
|
@ -121,229 +118,131 @@ class FilteringTestCase(unittest.TestCase):
|
|||
pass
|
||||
|
||||
def test_definition_types_works_with_literals(self):
|
||||
definition = {
|
||||
"types": ["m.room.message", "org.matrix.foo.bar"]
|
||||
}
|
||||
event = MockEvent(
|
||||
sender="@foo:bar",
|
||||
type="m.room.message",
|
||||
room_id="!foo:bar"
|
||||
)
|
||||
definition = {"types": ["m.room.message", "org.matrix.foo.bar"]}
|
||||
event = MockEvent(sender="@foo:bar", type="m.room.message", room_id="!foo:bar")
|
||||
|
||||
self.assertTrue(
|
||||
Filter(definition).check(event)
|
||||
)
|
||||
self.assertTrue(Filter(definition).check(event))
|
||||
|
||||
def test_definition_types_works_with_wildcards(self):
|
||||
definition = {
|
||||
"types": ["m.*", "org.matrix.foo.bar"]
|
||||
}
|
||||
event = MockEvent(
|
||||
sender="@foo:bar",
|
||||
type="m.room.message",
|
||||
room_id="!foo:bar"
|
||||
)
|
||||
self.assertTrue(
|
||||
Filter(definition).check(event)
|
||||
)
|
||||
definition = {"types": ["m.*", "org.matrix.foo.bar"]}
|
||||
event = MockEvent(sender="@foo:bar", type="m.room.message", room_id="!foo:bar")
|
||||
self.assertTrue(Filter(definition).check(event))
|
||||
|
||||
def test_definition_types_works_with_unknowns(self):
|
||||
definition = {
|
||||
"types": ["m.room.message", "org.matrix.foo.bar"]
|
||||
}
|
||||
definition = {"types": ["m.room.message", "org.matrix.foo.bar"]}
|
||||
event = MockEvent(
|
||||
sender="@foo:bar",
|
||||
type="now.for.something.completely.different",
|
||||
room_id="!foo:bar"
|
||||
)
|
||||
self.assertFalse(
|
||||
Filter(definition).check(event)
|
||||
room_id="!foo:bar",
|
||||
)
|
||||
self.assertFalse(Filter(definition).check(event))
|
||||
|
||||
def test_definition_not_types_works_with_literals(self):
|
||||
definition = {
|
||||
"not_types": ["m.room.message", "org.matrix.foo.bar"]
|
||||
}
|
||||
event = MockEvent(
|
||||
sender="@foo:bar",
|
||||
type="m.room.message",
|
||||
room_id="!foo:bar"
|
||||
)
|
||||
self.assertFalse(
|
||||
Filter(definition).check(event)
|
||||
)
|
||||
definition = {"not_types": ["m.room.message", "org.matrix.foo.bar"]}
|
||||
event = MockEvent(sender="@foo:bar", type="m.room.message", room_id="!foo:bar")
|
||||
self.assertFalse(Filter(definition).check(event))
|
||||
|
||||
def test_definition_not_types_works_with_wildcards(self):
|
||||
definition = {
|
||||
"not_types": ["m.room.message", "org.matrix.*"]
|
||||
}
|
||||
definition = {"not_types": ["m.room.message", "org.matrix.*"]}
|
||||
event = MockEvent(
|
||||
sender="@foo:bar",
|
||||
type="org.matrix.custom.event",
|
||||
room_id="!foo:bar"
|
||||
)
|
||||
self.assertFalse(
|
||||
Filter(definition).check(event)
|
||||
sender="@foo:bar", type="org.matrix.custom.event", room_id="!foo:bar"
|
||||
)
|
||||
self.assertFalse(Filter(definition).check(event))
|
||||
|
||||
def test_definition_not_types_works_with_unknowns(self):
|
||||
definition = {
|
||||
"not_types": ["m.*", "org.*"]
|
||||
}
|
||||
event = MockEvent(
|
||||
sender="@foo:bar",
|
||||
type="com.nom.nom.nom",
|
||||
room_id="!foo:bar"
|
||||
)
|
||||
self.assertTrue(
|
||||
Filter(definition).check(event)
|
||||
)
|
||||
definition = {"not_types": ["m.*", "org.*"]}
|
||||
event = MockEvent(sender="@foo:bar", type="com.nom.nom.nom", room_id="!foo:bar")
|
||||
self.assertTrue(Filter(definition).check(event))
|
||||
|
||||
def test_definition_not_types_takes_priority_over_types(self):
|
||||
definition = {
|
||||
"not_types": ["m.*", "org.*"],
|
||||
"types": ["m.room.message", "m.room.topic"]
|
||||
"types": ["m.room.message", "m.room.topic"],
|
||||
}
|
||||
event = MockEvent(
|
||||
sender="@foo:bar",
|
||||
type="m.room.topic",
|
||||
room_id="!foo:bar"
|
||||
)
|
||||
self.assertFalse(
|
||||
Filter(definition).check(event)
|
||||
)
|
||||
event = MockEvent(sender="@foo:bar", type="m.room.topic", room_id="!foo:bar")
|
||||
self.assertFalse(Filter(definition).check(event))
|
||||
|
||||
def test_definition_senders_works_with_literals(self):
|
||||
definition = {
|
||||
"senders": ["@flibble:wibble"]
|
||||
}
|
||||
definition = {"senders": ["@flibble:wibble"]}
|
||||
event = MockEvent(
|
||||
sender="@flibble:wibble",
|
||||
type="com.nom.nom.nom",
|
||||
room_id="!foo:bar"
|
||||
)
|
||||
self.assertTrue(
|
||||
Filter(definition).check(event)
|
||||
sender="@flibble:wibble", type="com.nom.nom.nom", room_id="!foo:bar"
|
||||
)
|
||||
self.assertTrue(Filter(definition).check(event))
|
||||
|
||||
def test_definition_senders_works_with_unknowns(self):
|
||||
definition = {
|
||||
"senders": ["@flibble:wibble"]
|
||||
}
|
||||
definition = {"senders": ["@flibble:wibble"]}
|
||||
event = MockEvent(
|
||||
sender="@challenger:appears",
|
||||
type="com.nom.nom.nom",
|
||||
room_id="!foo:bar"
|
||||
)
|
||||
self.assertFalse(
|
||||
Filter(definition).check(event)
|
||||
sender="@challenger:appears", type="com.nom.nom.nom", room_id="!foo:bar"
|
||||
)
|
||||
self.assertFalse(Filter(definition).check(event))
|
||||
|
||||
def test_definition_not_senders_works_with_literals(self):
|
||||
definition = {
|
||||
"not_senders": ["@flibble:wibble"]
|
||||
}
|
||||
definition = {"not_senders": ["@flibble:wibble"]}
|
||||
event = MockEvent(
|
||||
sender="@flibble:wibble",
|
||||
type="com.nom.nom.nom",
|
||||
room_id="!foo:bar"
|
||||
)
|
||||
self.assertFalse(
|
||||
Filter(definition).check(event)
|
||||
sender="@flibble:wibble", type="com.nom.nom.nom", room_id="!foo:bar"
|
||||
)
|
||||
self.assertFalse(Filter(definition).check(event))
|
||||
|
||||
def test_definition_not_senders_works_with_unknowns(self):
|
||||
definition = {
|
||||
"not_senders": ["@flibble:wibble"]
|
||||
}
|
||||
definition = {"not_senders": ["@flibble:wibble"]}
|
||||
event = MockEvent(
|
||||
sender="@challenger:appears",
|
||||
type="com.nom.nom.nom",
|
||||
room_id="!foo:bar"
|
||||
)
|
||||
self.assertTrue(
|
||||
Filter(definition).check(event)
|
||||
sender="@challenger:appears", type="com.nom.nom.nom", room_id="!foo:bar"
|
||||
)
|
||||
self.assertTrue(Filter(definition).check(event))
|
||||
|
||||
def test_definition_not_senders_takes_priority_over_senders(self):
|
||||
definition = {
|
||||
"not_senders": ["@misspiggy:muppets"],
|
||||
"senders": ["@kermit:muppets", "@misspiggy:muppets"]
|
||||
"senders": ["@kermit:muppets", "@misspiggy:muppets"],
|
||||
}
|
||||
event = MockEvent(
|
||||
sender="@misspiggy:muppets",
|
||||
type="m.room.topic",
|
||||
room_id="!foo:bar"
|
||||
)
|
||||
self.assertFalse(
|
||||
Filter(definition).check(event)
|
||||
sender="@misspiggy:muppets", type="m.room.topic", room_id="!foo:bar"
|
||||
)
|
||||
self.assertFalse(Filter(definition).check(event))
|
||||
|
||||
def test_definition_rooms_works_with_literals(self):
|
||||
definition = {
|
||||
"rooms": ["!secretbase:unknown"]
|
||||
}
|
||||
definition = {"rooms": ["!secretbase:unknown"]}
|
||||
event = MockEvent(
|
||||
sender="@foo:bar",
|
||||
type="m.room.message",
|
||||
room_id="!secretbase:unknown"
|
||||
)
|
||||
self.assertTrue(
|
||||
Filter(definition).check(event)
|
||||
sender="@foo:bar", type="m.room.message", room_id="!secretbase:unknown"
|
||||
)
|
||||
self.assertTrue(Filter(definition).check(event))
|
||||
|
||||
def test_definition_rooms_works_with_unknowns(self):
|
||||
definition = {
|
||||
"rooms": ["!secretbase:unknown"]
|
||||
}
|
||||
definition = {"rooms": ["!secretbase:unknown"]}
|
||||
event = MockEvent(
|
||||
sender="@foo:bar",
|
||||
type="m.room.message",
|
||||
room_id="!anothersecretbase:unknown"
|
||||
)
|
||||
self.assertFalse(
|
||||
Filter(definition).check(event)
|
||||
room_id="!anothersecretbase:unknown",
|
||||
)
|
||||
self.assertFalse(Filter(definition).check(event))
|
||||
|
||||
def test_definition_not_rooms_works_with_literals(self):
|
||||
definition = {
|
||||
"not_rooms": ["!anothersecretbase:unknown"]
|
||||
}
|
||||
definition = {"not_rooms": ["!anothersecretbase:unknown"]}
|
||||
event = MockEvent(
|
||||
sender="@foo:bar",
|
||||
type="m.room.message",
|
||||
room_id="!anothersecretbase:unknown"
|
||||
)
|
||||
self.assertFalse(
|
||||
Filter(definition).check(event)
|
||||
room_id="!anothersecretbase:unknown",
|
||||
)
|
||||
self.assertFalse(Filter(definition).check(event))
|
||||
|
||||
def test_definition_not_rooms_works_with_unknowns(self):
|
||||
definition = {
|
||||
"not_rooms": ["!secretbase:unknown"]
|
||||
}
|
||||
definition = {"not_rooms": ["!secretbase:unknown"]}
|
||||
event = MockEvent(
|
||||
sender="@foo:bar",
|
||||
type="m.room.message",
|
||||
room_id="!anothersecretbase:unknown"
|
||||
)
|
||||
self.assertTrue(
|
||||
Filter(definition).check(event)
|
||||
room_id="!anothersecretbase:unknown",
|
||||
)
|
||||
self.assertTrue(Filter(definition).check(event))
|
||||
|
||||
def test_definition_not_rooms_takes_priority_over_rooms(self):
|
||||
definition = {
|
||||
"not_rooms": ["!secretbase:unknown"],
|
||||
"rooms": ["!secretbase:unknown"]
|
||||
"rooms": ["!secretbase:unknown"],
|
||||
}
|
||||
event = MockEvent(
|
||||
sender="@foo:bar",
|
||||
type="m.room.message",
|
||||
room_id="!secretbase:unknown"
|
||||
)
|
||||
self.assertFalse(
|
||||
Filter(definition).check(event)
|
||||
sender="@foo:bar", type="m.room.message", room_id="!secretbase:unknown"
|
||||
)
|
||||
self.assertFalse(Filter(definition).check(event))
|
||||
|
||||
def test_definition_combined_event(self):
|
||||
definition = {
|
||||
|
@ -352,16 +251,14 @@ class FilteringTestCase(unittest.TestCase):
|
|||
"rooms": ["!stage:unknown"],
|
||||
"not_rooms": ["!piggyshouse:muppets"],
|
||||
"types": ["m.room.message", "muppets.kermit.*"],
|
||||
"not_types": ["muppets.misspiggy.*"]
|
||||
"not_types": ["muppets.misspiggy.*"],
|
||||
}
|
||||
event = MockEvent(
|
||||
sender="@kermit:muppets", # yup
|
||||
type="m.room.message", # yup
|
||||
room_id="!stage:unknown" # yup
|
||||
)
|
||||
self.assertTrue(
|
||||
Filter(definition).check(event)
|
||||
room_id="!stage:unknown", # yup
|
||||
)
|
||||
self.assertTrue(Filter(definition).check(event))
|
||||
|
||||
def test_definition_combined_event_bad_sender(self):
|
||||
definition = {
|
||||
|
@ -370,16 +267,14 @@ class FilteringTestCase(unittest.TestCase):
|
|||
"rooms": ["!stage:unknown"],
|
||||
"not_rooms": ["!piggyshouse:muppets"],
|
||||
"types": ["m.room.message", "muppets.kermit.*"],
|
||||
"not_types": ["muppets.misspiggy.*"]
|
||||
"not_types": ["muppets.misspiggy.*"],
|
||||
}
|
||||
event = MockEvent(
|
||||
sender="@misspiggy:muppets", # nope
|
||||
type="m.room.message", # yup
|
||||
room_id="!stage:unknown" # yup
|
||||
)
|
||||
self.assertFalse(
|
||||
Filter(definition).check(event)
|
||||
room_id="!stage:unknown", # yup
|
||||
)
|
||||
self.assertFalse(Filter(definition).check(event))
|
||||
|
||||
def test_definition_combined_event_bad_room(self):
|
||||
definition = {
|
||||
|
@ -388,16 +283,14 @@ class FilteringTestCase(unittest.TestCase):
|
|||
"rooms": ["!stage:unknown"],
|
||||
"not_rooms": ["!piggyshouse:muppets"],
|
||||
"types": ["m.room.message", "muppets.kermit.*"],
|
||||
"not_types": ["muppets.misspiggy.*"]
|
||||
"not_types": ["muppets.misspiggy.*"],
|
||||
}
|
||||
event = MockEvent(
|
||||
sender="@kermit:muppets", # yup
|
||||
type="m.room.message", # yup
|
||||
room_id="!piggyshouse:muppets" # nope
|
||||
)
|
||||
self.assertFalse(
|
||||
Filter(definition).check(event)
|
||||
room_id="!piggyshouse:muppets", # nope
|
||||
)
|
||||
self.assertFalse(Filter(definition).check(event))
|
||||
|
||||
def test_definition_combined_event_bad_type(self):
|
||||
definition = {
|
||||
|
@ -406,37 +299,26 @@ class FilteringTestCase(unittest.TestCase):
|
|||
"rooms": ["!stage:unknown"],
|
||||
"not_rooms": ["!piggyshouse:muppets"],
|
||||
"types": ["m.room.message", "muppets.kermit.*"],
|
||||
"not_types": ["muppets.misspiggy.*"]
|
||||
"not_types": ["muppets.misspiggy.*"],
|
||||
}
|
||||
event = MockEvent(
|
||||
sender="@kermit:muppets", # yup
|
||||
type="muppets.misspiggy.kisses", # nope
|
||||
room_id="!stage:unknown" # yup
|
||||
)
|
||||
self.assertFalse(
|
||||
Filter(definition).check(event)
|
||||
room_id="!stage:unknown", # yup
|
||||
)
|
||||
self.assertFalse(Filter(definition).check(event))
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def test_filter_presence_match(self):
|
||||
user_filter_json = {
|
||||
"presence": {
|
||||
"types": ["m.*"]
|
||||
}
|
||||
}
|
||||
user_filter_json = {"presence": {"types": ["m.*"]}}
|
||||
filter_id = yield self.datastore.add_user_filter(
|
||||
user_localpart=user_localpart,
|
||||
user_filter=user_filter_json,
|
||||
)
|
||||
event = MockEvent(
|
||||
sender="@foo:bar",
|
||||
type="m.profile",
|
||||
user_localpart=user_localpart, user_filter=user_filter_json
|
||||
)
|
||||
event = MockEvent(sender="@foo:bar", type="m.profile")
|
||||
events = [event]
|
||||
|
||||
user_filter = yield self.filtering.get_user_filter(
|
||||
user_localpart=user_localpart,
|
||||
filter_id=filter_id,
|
||||
user_localpart=user_localpart, filter_id=filter_id
|
||||
)
|
||||
|
||||
results = user_filter.filter_presence(events=events)
|
||||
|
@ -444,15 +326,10 @@ class FilteringTestCase(unittest.TestCase):
|
|||
|
||||
@defer.inlineCallbacks
|
||||
def test_filter_presence_no_match(self):
|
||||
user_filter_json = {
|
||||
"presence": {
|
||||
"types": ["m.*"]
|
||||
}
|
||||
}
|
||||
user_filter_json = {"presence": {"types": ["m.*"]}}
|
||||
|
||||
filter_id = yield self.datastore.add_user_filter(
|
||||
user_localpart=user_localpart + "2",
|
||||
user_filter=user_filter_json,
|
||||
user_localpart=user_localpart + "2", user_filter=user_filter_json
|
||||
)
|
||||
event = MockEvent(
|
||||
event_id="$asdasd:localhost",
|
||||
|
@ -462,8 +339,7 @@ class FilteringTestCase(unittest.TestCase):
|
|||
events = [event]
|
||||
|
||||
user_filter = yield self.filtering.get_user_filter(
|
||||
user_localpart=user_localpart + "2",
|
||||
filter_id=filter_id,
|
||||
user_localpart=user_localpart + "2", filter_id=filter_id
|
||||
)
|
||||
|
||||
results = user_filter.filter_presence(events=events)
|
||||
|
@ -471,27 +347,15 @@ class FilteringTestCase(unittest.TestCase):
|
|||
|
||||
@defer.inlineCallbacks
|
||||
def test_filter_room_state_match(self):
|
||||
user_filter_json = {
|
||||
"room": {
|
||||
"state": {
|
||||
"types": ["m.*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
user_filter_json = {"room": {"state": {"types": ["m.*"]}}}
|
||||
filter_id = yield self.datastore.add_user_filter(
|
||||
user_localpart=user_localpart,
|
||||
user_filter=user_filter_json,
|
||||
)
|
||||
event = MockEvent(
|
||||
sender="@foo:bar",
|
||||
type="m.room.topic",
|
||||
room_id="!foo:bar"
|
||||
user_localpart=user_localpart, user_filter=user_filter_json
|
||||
)
|
||||
event = MockEvent(sender="@foo:bar", type="m.room.topic", room_id="!foo:bar")
|
||||
events = [event]
|
||||
|
||||
user_filter = yield self.filtering.get_user_filter(
|
||||
user_localpart=user_localpart,
|
||||
filter_id=filter_id,
|
||||
user_localpart=user_localpart, filter_id=filter_id
|
||||
)
|
||||
|
||||
results = user_filter.filter_room_state(events=events)
|
||||
|
@ -499,27 +363,17 @@ class FilteringTestCase(unittest.TestCase):
|
|||
|
||||
@defer.inlineCallbacks
|
||||
def test_filter_room_state_no_match(self):
|
||||
user_filter_json = {
|
||||
"room": {
|
||||
"state": {
|
||||
"types": ["m.*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
user_filter_json = {"room": {"state": {"types": ["m.*"]}}}
|
||||
filter_id = yield self.datastore.add_user_filter(
|
||||
user_localpart=user_localpart,
|
||||
user_filter=user_filter_json,
|
||||
user_localpart=user_localpart, user_filter=user_filter_json
|
||||
)
|
||||
event = MockEvent(
|
||||
sender="@foo:bar",
|
||||
type="org.matrix.custom.event",
|
||||
room_id="!foo:bar"
|
||||
sender="@foo:bar", type="org.matrix.custom.event", room_id="!foo:bar"
|
||||
)
|
||||
events = [event]
|
||||
|
||||
user_filter = yield self.filtering.get_user_filter(
|
||||
user_localpart=user_localpart,
|
||||
filter_id=filter_id,
|
||||
user_localpart=user_localpart, filter_id=filter_id
|
||||
)
|
||||
|
||||
results = user_filter.filter_room_state(events)
|
||||
|
@ -543,45 +397,32 @@ class FilteringTestCase(unittest.TestCase):
|
|||
|
||||
@defer.inlineCallbacks
|
||||
def test_add_filter(self):
|
||||
user_filter_json = {
|
||||
"room": {
|
||||
"state": {
|
||||
"types": ["m.*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
user_filter_json = {"room": {"state": {"types": ["m.*"]}}}
|
||||
|
||||
filter_id = yield self.filtering.add_user_filter(
|
||||
user_localpart=user_localpart,
|
||||
user_filter=user_filter_json,
|
||||
user_localpart=user_localpart, user_filter=user_filter_json
|
||||
)
|
||||
|
||||
self.assertEquals(filter_id, 0)
|
||||
self.assertEquals(user_filter_json, (
|
||||
yield self.datastore.get_user_filter(
|
||||
user_localpart=user_localpart,
|
||||
filter_id=0,
|
||||
)
|
||||
))
|
||||
self.assertEquals(
|
||||
user_filter_json,
|
||||
(
|
||||
yield self.datastore.get_user_filter(
|
||||
user_localpart=user_localpart, filter_id=0
|
||||
)
|
||||
),
|
||||
)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def test_get_filter(self):
|
||||
user_filter_json = {
|
||||
"room": {
|
||||
"state": {
|
||||
"types": ["m.*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
user_filter_json = {"room": {"state": {"types": ["m.*"]}}}
|
||||
|
||||
filter_id = yield self.datastore.add_user_filter(
|
||||
user_localpart=user_localpart,
|
||||
user_filter=user_filter_json,
|
||||
user_localpart=user_localpart, user_filter=user_filter_json
|
||||
)
|
||||
|
||||
filter = yield self.filtering.get_user_filter(
|
||||
user_localpart=user_localpart,
|
||||
filter_id=filter_id,
|
||||
user_localpart=user_localpart, filter_id=filter_id
|
||||
)
|
||||
|
||||
self.assertEquals(filter.get_filter_json(), user_filter_json)
|
||||
|
|
|
@ -4,17 +4,16 @@ from tests import unittest
|
|||
|
||||
|
||||
class TestRatelimiter(unittest.TestCase):
|
||||
|
||||
def test_allowed(self):
|
||||
limiter = Ratelimiter()
|
||||
allowed, time_allowed = limiter.send_message(
|
||||
user_id="test_id", time_now_s=0, msg_rate_hz=0.1, burst_count=1,
|
||||
user_id="test_id", time_now_s=0, msg_rate_hz=0.1, burst_count=1
|
||||
)
|
||||
self.assertTrue(allowed)
|
||||
self.assertEquals(10., time_allowed)
|
||||
|
||||
allowed, time_allowed = limiter.send_message(
|
||||
user_id="test_id", time_now_s=5, msg_rate_hz=0.1, burst_count=1,
|
||||
user_id="test_id", time_now_s=5, msg_rate_hz=0.1, burst_count=1
|
||||
)
|
||||
self.assertFalse(allowed)
|
||||
self.assertEquals(10., time_allowed)
|
||||
|
@ -28,7 +27,7 @@ class TestRatelimiter(unittest.TestCase):
|
|||
def test_pruning(self):
|
||||
limiter = Ratelimiter()
|
||||
allowed, time_allowed = limiter.send_message(
|
||||
user_id="test_id_1", time_now_s=0, msg_rate_hz=0.1, burst_count=1,
|
||||
user_id="test_id_1", time_now_s=0, msg_rate_hz=0.1, burst_count=1
|
||||
)
|
||||
|
||||
self.assertIn("test_id_1", limiter.message_counts)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue