Example generators are an addition to the 'Value' classes that allow the error handler to display
example values for the failed value.
For example if no django secret key is found to be defined in the environment, an example (secure)
value for such a secret key can now be generated on the fly and be suggested to the user
This introduces a function that wraps django entry points with an error
handler so that our own exception can be pretty-printed to an end-user
without a large stack-trace.
The defined error handler has also been applied to the existing
management, wsgi, asgi and fastcgi entry point definitions.
Previously and ImproperlyConfigured error was always raised when an invalid
default configured for the BooleanValue class.
This behavior is unnecessary if the default is never used because the
value is marked as environ_required.
The check has thus been adapted to ignore invalid defaults in that case.
This makes it easier to determine what exactly went wrong and thus build
better error handling in a later commit.
Tests were adapted accordingly to assert that only those specific errors
are raised instead of the plain ValueErrors.
ASGIHandler is considered a django internal api with get_asgi_application being the public counterpart.
get_asgi_application is also present since the introduction of django's asgi support so the ImportError should never occur anyways.
Then in your project's `asgi.py` file use this:
```python
from configurations.asgi import get_asgi_application
application = get_asgi_application()
```
Without this, using `configurations.setup()` after Django has been setup
already re-triggers the logging configuration, which then causes e.g.
pytest's caplog to not work anymore.
- Drop django==1.9 as it reached end of life
- Drop python2.6, python3.3, and bring python3.6
- Bring django-2.0 in the matrix as expected failure until we add its
support
As per [their blog post of the 27th April](https://blog.readthedocs.com/securing-subdomains/) ‘Securing subdomains’:
> Starting today, Read the Docs will start hosting projects from subdomains on the domain readthedocs.io, instead of on readthedocs.org. This change addresses some security concerns around site cookies while hosting user generated data on the same domain as our dashboard.
Test Plan: Manually visited all the links I’ve modified.