summary refs log tree commit diff
path: root/tests/unittest.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Tests: replace mocked Authenticator with the real thing (#11913)Richard van der Hoff2022-02-111-30/+106
| | | | | | | | | | | | If we prepopulate the test homeserver with a key for a remote homeserver, we can make federation requests to it without having to stub out the authenticator. This has two advantages: * means that what we are testing is closer to reality (ie, we now have complete tests for the incoming-request-authorisation flow) * some tests require that other objects be signed by the remote server (eg, the event in `/send_join`), and doing that would require a whole separate set of mocking out. It's much simpler just to use real keys.
* Expose the registered device ID from the `register_appservice_user` test ↵reivilibre2022-02-021-4/+5
| | | | helper. (#11615)
* Fix case in `wait_for_background_updates` where `self.store` does not exist ↵Andrew Morgan2021-12-071-7/+4
| | | | | | (#11331) Pull the DataStore from the HomeServer instance, which always exists.
* Make background updates controllable via a plugin (#11306)Erik Johnston2021-11-291-6/+4
| | | Co-authored-by: Brendan Abolivier <babolivier@matrix.org>
* Store arbitrary relations from events. (#11391)Patrick Cloke2021-11-221-1/+6
| | | | | Instead of only known relation types. This also reworks the background update for thread relations to crawl events and search for any relation type, not just threaded relations.
* Misc typing fixes for tests, part 2 of N (#11330)David Robertson2021-11-161-16/+15
|
* Misc typing fixes for `tests`, part 1 of N (#11323)David Robertson2021-11-121-11/+21
| | | | | | | | | | * Annotate HomeserverTestCase.servlets * Correct annotation of federation_auth_origin * Use AnyStr custom_headers instead of a Union This allows (str, str) and (bytes, bytes). This disallows (str, bytes) and (bytes, str) * DomainSpecificString.SIGIL is a ClassVar
* Fix-up some type hints in the relations tests. (#11076)Patrick Cloke2021-10-141-2/+2
|
* Don't drop user dir deltas when server leaves room (#10982)David Robertson2021-10-061-0/+9
| | | | | | | | | Fix a long-standing bug where a batch of user directory changes would be silently dropped if the server left a room early in the batch. * Pull out `wait_for_background_update` in tests Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com> Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Consistently exclude from user_directory (#10960)David Robertson2021-10-041-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Introduce `should_include_local_users_in_dir` We exclude three kinds of local users from the user_directory tables. At present we don't consistently exclude all three in the same places. This commit introduces a new function to gather those exclusion conditions together. Because we have to handle local and remote users in different ways, I've made that function only consider the case of remote users. It's the caller's responsibility to make the local versus remote distinction clear and correct. A test fixup is required. The test now hits a path which makes db queries against the users table. The expected rows were missing, because we were using a dummy user that hadn't actually been registered. We also add new test cases to covert the exclusion logic. ---- By my reading this makes these changes: * When an app service user registers or changes their profile, they will _not_ be added to the user directory. (Previously only support and deactivated users were excluded). This is consistent with the logic that rebuilds the user directory. See also [the discussion here](https://github.com/matrix-org/synapse/pull/10914#discussion_r716859548). * When rebuilding the directory, exclude support and disabled users from room sharing tables. Previously only appservice users were excluded. * Exclude all three categories of local users when rebuilding the directory. Previously `_populate_user_directory_process_users` didn't do any exclusion. Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Use direct references for configuration variables (part 7). (#10959)Patrick Cloke2021-10-041-1/+1
|
* type-hint `HomeserverTestcase.setup_test_homeserver` (#10961)David Robertson2021-10-011-2/+2
| | | | | * type-hint `HomeserverTestcase.setup_test_homeserver` For better IDE completion. A small drive-by.
* Refactor user directory tests (#10935)David Robertson2021-09-301-1/+3
| | | | | | | | | | | | | * Pull out GetUserDirectoryTables helper * Don't rebuild the dir in tests that don't need it In #10796 I changed registering a user to add directory entries under. This means we don't have to force a directory regbuild in to tests of the user directory search. * Move test_initial to tests/storage * Add type hints to both test_user_directory files Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Use direct references for configuration variables (part 6). (#10916)Patrick Cloke2021-09-291-1/+1
|
* Add types to synapse.util. (#10601)reivilibre2021-09-101-2/+2
|
* Flatten tests/rest/client/{v1,v2_alpha} too (#10667)David Robertson2021-08-201-1/+1
|
* Add a new version of the R30 phone-home metric, which removes a false ↵reivilibre2021-07-191-2/+13
| | | | | impression of retention given by the old R30 metric (#10332) Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net>
* Use inline type hints in `tests/` (#10350)Jonathan de Jong2021-07-131-1/+1
| | | | | | | | This PR is tantamount to running: python3.8 -m com2ann -v 6 tests/ (com2ann requires python 3.8 to run)
* [pyupgrade] `tests/` (#10347)Jonathan de Jong2021-07-131-1/+1
|
* Remove various bits of compatibility code for Python <3.6 (#9879)Andrew Morgan2021-04-271-1/+1
| | | I went through and removed a bunch of cruft that was lying around for compatibility with old Python versions. This PR also will now prevent Synapse from starting unless you're running Python 3.6+.
* Improved validation for received requests (#9817)Richard van der Hoff2021-04-231-0/+1
| | | | | | * Simplify `start_listening` callpath * Correctly check the size of uploaded files
* pass a reactor into SynapseSite (#9874)Richard van der Hoff2021-04-231-0/+1
|
* Fix (final) Bugbear violations (#9838)Jonathan de Jong2021-04-201-1/+1
|
* Remove redundant "coding: utf-8" lines (#9786)Jonathan de Jong2021-04-141-1/+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-091-2/+1
|
* Record more information into structured logs. (#9654)Patrick Cloke2021-04-081-1/+1
| | | | Records additional request information into the structured logs, e.g. the requester, IP address, etc.
* Ensure we use a copy of the event content dict before modifying it in ↵Andrew Morgan2021-03-171-0/+10
| | | | | | | | | serialize_event (#9585) This bug was discovered by DINUM. We were modifying `serialized_event["content"]`, which - if you've got `USE_FROZEN_DICTS` turned on or are [using a third party rules module](https://github.com/matrix-org/synapse/blob/17cd48fe5171d50da4cb59db647b993168e7dfab/synapse/events/third_party_rules.py#L73-L76) - will raise a 500 if you try to a edit a reply to a message. `serialized_event["content"]` could be set to the edit event's content, instead of a copy of it, which is bad as we attempt to modify it. Instead, we also end up modifying the original event's content. DINUM uses a third party rules module, which meant the event's content got frozen and thus an exception was raised. To be clear, the problem is not that the event's content was frozen. In fact doing so helped us uncover the fact we weren't copying event content correctly.
* Enable flake8-bugbear, but disable most checks. (#9499)Jonathan de Jong2021-03-161-1/+1
| | | | * Adds B00 to ignored checks. * Fixes remaining issues.
* Update black, and run auto formatting over the codebase (#9381)Eric Eastwood2021-02-161-1/+4
| | | | | | | - 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
* Ratelimit 3PID /requestToken API (#9238)Erik Johnston2021-01-281-0/+5
|
* Skip unit tests which require optional dependencies (#9031)Richard van der Hoff2021-01-071-1/+27
| | | If we are lacking an optional dependency, skip the tests that rely on it.
* Implement a username picker for synapse (#8942)Richard van der Hoff2020-12-181-1/+7
| | | | | | | | | | | | | | The final part (for now) of my work to implement a username picker in synapse itself. The idea is that we allow `UsernameMappingProvider`s to return `localpart=None`, in which case, rather than redirecting the browser back to the client, we redirect to a username-picker resource, which allows the user to enter a username. We *then* complete the SSO flow (including doing the client permission checks). The static resources for the username picker itself (in https://github.com/matrix-org/synapse/tree/rav/username_picker/synapse/res/username_picker) are essentially lifted wholesale from https://github.com/matrix-org/matrix-synapse-saml-mozilla/tree/master/matrix_synapse_saml_mozilla/res. As the comment says, we might want to think about making them customisable, but that can be a follow-up. Fixes #8876.
* lintRichard van der Hoff2020-12-151-1/+1
|
* Remove spurious "SynapseRequest" result from `make_request"Richard van der Hoff2020-12-151-38/+6
| | | | This was never used, so let's get rid of it.
* fix up various test casesRichard van der Hoff2020-12-021-6/+19
| | | | | A few test cases were relying on being able to mount non-client servlets on the test resource. it's better to give them their own Resources.
* Add `create_resource_dict` method to HomeserverTestCaseRichard van der Hoff2020-12-021-7/+21
| | | | | | Rather than using a single JsonResource, construct a resource tree, as we do in the prod code, and allow testcases to add extra resources by overriding `create_resource_dict`.
* Remove deprecated `/_matrix/client/*/admin` endpoints (#8785)Dirk Klimpel2020-11-251-2/+2
| | | These are now only available via `/_synapse/admin/v1`.
* Remove redundant `HomeserverTestCase.render`Richard van der Hoff2020-11-161-14/+0
|
* Remove redundant calls to `render()`Richard van der Hoff2020-11-161-8/+2
|
* Make `make_request` actually render the requestRichard van der Hoff2020-11-161-0/+8
| | | | | | remove the stubbing out of `request.process`, so that `requestReceived` also renders the request via the appropriate resource. Replace render() with a stub for now.
* Merge branch 'develop' into rav/pass_site_to_make_requestRichard van der Hoff2020-11-161-11/+7
|\
| * Rename `create_test_json_resource` to `create_test_resource` (#8759)Richard van der Hoff2020-11-161-11/+7
| | | | | | | | | | The root resource isn't necessarily a JsonResource, so rename this method accordingly, and update a couple of test classes to use the method rather than directly manipulating self.resource.
* | fix dict handling for make_request()Richard van der Hoff2020-11-151-3/+0
| |
* | pass a Site into make_requestRichard van der Hoff2020-11-151-0/+1
| |
* | pass a Site into RestHelperRichard van der Hoff2020-11-151-1/+1
|/
* Add `displayname` to Shared-Secret Registration for admins (#8722)Dirk Klimpel2020-11-051-6/+13
| | | Add `displayname` to Shared-Secret Registration for admins to `POST /_synapse/admin/v1/register`
* Fail test cases if they fail to await all awaitables (#8690)Patrick Cloke2020-10-301-1/+5
|
* Don't instansiate Requester directly (#8614)Erik Johnston2020-10-221-2/+2
|
* Add basic tests for sync/pagination with vector clock tokens. (#8488)Erik Johnston2020-10-141-1/+31
| | | | | These are tests for #8439
* Fix message duplication if something goes wrong after persisting the event ↵Erik Johnston2020-10-131-2/+9
| | | | | (#8476) Should fix #3365.
* kill off `send_nonmember_event`Richard van der Hoff2020-10-051-1/+3
| | | | This is now redundant, and we can just call `handle_new_client_event` directly.
* Add unit test for event persister sharding (#8433)Erik Johnston2020-10-021-1/+1
|
* Add checks for postgres sequence consistency (#8402)Erik Johnston2020-09-281-1/+30
|
* Create a mechanism for marking tests "logcontext clean" (#8399)Richard van der Hoff2020-09-281-1/+14
|
* Simplify super() calls to Python 3 syntax. (#8344)Patrick Cloke2020-09-181-1/+1
| | | | | | | This converts calls like super(Foo, self) -> super(). Generated with: sed -i "" -Ee 's/super\([^\(]+\)/super()/g' **/*.py
* Show a confirmation page during user password reset (#8004)Andrew Morgan2020-09-101-0/+4
| | | | | This PR adds a confirmation step to resetting your user password between clicking the link in your email and your password actually being reset. This is to better align our password reset flow with the industry standard of requiring a confirmation from the user after email validation.
* Stop sub-classing object (#8249)Patrick Cloke2020-09-041-1/+1
|
* Add a shadow-banned flag to users. (#8092)Patrick Cloke2020-08-141-2/+6
|
* Convert synapse.api to async/await (#8031)Patrick Cloke2020-08-061-14/+10
|
* Rename database classes to make some sense (#8033)Erik Johnston2020-08-051-3/+3
|
* Convert the message handler to async/await. (#7884)Patrick Cloke2020-07-221-1/+3
|
* Create a ListenerConfig object (#7681)Richard van der Hoff2020-06-161-1/+1
| | | | | | | | | | This ended up being a bit more invasive than I'd hoped for (not helped by generic_worker duplicating some of the code from homeserver), but hopefully it's an improvement. The idea is that, rather than storing unstructured `dict`s in the config for the listener configurations, we instead parse it into a structured `ListenerConfig` object.
* Fix limit logic for EventsStream (#7358)Richard van der Hoff2020-04-291-26/+4
| | | | | | | | | | | | | | | | | | | * Factor out functions for injecting events into database I want to add some more flexibility to the tools for injecting events into the database, and I don't want to clutter up HomeserverTestCase with them, so let's factor them out to a new file. * Rework TestReplicationDataHandler This wasn't very easy to work with: the mock wrapping was largely superfluous, and it's useful to be able to inspect the received rows, and clear out the received list. * Fix AssertionErrors being thrown by EventsStream Part of the problem was that there was an off-by-one error in the assertion, but also the limit logic was too simple. Fix it all up and add some tests.
* Set a logging context while running the bg updatesRichard van der Hoff2020-03-311-4/+7
| | | | | This mostly just reduces the amount of "running from sentinel context" spam during unittest setup.
* Merge pull request #7157 from matrix-org/rev.outbound_device_pokes_testsRichard van der Hoff2020-03-301-5/+3
|\ | | | | Add tests for outbound device pokes
| * Add tests for outbound device pokesRichard van der Hoff2020-03-271-0/+1
| |
| * Remove spurious "name" parameter to `default_config`Richard van der Hoff2020-03-241-5/+2
| | | | | | | | | | this is never set to anything other than "test", and is a source of unnecessary boilerplate.
* | Clean up some LoggingContext stuff (#7120)Richard van der Hoff2020-03-241-4/+8
|/ | | | | | | | | | | | | | | | | | | | | | | * Pull Sentinel out of LoggingContext ... and drop a few unnecessary references to it * Factor out LoggingContext.current_context move `current_context` and `set_context` out to top-level functions. Mostly this means that I can more easily trace what's actually referring to LoggingContext, but I think it's generally neater. * move copy-to-parent into `stop` this really just makes `start` and `stop` more symetric. It also means that it behaves correctly if you manually `set_log_context` rather than using the context manager. * Replace `LoggingContext.alive` with `finished` Turn `alive` into `finished` and make it a bit better defined.
* Implement GET /_matrix/client/r0/rooms/{roomId}/aliases (#6939)Richard van der Hoff2020-02-181-9/+19
| | | | | per matrix-org/matrix-doc#2432
* s/get_room_version/get_room_version_id/Richard van der Hoff2020-01-311-1/+3
| | | | | ... to make way for a forthcoming get_room_version which returns a RoomVersion object.
* Fix `/events/:event_id` deprecated API. (#6731)Erik Johnston2020-01-201-1/+1
|
* Merge pull request #6629 from matrix-org/rav/kill_event_reference_hashesRichard van der Hoff2020-01-061-5/+1
|\ | | | | Remove a bunch of unused code from event creation
| * Remove unused hashes and depths from create_event paramsRichard van der Hoff2020-01-061-5/+1
| |
* | Workaround for error when fetching notary's own key (#6620)Richard van der Hoff2020-01-061-1/+10
|/ | | | | | | | | | | | | | * Kill off redundant SynapseRequestFactory We already get the Site via the Channel, so there's no need for a dedicated RequestFactory: we can just use the right constructor. * Workaround for error when fetching notary's own key As a notary server, when we return our own keys, include all of our signing keys in verify_keys. This is a workaround for #6596.
* Merge pull request #6484 from matrix-org/erikj/port_sync_handlerErik Johnston2019-12-091-1/+6
|\ | | | | Port SyncHandler to async/await
| * Port SyncHandler to async/awaitErik Johnston2019-12-051-1/+6
| |
* | Move background update handling out of storeErik Johnston2019-12-051-4/+6
| |
* | Move DB pool and helper functions into dedicated Database classErik Johnston2019-12-051-1/+1
|/
* Remove underscore from SQLBaseStore functionsErik Johnston2019-12-041-1/+1
|
* Implementation of MSC2314 (#6176)Amber Brown2019-11-281-1/+67
|
* Remove DelayedCall debugging from test runs (#5787)Amber Brown2019-07-311-6/+0
|
* More refactoring in `get_events_as_list` (#5707)Richard van der Hoff2019-07-171-0/+1
| | | | | | | | We can now use `_get_events_from_cache_or_db` rather than going right back to the database, which means that (a) we can benefit from caching, and (b) it opens the way forward to more extensive checks on the original event. We now always require the original event to exist before we will serve up a redaction.
* Merge pull request #5589 from matrix-org/erikj/admin_exfiltrate_dataErik Johnston2019-07-151-1/+1
|\ | | | | Add basic function to get all data for a user out of synapse
| * Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-07-051-1/+1
| |\ | | | | | | | | | erikj/admin_exfiltrate_data
| * | Add basic function to get all data for a user out of synapseErik Johnston2019-07-021-1/+1
| | |
* | | Add a mechanism for per-test configs (#5657)Richard van der Hoff2019-07-121-1/+54
| |/ |/| | | | | | | | | It's useful to be able to tweak the homeserver config to be used for each test. This PR adds a mechanism to do so.
* | Move logging utilities out of the side drawer of util/ and into logging/ (#5606)Amber Brown2019-07-041-1/+1
|/
* Make the http server handle coroutine-making REST servlets (#5475)Amber Brown2019-06-291-8/+32
|
* Pass config_dir_path and data_dir_path into Config.read_config. (#5522)Richard van der Hoff2019-06-241-1/+1
| | | | | | * Pull config_dir_path and data_dir_path calculation out of read_config_files * Pass config_dir_path and data_dir_path into read_config
* Run Black. (#5482)Amber Brown2019-06-201-10/+8
|
* Expose statistics on extrems to prometheus (#5384)Amber Brown2019-06-131-1/+60
|
* Change password reset links to /_matrix.Erik Johnston2019-06-111-0/+12
|
* Migrate all tests to use the dict-based config format instead of hanging ↵Amber Brown2019-05-131-2/+10
| | | | items off HomeserverConfig (#5171)
* Run Black on the tests again (#5170)Amber Brown2019-05-101-4/+9
|
* Remove the requirement to authenticate for /admin/server_version. (#5122)Richard van der Hoff2019-05-071-4/+18
| | | | | | | | | This endpoint isn't much use for its intended purpose if you first need to get yourself an admin's auth token. I've restricted it to the `/_synapse/admin` path to make it a bit easier to lock down for those concerned about exposing this information. I don't imagine anyone is using it in anger currently.
* Add config option to block users from looking up 3PIDs (#5010)Brendan Abolivier2019-04-041-1/+1
|
* Some more porting to HomeserverTestCase and remove old RESTHelper (#4913)Amber Brown2019-03-221-0/+12
|
* Migrate the user directory initial population to a background task (#4864)Amber Brown2019-03-191-2/+2
|
* Update test_typing to use HomeserverTestCase. (#4771)Richard van der Hoff2019-03-041-2/+6
|
* Enable configuring test log level via env var (#4506)Richard van der Hoff2019-01-291-30/+7
| | | | I got fed up with always adding '@unittest.DEBUG' every time I needed to debug a test.
* Use native UPSERTs where possible (#4306)Amber Brown2019-01-241-2/+10
|
* create support user (#4141)Neil Johnson2018-12-141-0/+1
| | | | | | Allow for the creation of a support user. A support user can access the server, join rooms, interact with other users, but does not appear in the user directory nor does it contribute to monthly active user limits.
* Patch defer.inlineCallbacks to check logcontexts in tests (#4205)Richard van der Hoff2018-12-041-1/+3
|
* Check logcontexts before and after each test (#4190)Richard van der Hoff2018-11-271-2/+9
| | | | | | | | | | | | * Add better diagnostics to flakey keyring test * fix interpolation fail * Check logcontexts before and after each test * update changelog * update changelog
* Do a GC after each test to fix logcontext leaks (#4227)Richard van der Hoff2018-11-271-2/+13
| | | | | | | | | | * Some words about garbage collections and logcontexts * Do a GC after each test to fix logcontext leaks This feels like an awful hack, but... * changelog
* Remove some boilerplate in tests (#4156)Amber Brown2018-11-071-4/+6
|
* Tests for user consent resource (#4140)Amber Brown2018-11-061-2/+10
|
* Write some tests for the email pusher (#4095)Amber Brown2018-10-301-1/+8
|
* Fix userconsent on Python 3 (#3938)Amber Brown2018-10-021-1/+79
|
* Replaced all occurences of e.message with str(e)Schnuffle2018-09-271-1/+1
| | | | Signed-off-by: Schnuffle <schnuffle@github.com>
* Fix client IPs being broken on Python 3 (#3908)Amber Brown2018-09-201-2/+5
|
* Add a regression test for logging on failed connections (#3912)Amber Brown2018-09-201-1/+2
|
* Fix tests on postgresql (#3740)Amber Brown2018-09-041-2/+5
|
* Port storage/ to Python 3 (#3725)Amber Brown2018-08-311-0/+11
|
* Integrate presence from hotfixes (#3694)Amber Brown2018-08-181-1/+7
|
* Implement a new test baseclass to cut down on boilerplate (#3684)Amber Brown2018-08-141-0/+144
|
* Run black.black2018-08-101-2/+5
|
* Refactor REST API tests to use explicit reactors (#3351)Amber Brown2018-07-171-0/+11
|
* cleanupsAmber Brown2018-06-271-1/+4
|
* handle federation not telling us about prev_eventsAmber Brown2018-06-271-1/+1
|
* Put python's logs into Trial when running unit tests (#3319)Amber Brown2018-06-041-13/+27
|
* enable twisted delayedcall debugging in UTsRichard van der Hoff2018-01-091-1/+5
|
* Slightly saner logging for unittestsRichard van der Hoff2016-07-251-4/+7
| | | | | | | 1. Give the handler used for logging in unit tests a formatter, so that the output is slightly more meaningful 2. Log some synapse.storage stuff, because it's useful.
* Fix flake8 warnings for testsMark Haines2016-02-191-3/+4
|
* copyrightsMatthew Hodgson2016-01-071-1/+1
|
* Don't make @unittest.DEBUG print the huge amount of verbosity generated by ↵Paul "LeoNerd" Evans2015-01-121-0/+2
| | | | the synapse.storage loggers
* Added a useful unit test primitive for asserting object attributesPaul "LeoNerd" Evans2014-09-171-0/+11
|
* Define a CLOS-like 'around' modifier as a decorator, to neaten up the ↵Paul "LeoNerd" Evans2014-09-121-10/+23
| | | | 'orig_*' noise of wrapping the setUp()/tearDown() methods
* Add some docstringsPaul "LeoNerd" Evans2014-09-121-0/+6
|
* Additionally look first for a 'loglevel' attribute on the running test ↵Paul "LeoNerd" Evans2014-09-121-3/+7
| | | | method, before the TestCase
* Define a (class) decorator for easily setting a DEBUG logging level on a ↵Paul "LeoNerd" Evans2014-09-121-0/+5
| | | | TestCase
* Allow a TestCase to set a 'loglevel' attribute, which overrides the logging ↵Paul "LeoNerd" Evans2014-09-121-1/+22
| | | | level while that testcase runs
* Have all unit tests import from our own subclass of trial's unittest ↵Paul "LeoNerd" Evans2014-09-121-0/+30
TestCase; set up logging in ONE PLACE ONLY