summary refs log tree commit diff
path: root/tests/server.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Properly typecheck types.http (#14988)David Robertson2023-02-071-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Tweak http types in Synapse AFACIS these are correct, and they make mypy happier on tests.http. * Type hints for test_proxyagent * type hints for test_srv_resolver * test_matrix_federation_agent * tests.http.server._base * tests.http.__init__ * tests.http.test_additional_resource * tests.http.test_client * tests.http.test_endpoint * tests.http.test_matrixfederationclient * tests.http.test_servlet * tests.http.test_simple_client * tests.http.test_site * One fixup in tests.server * Untyped defs * Changelog * Fixup syntax for Python 3.7 * Fix olddeps syntax * Use a twisted IPv4 addr for dummy_address * Fix typo, thanks Sean Co-authored-by: Sean Quah <8349537+squahtx@users.noreply.github.com> * Remove redundant `Optional` --------- Co-authored-by: Sean Quah <8349537+squahtx@users.noreply.github.com>
* Support OIDC backchannel logouts (#11414)Quentin Gliech2022-10-311-0/+6
| | | | | | | If configured an OIDC IdP can log a user's session out of Synapse when they log out of the identity provider. The IdP sends a request directly to Synapse (and must be configured with an endpoint) when a user logs out.
* Implementation of HTTP 307 response for MSC3886 POST endpoint (#14018)Hugh Nimmo-Smith2022-10-181-1/+7
| | | | Co-authored-by: reivilibre <olivier@librepush.net> Co-authored-by: Andrew Morgan <andrewm@element.io>
* Register homeserver modules when creating test homeserver (#13558)Andrew Morgan2022-08-191-0/+14
|
* Add missing type hints for tests.unittest. (#13397)Patrick Cloke2022-07-271-1/+10
|
* annotate tests.server.FakeChannel (#13136)David Robertson2022-07-041-17/+21
|
* Remove tests/utils.py from mypy's exclude list (#13159)Andrew Morgan2022-07-041-1/+0
|
* Reload cache factors from disk on SIGHUP (#12673)David Robertson2022-05-111-0/+1
|
* Add helper class for testing request cancellation (#12630)Sean Quah2022-05-101-0/+13
| | | | | | | Also expose the `SynapseRequest` from `FakeChannel` in tests, so that we can call `Request.connectionLost` to simulate a client disconnecting. Signed-off-by: Sean Quah <seanq@element.io>
* Use `getClientAddress` instead of `getClientIP`. (#12599)Patrick Cloke2022-05-041-5/+8
| | | | | getClientIP was deprecated in Twisted 18.4.0, which also added getClientAddress. The Synapse minimum version for Twisted is currently 18.9.0, so all supported versions have the new API.
* Allow specifying the Postgres database's port when running unit tests with ↵reivilibre2022-04-051-0/+4
| | | | Postgres. (#12376)
* Add type hints for `tests/unittest.py`. (#12347)Richard van der Hoff2022-04-011-2/+4
| | | In particular, add type hints for get_success and friends, which are then helpful in a bunch of places.
* Only fetch thread participation for events with threads. (#12228)Patrick Cloke2022-03-181-6/+14
| | | | | | | | | We fetch the thread summary in two phases: 1. The summary that is shared by all users (count of messages and latest event). 2. Whether the requesting user has participated in the thread. There's no use in attempting step 2 for events which did not return a summary from step 1.
* Support rendering previews with data: URLs in them (#11767)Patrick Cloke2022-01-241-1/+1
| | | | | Images which are data URLs will no longer break URL previews and will properly be "downloaded" and thumbnailed.
* Optionally use an on-disk sqlite db in tests (#11702)David Robertson2022-01-071-1/+18
| | | | | | | | | | | | | | | * Optionally use an on-disk sqlite db in tests When debugging a test it is sometimes useful to inspect the state of the DB. This is not easy when the db is in-memory: one cannot attach the sqlite CLI to another process's DB. With this change, if SYNAPSE_TEST_PERSIST_SQLITE_DB is set, we use `_trial_temp/test.db` as our sqlite database. One can then use `sqlite3 _trial_temp/test.db` and query to your heart's content. The DB is destroyed and recreated between different test cases. Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
* Refactor `tests.util.setup_test_homeserver` and ↵reivilibre2021-12-211-9/+190
| | | | `tests.server.setup_test_homeserver`. (#11503)
* Revert accidental commits to develop.Olivier Wilkinson (reivilibre)2021-12-031-190/+9
|
* Give `tests.server.setup_test_homeserver` (nominally!) the same behaviourOlivier Wilkinson (reivilibre)2021-12-031-0/+3
| | | | | | | | | | by calling into `make_test_homeserver_synchronous`. The function *could* have been inlined at this point but the function is big enough and it felt fine to leave it as is. At least there isn't a confusing name clash anymore!
* Move `tests.utils.setup_test_homeserver` to `tests.server`Olivier Wilkinson (reivilibre)2021-12-031-1/+184
| | | | | | | It had no users. We have just taken the identity of a previous function but don't provide the same behaviour, so we need to fix this in the next commit...
* Convert one of the `setup_test_homeserver`s to ↵Olivier Wilkinson (reivilibre)2021-12-031-8/+3
| | | | | | | | `make_test_homeserver_synchronous` and pass in the homeserver rather than calling a same-named function to ask for one. Later commits will jiggle things around to make this sensible.
* Misc typing fixes for tests, part 2 of N (#11330)David Robertson2021-11-161-1/+2
|
* Misc typing fixes for `tests`, part 1 of N (#11323)David Robertson2021-11-121-4/+11
| | | | | | | | | | * 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-21/+33
|
* Pass str to twisted's IReactorTCP (#10895)David Robertson2021-09-301-4/+4
| | | | | | | This follows a correction made in twisted/twisted#1664 and should fix our Twisted Trial CI job. Until that change is in a twisted release, we'll have to ignore the type of the `host` argument. I've raised #10899 to remind us to review the issue in a few months' time.
* Add reactor to `SynapseRequest` and fix up types. (#10868)Erik Johnston2021-09-241-2/+4
|
* Fix incompatibility with Twisted < 21. (#10713)Richard van der Hoff2021-08-271-3/+12
| | | | | | | Turns out that the functionality added in #10546 to skip TLS was incompatible with older Twisted versions, so we need to be a bit more inventive. Also, add a test to (hopefully) not break this in future. Sadly, testing TLS is really hard.
* Use inline type hints in `tests/` (#10350)Jonathan de Jong2021-07-131-3/+5
| | | | | | | | This PR is tantamount to running: python3.8 -m com2ann -v 6 tests/ (com2ann requires python 3.8 to run)
* Ensure that we do not cache empty sync responses after a timeout (#10158)Richard van der Hoff2021-06-171-5/+3
| | | Fixes #8518 by telling the ResponseCache not to cache the /sync response if the next_batch param is the same as the since token.
* Kill off `_PushHTTPChannel`. (#9878)Richard van der Hoff2021-04-231-6/+0
| | | | | First of all, a fixup to `FakeChannel` which is needed to make it work with the default HTTP channel implementation. Secondly, it looks like we no longer need `_PushHTTPChannel`, because as of #8013, the producer that gets attached to the `HTTPChannel` is now an `IPushProducer`. This is good, because it means we can remove a whole load of test-specific boilerplate which causes variation between tests and production.
* Make it possible to use dmypy (#9692)Erik Johnston2021-03-261-8/+20
| | | | | | | | | Running `dmypy run` will do a `mypy` check while spinning up a daemon that makes rerunning `dmypy run` a lot faster. `dmypy` doesn't support `follow_imports = silent` and has `local_partial_types` enabled, so this PR enables those options and fixes the issues that were newly raised. Note that `local_partial_types` will be enabled by default in upcoming mypy releases.
* Enable addtional flake8-bugbear linting checks. (#9659)Jonathan de Jong2021-03-241-1/+1
|
* Fix remaining mypy issues due to Twisted upgrade. (#9608)Patrick Cloke2021-03-151-0/+2
|
* Fix additional type hints. (#9543)Patrick Cloke2021-03-091-1/+1
| | | Type hint fixes due to Twisted 21.2.0 adding type hints.
* SSO: redirect to public URL before setting cookies (#9436)Richard van der Hoff2021-02-261-1/+5
| | | ... otherwise, we don't get the cookie back.
* Update black, and run auto formatting over the codebase (#9381)Eric Eastwood2021-02-161-2/+1
| | | | | | | - 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-2/+7
|
* Fix bugs in handling clientRedirectUrl, and improve OIDC tests (#9127, #9128)Richard van der Hoff2021-01-181-1/+1
| | | | | | | | | | | | | | | | * Factor out a common TestHtmlParser Looks like I'm doing this in a few different places. * Improve OIDC login test Complete the OIDC login flow, rather than giving up halfway through. * Ensure that OIDC login works with multiple OIDC providers * Fix bugs in handling clientRedirectUrl - don't drop duplicate query-params, or params with no value - allow utf-8 in query-params
* Add a test for UI-Auth-via-SSO (#9082)Richard van der Hoff2021-01-131-5/+27
| | | | | * Add complete test for UI-Auth-via-SSO. * review comments
* Remove spurious "SynapseRequest" result from `make_request"Richard van der Hoff2020-12-151-4/+4
| | | | This was never used, so let's get rid of it.
* UIA: offer only available auth flowsRichard van der Hoff2020-12-021-0/+1
| | | | | | | During user-interactive auth, do not offer password auth to users with no password, nor SSO auth to users with no SSO. Fixes #7559.
* fix up various test casesRichard van der Hoff2020-12-021-1/+2
| | | | | 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.
* Remove redundant calls to `render()`Richard van der Hoff2020-11-161-5/+0
|
* Make `make_request` actually render the requestRichard van der Hoff2020-11-161-7/+13
| | | | | | 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 pull request #8757 from matrix-org/rav/pass_site_to_make_requestRichard van der Hoff2020-11-161-1/+17
|\ | | | | Pass a Site into `make_request`
| * Merge branch 'develop' into rav/pass_site_to_make_requestRichard van der Hoff2020-11-161-1/+10
| |\
| * | fix dict handling for make_request()Richard van der Hoff2020-11-151-0/+2
| | |
| * | pass a Site into make_requestRichard van der Hoff2020-11-151-1/+15
| | |
* | | Move `wait_until_result` into `FakeChannel` (#8758)Richard van der Hoff2020-11-161-22/+20
| |/ |/| | | | | FakeChannel has everything we need, and this more accurately models the real flow.
* | Add a `custom_headers` param to `make_request` (#8760)Richard van der Hoff2020-11-161-1/+10
|/ | | | Some tests want to set some custom HTTP request headers, so provide a way to do that before calling requestReceived().
* Fix race for concurrent downloads of remote media. (#8682)Erik Johnston2020-10-301-1/+1
| | | Fixes #6755
* Support generating structured logs in addition to standard logs. (#8607)Patrick Cloke2020-10-291-3/+1
| | | | | | | This modifies the configuration of structured logging to be usable from the standard Python logging configuration. This also separates the formatting of logs from the transport allowing JSON logs to files or standard logs to sockets.
* Tell Black to format code for Python 3.5 (#8664)Dan Callahan2020-10-271-2/+2
| | | | | | | | This allows trailing commas in multi-line arg lists. Minor, but we might as well keep our formatting current with regard to our minimum supported Python version. Signed-off-by: Dan Callahan <danc@element.io>
* Clean-up some broken/unused code in the test framework (#8514)Patrick Cloke2020-10-091-2/+0
|
* Fix threadsafety in ThreadedMemoryReactorClock (#8497)Richard van der Hoff2020-10-091-4/+32
| | | | | | | | | | | | | | | | | | | | | This could, very occasionally, cause: ``` tests.test_visibility.FilterEventsForServerTestCase.test_large_room =============================================================================== [ERROR] Traceback (most recent call last): File "/src/tests/rest/media/v1/test_media_storage.py", line 86, in test_ensure_media_is_in_local_cache self.wait_on_thread(x) File "/src/tests/unittest.py", line 296, in wait_on_thread self.reactor.advance(0.01) File "/src/.tox/py35/lib/python3.5/site-packages/twisted/internet/task.py", line 826, in advance self._sortCalls() File "/src/.tox/py35/lib/python3.5/site-packages/twisted/internet/task.py", line 787, in _sortCalls self.calls.sort(key=lambda a: a.getTime()) builtins.ValueError: list modified during sort tests.rest.media.v1.test_media_storage.MediaStorageTests.test_ensure_media_is_in_local_cache ```
* Speed up unit tests when using PostgreSQL (#8450)Erik Johnston2020-10-021-0/+4
|
* 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-2/+13
| | | | | 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-3/+3
|
* Fix client reader sharding tests (#7853)Erik Johnston2020-07-151-1/+25
| | | | | | | | | | | | | | | * Fix client reader sharding tests * Newsfile * Fix typing * Update changelog.d/7853.misc Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com> * Move mocking of http_client to tests Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
* Replace all remaining six usage with native Python 3 equivalents (#7704)Dagfinn Ilmari Mannsåker2020-06-161-3/+1
|
* Kill off redundant SynapseRequestFactory (#6619)Richard van der Hoff2020-01-031-2/+4
| | | | We already get the Site via the Channel, so there's no need for a dedicated RequestFactory: we can just use the right constructor.
* Add database config class (#6513)Erik Johnston2019-12-181-27/+28
| | | | | This encapsulates config for a given database and is the way to get new connections.
* Improve the performance of structured logging (#6322)Amber Brown2019-11-261-0/+2
|
* Support for routing outbound HTTP requests via a proxy (#6239)Richard van der Hoff2019-11-011-2/+22
| | | | | | | | | | | | | | | | | | | | The `http_proxy` and `HTTPS_PROXY` env vars can be set to a `host[:port]` value which should point to a proxy. The address of the proxy should be excluded from IP blacklists such as the `url_preview_ip_range_blacklist`. The proxy will then be used for * push * url previews * phone-home stats * recaptcha validation * CAS auth validation It will *not* be used for: * Application Services * Identity servers * Outbound federation * In worker configurations, connections from workers to masters Fixes #4198.
* Add unit test for /purge_room APIErik Johnston2019-10-311-1/+5
|
* Remove unnecessary parentheses around return statements (#5931)Andrew Morgan2019-08-301-1/+1
| | | | | Python will return a tuple whether there are parentheses around the returned values or not. I'm just sick of my editor complaining about this all over the place :)
* Implement a structured logging output system. (#5680)Amber Brown2019-08-281-2/+25
|
* Run Black. (#5482)Amber Brown2019-06-201-8/+8
|
* Migrate all tests to use the dict-based config format instead of hanging ↵Amber Brown2019-05-131-27/+34
| | | | items off HomeserverConfig (#5171)
* Run Black on the tests again (#5170)Amber Brown2019-05-101-3/+4
|
* Fix sync bug when accepting invites (#4956)Richard van der Hoff2019-04-021-21/+35
| | | | | | | | | | Hopefully this time we really will fix #4422. We need to make sure that the cache on `get_rooms_for_user_with_stream_ordering` is invalidated *before* the SyncHandler is notified for the new events, and we can now do so reliably via the `events` stream.
* Log requests which are simulated by the unit tests. (#4905)Richard van der Hoff2019-03-201-8/+1
| | | | Rather than stubbing out the access_log, make it actually log the requests, which makes it a lot more obvious what is going on during tests.
* Update test_typing to use HomeserverTestCase. (#4771)Richard van der Hoff2019-03-041-6/+15
|
* Add a caching layer to .well-known responses (#4516)Richard van der Hoff2019-01-301-4/+14
|
* Implement MSC1708 (.well-known lookups for server routing) (#4489)Richard van der Hoff2019-01-291-2/+11
|
* Use SimpleResolverComplexifier in tests (#4497)Richard van der Hoff2019-01-291-28/+13
| | | | | two reasons for this. One, it saves a bunch of boilerplate. Two, it squashes unicode to IDNA-in-a-`str` (even on python 3) in a way that it turns out we rely on to give consistent behaviour between python 2 and 3.
* fix python2 test failureRichard van der Hoff2019-01-231-1/+1
|
* Add a test for MatrixFederationAgentRichard van der Hoff2019-01-221-1/+12
|
* Fix IP URL previews on Python 3 (#4215)Amber Brown2018-12-221-0/+8
|
* Fix Content-Disposition in media repository (#4176)Amber Brown2018-11-151-0/+15
|
* Fix URL preview bugs (type error when loading cache from db, content-type ↵Amber Brown2018-11-081-0/+2
| | | | including quotes) (#4157)
* Remove some boilerplate in tests (#4156)Amber Brown2018-11-071-2/+18
|
* Tests for user consent resource (#4140)Amber Brown2018-11-061-3/+17
|
* Fix typing being reset causing infinite syncs (#4127)Amber Brown2018-11-031-1/+7
|
* Write some tests for the email pusher (#4095)Amber Brown2018-10-301-1/+3
|
* Fix client IPs being broken on Python 3 (#3908)Amber Brown2018-09-201-3/+5
|
* Refactor matrixfederationclient to fix logging (#3906)Richard van der Hoff2018-09-181-0/+81
| | | | | | | | We want to wait until we have read the response body before we log the request as complete, otherwise a confusing thing happens where the request appears to have completed, but we later fail it. To do this, we factor the salient details of a request out to a separate object, which can then keep track of the txn_id, so that it can be logged.
* Attempt to figure out what's going on with timeouts (#3857)Amber Brown2018-09-141-1/+41
|
* Port tests/ to Python 3 (#3808)Amber Brown2018-09-071-1/+1
|
* Fix tests on postgresql (#3740)Amber Brown2018-09-041-0/+1
|
* Unit testsErik Johnston2018-08-231-3/+10
|
* Fix the testsAmber Brown2018-08-151-4/+19
|
* Run tests under PostgreSQL (#3423)Amber Brown2018-08-131-2/+8
|
* Run black.black2018-08-101-0/+2
|
* Test fixes for Python 3 (#3647)Amber Brown2018-08-091-2/+20
|
* Refactor REST API tests to use explicit reactors (#3351)Amber Brown2018-07-171-0/+10
|
* Use more portable syntax using attrs package.Oleg Girko2018-07-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Newer syntax attr.ib(factory=dict) is just a syntactic sugar for attr.ib(default=attr.Factory(dict)) It was introduced in newest version of attrs package (18.1.0) and doesn't work with older versions. We should either require minimum version of attrs to be 18.1.0, or use older (slightly more verbose) syntax. Requiring newest version is not a good solution because Linux distributions may have older version of attrs (17.4.0 in Fedora 28), and requiring to build (and package) newer version just to use newer syntactic sugar in only one test is just too much. It's much better to fix that test to use older syntax. Signed-off-by: Oleg Girko <ol@infoserver.lv>
* run isortAmber Brown2018-07-091-4/+6
|
* Better testing framework for homeserver-using things (#3446)Amber Brown2018-06-271-0/+181