summary refs log tree commit diff
path: root/tests/federation (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request from GHSA-x345-32rc-8h85Richard van der Hoff2021-05-111-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tests for push rule pattern matching * tests for acl pattern matching * factor out common `re.escape` * Factor out common re.compile * Factor out common anchoring code * add word_boundary support to `glob_to_regex` * Use `glob_to_regex` in push rule evaluator NB that this drops support for character classes. I don't think anyone ever used them. * Improve efficiency of globs with multiple wildcards The idea here is that we compress multiple `*` globs into a single `.*`. We also need to consider `?`, since `*?*` is as hard to implement efficiently as `**`. * add assertion on regex pattern * Fix mypy * Simplify glob_to_regex * Inline the glob_to_regex helper function Signed-off-by: Dan Callahan <danc@element.io> * Moar comments Signed-off-by: Dan Callahan <danc@element.io> Co-authored-by: Dan Callahan <danc@element.io>
* Remove redundant "coding: utf-8" lines (#9786)Jonathan de Jong2021-04-144-4/+0
| | | | | | | Part of #9744 Removes all redundant `# -*- coding: utf-8 -*-` lines from files, as python 3 automatically reads source code as utf-8 now. `Signed-off-by: Jonathan de Jong <jonathan@automatia.nl>`
* Use mock from the stdlib. (#9772)Patrick Cloke2021-04-093-5/+3
|
* Make federation catchup send last event from any server. (#9640)Erik Johnston2021-03-181-0/+49
| | | | | | | | | | | | | | Currently federation catchup will send the last *local* event that we failed to send to the remote. This can cause issues for large rooms where lots of servers have sent events while the remote server was down, as when it comes back up again it'll be flooded with events from various points in the DAG. Instead, let's make it so that all the servers send the most recent events, even if its not theirs. The remote should deduplicate the events, so there shouldn't be much overhead in doing this. Alternatively, the servers could only send local events if they were also extremities and hope that the other server will send the event over, but that is a bit risky.
* Don't go into federation catch up mode so easily (#9561)Erik Johnston2021-03-151-1/+2
| | | | | | | | | | Federation catch up mode is very inefficient if the number of events that the remote server has missed is small, since handling gaps can be very expensive, c.f. #9492. Instead of going into catch up mode whenever we see an error, we instead do so only if we've backed off from trying the remote for more than an hour (the assumption being that in such a case it is more than a transient failure).
* Update black, and run auto formatting over the codebase (#9381)Eric Eastwood2021-02-162-7/+12
| | | | | | | - Update black version to the latest - Run black auto formatting over the codebase - Run autoformatting according to [`docs/code_style.md `](https://github.com/matrix-org/synapse/blob/80d6dc9783aa80886a133756028984dbf8920168/docs/code_style.md) - Update `code_style.md` docs around installing black to use the correct version
* Fix RoomDirectoryFederationTests and make them actually run (#8998)Andrew Morgan2020-12-302-21/+18
| | | | | | | | | | The `RoomDirectoryFederationTests` tests were not being run unless explicitly called as an `__init__.py` file was not present in `tests/federation/transport/`. Thus the folder was not a python module, and `trial` did not look inside for any test cases to run. This was found while working on #6739. This PR adds a `__init__.py` and also fixes the test in a couple ways: - Switch to subclassing `unittest.FederatingHomeserverTestCase` instead, which sets up federation endpoints for us. - Supply a `federation_auth_origin` to `make_request` in order to more act like the request is coming from another server, instead of just an unauthenicated client requesting a federation endpoint. I found that the second point makes no difference to the test passing, but felt like the right thing to do if we're testing over federation.
* Remove spurious "SynapseRequest" result from `make_request"Richard van der Hoff2020-12-153-11/+7
| | | | This was never used, so let's get rid of it.
* Remove redundant `HomeserverTestCase.render`Richard van der Hoff2020-11-163-7/+0
|
* Catch-up after Federation Outage (bonus): Catch-up on Synapse Startup (#8322)reivilibre2020-09-181-0/+99
| | | | | | | | | | Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net> Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com> * Fix _set_destination_retry_timings This came about because the code assumed that retry_interval could not be NULL — which has been challenged by catch-up.
* Catch-up after Federation Outage (split, 4): catch-up loop (#8272)reivilibre2020-09-151-0/+165
|
* Merge tag 'v1.20.0rc3' into developPatrick Cloke2020-09-111-0/+33
|\ | | | | | | | | | | | | | | | | | | Synapse 1.20.0rc3 (2020-09-11) ============================== Bugfixes -------- - Fix a bug introduced in v1.20.0rc1 where the wrong exception was raised when invalid JSON data is encountered. ([\#8291](https://github.com/matrix-org/synapse/issues/8291))
| * Fix the exception that is raised when invalid JSON is encountered. (#8291)Patrick Cloke2020-09-101-0/+33
| |
* | Allow for make_awaitable's return value to be re-used. (#8261)Patrick Cloke2020-09-082-21/+11
| |
* | Add tests for `last_successful_stream_ordering` (#8258)reivilibre2020-09-071-0/+76
| |
* | Catch-up after Federation Outage (split, 1) (#8230)reivilibre2020-09-041-0/+82
|/ | | Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net>
* Stop sub-classing object (#8249)Patrick Cloke2020-09-041-1/+1
|
* Do not yield on awaitables in tests. (#8193)Patrick Cloke2020-08-271-4/+2
|
* Fix unawaited coroutine error in tests. (#8072)Patrick Cloke2020-08-131-10/+20
|
* Convert federation client to async/await. (#7975)Patrick Cloke2020-07-302-15/+16
|
* Option to allow server admins to join complex rooms (#7902)lugino-emeritus2020-07-281-0/+109
| | | | | Fixes #7901. Signed-off-by: Niklas Tittjung <nik_t.01@web.de>
* Convert state resolution to async/await (#7942)Patrick Cloke2020-07-241-12/+7
|
* Add option to enable encryption by default for new rooms (#7639)Andrew Morgan2020-06-101-1/+5
| | | | | | | | | Fixes https://github.com/matrix-org/synapse/issues/2431 Adds config option `encryption_enabled_by_default_for_room_type`, which determines whether encryption should be enabled with the default encryption algorithm in private or public rooms upon creation. Whether the room is private or public is decided based upon the room creation preset that is used. Part of this PR is also pulling out all of the individual instances of `m.megolm.v1.aes-sha2` into a constant variable to eliminate typos ala https://github.com/matrix-org/synapse/pull/7637 Based on #7637
* Fix encryption algorithm typos in tests/comments (#7637)Andrew Morgan2020-06-041-1/+1
| | | | | | | | @uhoreg has confirmed these were both typos. They are only in comments and tests though, rather than anything critical. Introduced in: * https://github.com/matrix-org/synapse/pull/7157 * https://github.com/matrix-org/synapse/pull/5726
* Add ability to wait for replication streams (#7542)Erik Johnston2020-05-221-2/+6
| | | | | | | The idea here is that if an instance persists an event via the replication HTTP API it can return before we receive that event over replication, which can lead to races where code assumes that persisting an event immediately updates various caches (e.g. current state of the room). Most of Synapse doesn't hit such races, so we don't do the waiting automagically, instead we do so where necessary to avoid unnecessary delays. We may decide to change our minds here if it turns out there are a lot of subtle races going on. People probably want to look at this commit by commit.
* Fix device list update stream ids going backward (#7158)Richard van der Hoff2020-04-031-0/+6
| | | | | | | | | | | | | | | | Occasionally we could get a federation device list update transaction which looked like: ``` [ {'edu_type': 'm.device_list_update', 'content': {'user_id': '@user:test', 'device_id': 'D2', 'prev_id': [], 'stream_id': 12, 'deleted': True}}, {'edu_type': 'm.device_list_update', 'content': {'user_id': '@user:test', 'device_id': 'D1', 'prev_id': [12], 'stream_id': 11, 'deleted': True}}, {'edu_type': 'm.device_list_update', 'content': {'user_id': '@user:test', 'device_id': 'D3', 'prev_id': [11], 'stream_id': 13, 'deleted': True}} ] ``` Having `stream_ids` which are lower than `prev_ids` looks odd. It might work (I'm not actually sure), but in any case it doesn't seem like a reasonable thing to expect other implementations to support.
* Rewrite prune_old_outbound_device_pokes for efficiency (#7159)Richard van der Hoff2020-03-301-0/+92
| | | | make sure we clear out all but one update for the user
* Add tests for outbound device pokesRichard van der Hoff2020-03-271-3/+300
|
* Remove spurious "name" parameter to `default_config`Richard van der Hoff2020-03-241-2/+2
| | | | | this is never set to anything other than "test", and is a source of unnecessary boilerplate.
* Clarify list/set/dict/tuple comprehensions and enforce via flake8 (#6957)Patrick Cloke2020-02-211-1/+1
| | | | Ensure good comprehension hygiene using flake8-comprehensions.
* Add a `make_event_from_dict` method (#6858)Richard van der Hoff2020-02-071-2/+2
| | | | | | | ... and use it in places where it's trivial to do so. This will make it easier to pass room versions into the FrozenEvent constructors.
* privacy by default for room dir (#6355)Neil Johnson2019-12-041-0/+52
| | | | Ensure that the the default settings for the room directory are that the it is hidden from public view by default.
* Implementation of MSC2314 (#6176)Amber Brown2019-11-283-26/+69
|
* Remove test debugsErik Johnston2019-08-201-1/+0
|
* Room Complexity Client Implementation (#5783)Amber Brown2019-07-301-3/+74
|
* Run Black. (#5482)Amber Brown2019-06-202-25/+25
|
* Implement the SHHS complexity API (#5216)Amber Brown2019-05-301-0/+90
|
* Run Black on the tests again (#5170)Amber Brown2019-05-101-47/+66
|
* Batch up outgoing read-receipts to reduce federation traffic. (#4890)Richard van der Hoff2019-03-201-0/+128
| | | | Rate-limit outgoing read-receipts as per #4730.
* Run black.black2018-08-101-15/+11
|
* run isortAmber Brown2018-07-091-0/+1
|
* Implementation of server_aclsRichard van der Hoff2018-07-042-0/+57
| | | | | ... as described at https://docs.google.com/document/d/1EttUVzjc2DWe2ciw4XPtNpUpIl9lWXGEsy2ewDS7rtw.
* Remove redundated BaseHomeServerErik Johnston2016-01-262-303/+0
|
* copyrightsMatthew Hodgson2016-01-071-1/+1
|
* Update testsErik Johnston2015-11-171-0/+2
|
* Make work in both Maria and SQLite. Fix testsErik Johnston2015-04-011-3/+7
|
* Factor out some of the common homeserver setup code into aMark Haines2015-02-111-8/+3
| | | | setup_test_homeserver function in utils.
* Supply auth_chain along with current state in '/state/', fetch auth events ↵Mark Haines2014-12-181-0/+2
| | | | from a remote server if we are missing some of them
* Fix replication testsErik Johnston2014-12-111-12/+6
|
* fix UTs by telling all the mock stores about the new methods for tracking ↵Matthew Hodgson2014-12-091-0/+5
| | | | retries
* replace user_id with senderMark Haines2014-11-191-0/+3
|
* Merge PDUs and Events into one objectMark Haines2014-11-141-4/+4
|
* SYN-103: Remove "origin" and "destination" keys from edusMark Haines2014-11-131-3/+0
|
* event <-> pdu mappings are now trivial and will soon be scrappedErik Johnston2014-11-041-167/+0
|
* Fix up federation testsErik Johnston2014-11-041-114/+124
|
* Merge branch 'develop' into event_signingMark Haines2014-10-172-7/+7
|\ | | | | | | | | Conflicts: synapse/federation/replication.py
| * keep 'origin_server_ts' as 'ts' in the database to avoid needlessly updating ↵Mark Haines2014-10-171-2/+2
| | | | | | | | schema
| * SPEC-7: Rename 'ts' to 'origin_server_ts'Mark Haines2014-10-172-9/+9
| |
* | Include hashes of previous pdus when referencing themMark Haines2014-10-162-3/+3
| |
* | Sign outgoing PDUs.Mark Haines2014-10-161-3/+10
| |
* | persist hashes and origin signatures for PDUsMark Haines2014-10-151-1/+3
|/
* SYN-103: Ignore the 'origin' key in received EDUs. Instead take the origin ↵Mark Haines2014-10-141-0/+1
| | | | from the transaction itself
* Verify signatures for server2server requestsMark Haines2014-10-131-0/+1
|
* SYN-75 sign at the request level rather than the transaction levelMark Haines2014-10-131-2/+2
|
* Merge branch develop into server2server_signingMark Haines2014-10-131-2/+3
|\ | | | | | | | | Conflicts: synapse/app/homeserver.py
| * Add a keyword argument to get_json to avoid retrying on DNS failures. Rather ↵Mark Haines2014-10-021-2/+3
| | | | | | | | than passing MatrixHttpClient.RETRY_DNS_LOOKUP_FAILURES as a fake query string parameter
* | SYN-75 Verify signatures on server to server transactionsMark Haines2014-09-301-0/+1
| |
* | Sign federation transactionsMark Haines2014-09-241-1/+4
|/
* Fix unit tests after adding extra argument on put_jsonErik Johnston2014-09-151-3/+6
|
* Have all unit tests import from our own subclass of trial's unittest ↵Paul "LeoNerd" Evans2014-09-122-6/+2
| | | | TestCase; set up logging in ONE PLACE ONLY
* fix the copyright holder from matrix.org to OpenMarket Ltd, as matrix.org ↵Matthew Hodgson2014-09-032-2/+2
| | | | hasn't been incorporated in time for launch.
* change the world: make the default matrix API URL prefix /_matrix rather ↵Matthew Hodgson2014-08-311-9/+9
| | | | | | than /matrix to make it easier for existing websites to mount a HS in their namespace without collisions. perl -pi -e 's#/matrix#/_matrix#g' ./cmdclient/console.py ./docs/client-server/howto.rst ./docs/client-server/specification.rst ./docs/client-server/swagger_matrix/directory ./docs/client-server/swagger_matrix/events ./docs/client-server/swagger_matrix/login ./docs/client-server/swagger_matrix/presence ./docs/client-server/swagger_matrix/profile ./docs/client-server/swagger_matrix/registration ./docs/client-server/swagger_matrix/rooms ./docs/server-server/specification.rst ./graph/graph.py ./jsfiddles/create_room_send_msg/demo.js ./jsfiddles/event_stream/demo.js ./jsfiddles/example_app/demo.js ./jsfiddles/register_login/demo.js ./jsfiddles/room_memberships/demo.js ./synapse/api/urls.py ./tests/federation/test_federation.py ./tests/handlers/test_presence.py ./tests/handlers/test_typing.py ./tests/rest/test_events.py ./tests/rest/test_presence.py ./tests/rest/test_profile.py ./tests/rest/test_rooms.py ./webclient/components/fileUpload/file-upload-service.js ./webclient/components/matrix/matrix-service.js
* Move pdu and event persistence into a single persist_event functionMark Haines2014-08-261-1/+1
|
* Rename MockHttpServer to MockHttpResource as it stands for one server ↵Paul "LeoNerd" Evans2014-08-191-9/+9
| | | | resource rather than an entire server
* Removed http_server from HomeServer. Updated unit tests to use either ↵Kegan Dougal2014-08-141-1/+1
| | | | resource_for_federation or resource_for_client depending on what is being tested.
* Move MockClock into tests.utils so we can reüse itPaul "LeoNerd" Evans2014-08-131-11/+1
|
* Define the concept of a 'federation Query'; creating API for making and ↵Paul "LeoNerd" Evans2014-08-131-0/+38
| | | | handling Queries on the Federation's increasingly-inaccurately-named ReplicationLayer
* Namespace all the Federation HTTP URLs to /matrix/federation/v1/...Paul "LeoNerd" Evans2014-08-131-7/+8
|
* add in copyrights to everything, not just the synapse subdir, and add a ↵Matthew Hodgson2014-08-132-0/+28
| | | | copyrighter.pl whilst we're at it
* Reference Matrix Home Servermatrix.org2014-08-123-0/+386