D200: One-line docstring should fit on one line with quotes
D202: No blank lines allowed after function docstring
D204: 1 blank line required after docstring
D205: 1 blank line required between summary line and description
D209: Multi-line docstring closing quotes should be on a separate line
No occurances of any of these exist in Wagtail at the moment
- Add anyascii to replace unidecode
- Update wagtail.core.utils.string_to_ascii to use anyascii.
- Anyascii has a similar but not exactly the same encoding - see updates to tests.
Refs https://github.com/wagtail/wagtail/issues/3311
Fixes#6288
Many of the oembed endpoints currently listed with an http:// URL now redirect to https://. Changing these to https:// saves a redundant redirect and avoids failures where the http URL has been blocked (see #6288). Also simplified the patterns for matching http or https - the group in `http(?:s)?` is redundant and should just be `https?`.
There's currently a number of places where we test hooks by registering
hook functions from test methods. These are never cleaned up so that
hook remains registered in future tests. This can cause issues with
tests not working consistently when you run a subset of the tests.
This adds a `register_temporarily` function to the hooks module. This
function can be used either as a decorator or a context manager. It'll
always remove the hook after the decorated function or with block exits,
even if it exits through an exception.
The `{% icons %}` tag runs on every admin page render, and without caching, this will perform a template fetch for every .svg file - which is exceptionally slow on environments with shared filesystems (e.g. Vagrant). Adding this cache reduces the runtime of `wagtail.admin.tests.pages.test_create_page` from 89 to 57 seconds.
Strings inside `gettext` / `_(...)` need to be literals to be picked up by the translation framework, so format parameters should be outside the function - `_("Hello %s") % name` not `_("Hello %s" % name)`.
> DeprecationWarning: Using or importing the ABCs from 'collections'
> instead of from 'collections.abc' is deprecated since Python 3.3,
> and in 3.9 it will stop working