* Test cache argument of Request.get_json
* Ignore cache on request.get_json(cache=False) call
Removes usage of `_cached_json` property when `get_json` is called with
disabled cache argument. (closes#2087)
It is entirely sufficient to walk the MRO of the exception class, no need to check for classes re-appearing later on, no need to add the MRO of any superclass.
* Python refuses point-blank to create a class with a circular MRO.
* All classes in a superclass MRO *already* appear in the MRO of the derived type. Re-adding the contents of a superclass MRO is doing double work.
* Add init to FlaskClient
This addresses #1467. The init in the subclass
can now take in `environ_base`, which will then get
passed to `make_test_environ_builder` and to
`EnvironBuilder` via keyword args.
This should provide the default environment capability
on `app.test_client()` init.
* Add kwarg `environ_base` to `make_test_environ_builder` call
This change now passes `environ_base` from either
`kwargs` in `FlaskClient.open` or `FlaskClient.environ_base`
if passed into the init.
* Fix assignment reference typo
* Add default `environ_base` to `FlaskClient.__init__`
* Set default kwargs for `environ_base` in `FlaskClient.open`
* Remove specific environ_base kwarg since its in kwargs
* Add docstring to FlaskClient detailing environ_base
* Document app.test_client default environ in CHANGES
* Re-word environ_base changes in FlaskClient docstring
* Add client.environ_base tests
* Mention preset default environ in `app.test_client`
* Add versionchanged directive to docstring in FlaskClient
* Remove `-a/--app` from Quickstart documentation
As mentioned in #2009, simplifying the CLI saw the removal of the `-a/--app` flag. Therefore, the only way to specify the module to import is by setting `FLASK_APP`.
* Remove misleading `either` from CLI help
The CLI help details how to run the application, but still uses the phrasing "either through the `FLASK_APP`...". This likely is an artifact from when `-a/--app` was still present in the CLI.
When running `flask --help`, the printed string contains this:
> Example usage:
>
> set FLASK_APP=hello
> set FLASK_DEBUG=1
> flask run
but it actually only works with `set FLASK_APP=hello.py` so the help should be changed.
This is true on my Windows 7 Python 3.5 flask 0.11 setup.
When raising a DeprecationWarning, show the line in the application code
which caused the warning, rather than the line in Flask
e.g. a file `app.py` with:
```python
from flask import Flask
from flask.ext.babel import Babel
```
will show:
```
app.py:2: ExtDeprecationWarning: Importing flask.ext.babel is
deprecated, use flask_babel instead.
```
instead of:
```
/home/mapleoin/venv/local/lib/python2.7/site-packages/flask/exthook.py:71: ExtDeprecationWarning: Importing flask.ext.babel is deprecated, use flask_babel instead.
.format(x=modname), ExtDeprecationWarning
```