Commit graph

240 commits

Author SHA1 Message Date
Devon Hudson
eda735e4bb
Remove support for python 3.8 ()
### Pull Request Checklist

<!-- Please read
https://element-hq.github.io/synapse/latest/development/contributing_guide.html
before submitting your pull request -->

* [X] Pull request is based on the develop branch
* [X] Pull request includes a [changelog
file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog).
The entry should:
- Be a short description of your change which makes sense to users.
"Fixed a bug that prevented receiving messages from other servers."
instead of "Moved X method from `EventStore` to `EventWorkerStore`.".
  - Use markdown where necessary, mostly for `code blocks`.
  - End with either a period (.) or an exclamation mark (!).
  - Start with a capital letter.
- Feel free to credit yourself, by adding a sentence "Contributed by
@github_username." or "Contributed by [Your Name]." to the end of the
entry.
* [X] [Code
style](https://element-hq.github.io/synapse/latest/code_style.html) is
correct
(run the
[linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters))

---------

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2024-11-06 19:36:01 +00:00
Shay
8f890447b0
Support MSC3916 by adding _matrix/client/v1/media/download endpoint () 2024-07-02 14:07:04 +01:00
Patrick Cloke
cc4fe68adf
Support reactor timing metric on more reactors. ()
Previously only Twisted's EPollReactor was compatible with the
reactor timing metric, notably not working when asyncio was used.

After this change, the following configurations support the reactor
timing metric:

* poll, epoll, or select reactors
* asyncio reactor with a poll, epoll, select, /dev/poll, or kqueue event loop.
2023-11-06 08:31:22 -05:00
Patrick Cloke
ab9c1e8f39
Add type hints to synmark. () 2023-10-04 13:53:04 -04:00
Patrick Cloke
ba48c563c9
Bump mypy from 1.4.1 to 1.5.1. () 2023-09-12 07:16:09 -04:00
Patrick Cloke
ed6de4b2d4
service-identity, incremental, and setuptools-rust now have type hints. () 2023-08-25 14:10:47 -04:00
David Robertson
47c629bb27
Attempt to fix twisted trunk () 2023-08-15 16:07:13 +00:00
Patrick Cloke
6f18812bb0
Add stubs package for lxml. ()
The stubs have some issues so this has some generous cast
and ignores in it, but it is better than not having stubs.

Note that confusing that Element is a function which creates
_Element instances (and similarly for Comment).
2023-05-31 17:06:57 +00:00
Patrick Cloke
c01343de43
Add stricter mypy options ()
Enable warn_unused_configs, strict_concatenate, disallow_subclassing_any,
and disallow_incomplete_defs.
2023-05-31 07:18:29 -04:00
Patrick Cloke
ca5c4be921
Add type hints to test_descriptors. ()
Require type hints in test_descriptors and add missing ones.
2023-05-24 14:18:52 +00:00
Eric Eastwood
7148c2a0d6
Run mypy type checking with the minimum supported Python version ()
We use the oldest Python version because later Python versions can include some overloads which don't work in the older versions which we still support.

We're using Python 3.8 instead of 3.7 which is our actual minimum support version because it's EOL is in a matter of weeks so can avoid the extra effort. And in any case, minimum Python 3.8 support is better than winging it on Python 3.11.
2023-05-16 13:27:47 -05:00
Patrick Cloke
6efa674004
Add type hints to schema deltas ()
Cleans-up the schema delta files:

* Removes no-op functions.
* Adds missing type hints to function parameters.
* Fixes any issues with type hints.

This also renames one (very old) schema delta to avoid a conflict
that mypy complains about.
2023-04-27 12:44:53 +00:00
Patrick Cloke
a346b43837
Check databases/__init__ and main/cache with mypy. () 2023-04-27 07:59:14 -04:00
Patrick Cloke
ea5c3ede4f
Finish type hints for federation client HTTP code. () 2023-04-24 13:12:06 -04:00
Patrick Cloke
3d060eae6c
Add missing type hints to synapse.storage.database. () 2023-03-09 07:10:09 -05:00
Patrick Cloke
e7c3832ba6
Pull in netaddr type hints. ()
And fix any issues from having those type hints.
2023-03-09 07:09:49 -05:00
Patrick Cloke
c369d82df0
Add missing type hints to InsecureInterceptableContextFactory. () 2023-02-28 10:17:55 -05:00
Patrick Cloke
c9b9143655
Fix-up type hints in tests/server.py. ()
This file was being ignored by mypy, we remove that
and add the missing type hints & deal with any fallout.
2023-02-17 18:19:38 +00:00
Patrick Cloke
42aea0d8af
Add final type hint to tests.unittest. ()
Adds a return type to HomeServerTestCase.make_homeserver and deal
with any variables which are no longer Any.
2023-02-14 14:03:35 -05:00
Patrick Cloke
733531ee3e
Add final type hint to synapse.server. () 2023-02-09 09:49:04 -05:00
David Robertson
7081bb56e2
Proper types for tests.module_api ()
* -> None for test methods

* A first batch of type fixes

* Introduce common parent test case

* Fixup that big test method

* tests.module_api passes mypy

* Changelog
2023-02-09 00:23:35 +00:00
Patrick Cloke
30509a1010
Add more missing type hints to tests. () 2023-02-08 16:29:49 -05:00
Patrick Cloke
4eed7b2ede
Add missing type hints to tests. () 2023-02-08 19:52:37 +00:00
Patrick Cloke
975f7ba904
Explicit disabling of disallowed_untyped_defs. ()
To make it easier to see which files still need to be fixed.
2023-02-08 18:49:18 +00:00
David Robertson
2dff93099b
Typecheck tests.rest.media.v1.test_media_storage ()
* Fix MediaStorage type hint

* Typecheck tests.rest.media.v1.test_media_storage

* Changelog

* Remove assert and make the comment succinct

* Fix syntax for olddeps
2023-02-07 15:24:44 +00:00
David Robertson
4dd2b6165c
Proper types for tests.test_terms_auth ()
* Proper types for tests.test_terms_auth

* Changelog
2023-02-07 12:03:39 +00:00
David Robertson
d0fed7a37b
Properly typecheck types.http ()
* 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>
2023-02-07 00:20:04 +00:00
Patrick Cloke
d0fa217cd9
Add missing types to test_state. () 2023-02-06 16:11:09 +00:00
David Robertson
0f34abed7c
Type hints for tests.federation ()
* Make tests.federation pass mypy

* Untyped defs in tests.federation.transport

* test methods return None

* Remaining type hints in tests.federation

* Changelog

* Avoid an uncessary type-ignore
2023-02-06 16:05:06 +00:00
Patrick Cloke
156cd88eef
Add missing type hints to tests.replication. () 2023-02-06 09:55:00 -05:00
David Robertson
b275763c65
Expect type stubs from canonicaljson ()
* canonicaljson has stubs now

since https://github.com/matrix-org/python-canonicaljson/pull/52

which is included in the lockfile version we use for type checking.

* Changelog
2023-02-06 12:54:11 +00:00
David Robertson
e8269ed391
Type hints for tests.appservice ()
* Accept a Sequence of events in synapse.appservice

This avoids some casts/ignores in the tests I'm about to fixup. It seems
that `List[Mock]` is not a subtype of `List[EventBase]`, but
`Sequence[Mock]` is a subtype of `Sequence[EventBase]`. So presumably
`Mock` is considered a subtype of anything, much like `Any`.

* make tests.appservice.test_scheduler pass mypy

* Extra hints in tests.appservice.test_scheduler

* Extra hints in tests.appservice.test_api

* Extra hints in tests.appservice.test_appservice

* Disallow untyped defs

* Changelog
2023-02-06 12:49:06 +00:00
David Robertson
6e6edea6c1
Properly typecheck tests.api () 2023-02-03 20:03:23 +00:00
David Robertson
e301ee6189
Properly typecheck tests.app ( 2023-02-03 19:22:40 +00:00
Patrick Cloke
fc35e0673f
Add missing type hints in tests ()
* FIx-up type hints in tests.logging.
* Add missing type hints to test_transactions.
2023-01-26 14:45:24 -05:00
Andrew Morgan
871ff05add
Fix type hints in typing edu unit tests () 2023-01-26 10:15:50 +00:00
Patrick Cloke
3c3ba31507
Add missing type hints for tests.events. () 2023-01-25 15:14:03 -05:00
Andrew Morgan
836c592f15
Fix type hints in knocking tests. () 2023-01-25 14:38:20 -05:00
Andrew Morgan
f075f6ae2b
Fix type hints for Monthly Active Users tests () 2023-01-22 10:50:14 +01:00
Andrew Morgan
8d90e5f200
Add type hints to TestRatelimiter () 2023-01-21 15:59:15 +00:00
Patrick Cloke
7f2cabf271
Fix-up type hints for tests.push module. () 2023-01-11 07:35:40 -05:00
Patrick Cloke
a4ca770655
Add missing type hints to tests. ()
Adds type hints to tests.metrics and tests.crypto.
2022-12-28 08:29:35 -05:00
Patrick Cloke
3aeca2588b
Add missing type hints to tests.config. () 2022-12-16 08:53:28 -05:00
Patrick Cloke
652d1669c5
Add missing type hints to tests.handlers. ()
And do not allow untyped defs in tests.handlers.
2022-12-16 11:53:01 +00:00
David Robertson
e2a1adbf5d
Allow selecting "prejoin" events by state keys ()
* Declare new config

* Parse new config

* Read new config

* Don't use trial/our TestCase where it's not needed

Before:

```
$ time trial tests/events/test_utils.py > /dev/null

real	0m2.277s
user	0m2.186s
sys	0m0.083s
```

After:
```
$ time trial tests/events/test_utils.py > /dev/null

real	0m0.566s
user	0m0.508s
sys	0m0.056s
```

* Helper to upsert to event fields

without exceeding size limits.

* Use helper when adding invite/knock state

Now that we allow admins to include events in prejoin room state with
arbitrary state keys, be a good Matrix citizen and ensure they don't
accidentally create an oversized event.

* Changelog

* Move StateFilter tests

should have done this in 

* Add extra methods to StateFilter

* Use StateFilter

* Ensure test file enforces typed defs; alphabetise

* Workaround surprising get_current_state_ids

* Whoops, fix mypy
2022-12-13 00:54:46 +00:00
David Robertson
3d87847ecc
Enable --warn-redundant-casts option in mypy ()
* Enable `--warn-redundant-casts` option in mypy

Doesn't do much but helps me sleep better at night.

* Changelog

* Fix name of the ignore

* Fix one more missed cast

Not sure why I didn't see this one locally, maybe I needed a poetry update

* Remove old comment

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2022-12-12 21:25:07 +00:00
Patrick Cloke
3ac412b4e2
Require types in tests.storage. ()
Adds missing type hints to `tests.storage` package
and does not allow untyped definitions.
2022-12-09 12:36:32 -05:00
Patrick Cloke
acea4d7a2f
Add missing types to tests.util. ()
Removes files under tests.util from the ignored by list, then
fully types all tests/util/*.py files.
2022-12-02 17:58:56 +00:00
Ashish Kumar
09de2aecb0
Add support for handling avatar with SSO login ()
This commit adds support for handling a provided avatar picture URL
when logging in via SSO.

Signed-off-by: Ashish Kumar <ashfame@users.noreply.github.com>

Fixes .
2022-11-25 15:16:50 +00:00
Patrick Cloke
4ae967cf63
Add missing type hints to test.util.caches () 2022-11-22 17:35:54 -05:00