Commit graph

516 commits

Author SHA1 Message Date
David Lord
91e1437ba6 move json tests to separate file 2020-10-31 20:16:24 -07:00
Paul Sanders
106f6ba7e5 parametrize some tests (#3786) 2020-10-11 19:16:17 -07:00
Bogdan Opanchuk
849cf2c2a9 Break reference cycle created by default in Flask instances.
Flask instances with static folders were creating a reference cycle
via their "static" view function (which held a strong reference back
to the Flask instance to call its `send_static_file` method). This
prevented CPython from freeing the memory for a Flask instance
when all external references to it were released.

Now use a weakref for the back reference to avoid this.

Co-authored-by: Joshua Bronson <jab@users.noreply.github.com>
2020-10-03 10:05:05 -04:00
David Lord
8b9128ee06 cleaner message when CLI can't load app
When loading the app fails for the --help command, only the error
message is shown, then the help text. The full traceback is shown for
other exceptions. Also show the message when loading fails while
getting a command, instead of only "command not found". The error
message goes to stderr to match other error behavior, and is in red
with an extra newline to make it more obvious next to the help text.

Also fixes an issue with the test_apps fixture that caused an imported
app to still be importable after the test was over and the path was
reset. Now the module cache is reset as well.
2020-07-30 18:36:55 -07:00
David Lord
ee7d80bb55 Merge pull request #3699 from MartinThoma/style
remove unnecessary docstrings from tests
2020-07-28 19:44:23 -07:00
Martin Thoma
090c9e9a81 DOC: Remove unnecessary docstrings 2020-07-26 15:47:12 +02:00
Christopher Nguyen
95653896a4 change make_response to use headers.update 2020-07-23 16:53:39 -07:00
Joshua Bronson
06f7f34d76 Merge pull request #3560 from greyli/fix-env-chdir
Stop change CWD to .env/.flaskenv location
2020-07-18 13:14:09 -04:00
Joshua Bronson
f81846c68b Restore support for using pathlib.Path for static_folder.
* No longer causes AttributeError: 'PosixPath' object has no
  attribute 'rstrip'.

* This was broken by e6178fe489
  which was released in 1.1.2.

* Add a regression test that now passes.

See #3557.
2020-07-06 08:55:19 -04:00
Grey Li
62c582e19b Stop change CWD to .env/.flaskenv location 2020-07-05 09:37:03 +08:00
jackwardell
148c89bccd add assert message for errorhandler exception type 2020-04-16 10:49:42 -07:00
David Lord
042754ba4a use ast to parse FLASK_APP
enables keyword arguments to factory functions
2020-04-07 17:54:51 -07:00
David Lord
f2a8087cf5 deprecate passing script_info to factory 2020-04-07 15:54:36 -07:00
David Lord
1039d7834b deprecate JSON encoding options
make consistent with built-in json module
2020-04-07 12:32:27 -07:00
David Lord
187cfe90b8 remove simplejson
- remove encoding detection backport, json.loads supports it directly
- use str.translate instead of multiple str.replace
2020-04-07 09:55:39 -07:00
David Lord
296ef35943 remove unused module docstrings 2020-04-04 12:28:08 -07:00
David Lord
f5038c4c39 f-strings everywhere 2020-04-04 12:10:00 -07:00
David Lord
67bb43b738 apply pyupgrade 2020-04-04 12:10:00 -07:00
David Lord
1e5e3aae8a remove more compat code 2020-04-04 12:10:00 -07:00
David Lord
24723fa6e8 remove _compat module 2020-04-04 12:10:00 -07:00
David Lord
8cf6480f91 remove deprecated code 2020-04-04 12:10:00 -07:00
David Lord
8433de53c9 drop support for Python 2.7 and 3.5 2020-04-04 12:09:55 -07:00
David Lord
376a64137c Merge remote-tracking branch 'origin/1.1.x' 2020-02-15 10:40:32 -08:00
frostming
c4de6a0bfc strip the ending slash for static_url_path 2020-02-10 18:19:25 -08:00
David Lord
d1ffe44185 cli checks for cryptography library 2020-02-10 17:34:19 -08:00
Marc Hernandez Cabot
ed93b738ed fix docstring and remove redundant parentheses 2020-02-10 17:03:52 -08:00
raymond-devries
5ffacfc010 Feature request #3445. 2020-02-10 13:09:53 -08:00
David Lord
c5366e7e30 Merge branch '1.1.x' 2020-02-10 10:16:20 -08:00
David Lord
f2805605ca xfail __main__ instance test interacting with tox 2020-02-10 10:16:08 -08:00
Grey Li
66a28f0f28 Replace old pocoo links everywhere
pocco.org -> palletsprojects.com
2019-11-19 09:32:35 -08:00
David Lord
46c3d4656d send_file doesn't allow StringIO 2019-11-19 08:52:12 -08:00
David Lord
3996b7842e Merge remote-tracking branch 'origin/1.1.x' 2019-11-18 17:54:20 -08:00
Fernanda Guimarães
7806be9784 Test test_send_from_directory_bad_request no longer fails in Python 3.8. 2019-10-28 21:37:25 -03:00
pgjones
35627192e7 Support loading configuration from text files
TOML is a very popular format now, and is taking hold in the Python
ecosystem via pyproject.toml (among others). This allows toml config
files via,

    app.config.from_file("config.toml", toml.loads)

it also allows for any other file format whereby there is a loader
that takes a string and returns a mapping.
2019-10-18 09:15:47 -07:00
Doron Horwitz
940fa38c28 get_cookie_name in SessionInterface for easier overriding in SecureCookieSessionInterface 2019-10-12 19:12:27 -07:00
David Lord
f19014c7a1 restore and deprecate json_available 2019-07-08 10:26:12 -07:00
David Lord
e8b8fcbfd4 show warning for old logger config 2019-07-02 11:39:00 -07:00
David Lord
ba1fcd1887 use app.name as app.logger name 2019-07-01 14:56:18 -07:00
David Lord
1ee9405ff3 Merge branch '1.0.x' 2019-07-01 10:54:31 -07:00
Anthony Sottile
f65c6d3860 Fixes for PEP451 import loaders and pytest 5.x
- pytest 5.x drops python2 compatibility and therefore only implements PEP 451
- pytest 5.x made the repr of `ExcInfo` less confusing (fixed tests depending
  on the old format)
2019-07-01 10:43:06 -07:00
David Lord
7b4f294465 Merge branch '1.0.x' 2019-07-01 09:52:06 -07:00
Anthony Sottile
8c68190ed0 Make the changelog UTF-8 compatible 2019-07-01 07:36:20 -07:00
David Lord
158db956a3 send_file quotes ":/" in UTF-8 filename 2019-06-27 07:55:22 -07:00
David Lord
ff0c92a1c7 Merge branch '1.0.x' 2019-06-23 16:57:52 -07:00
David Lord
e066e9f9e3 standardize license and copyright 2019-06-22 13:09:09 -07:00
David Lord
6b4ca46a4a always pass InternalServerError instance to 500 handler 2019-06-19 14:52:25 -07:00
David Lord
4d904d4f29 move url matching after opening session 2019-06-13 12:40:01 -07:00
Elad Moshe
26cde0536c wait until app ctx is ready before matching url
`RequestContext.match_request` is moved from `__init__` to `push`. This
causes matching to happen later, when the app context is available.
This enables URL converters that use things such as the database.
2019-06-13 08:32:23 -07:00
David Lord
43f66251ad Merge branch '1.0.x' 2019-06-12 10:41:11 -07:00
David Lord
090bc4470e fix tests failing with server name warnings
After pallets/werkzeug#1577, mismatched configured and real server
names will show a warning in addition to raising 404. This caused
tests that did this deliberately to fail.

This patch removes the pytest fixture we were using to fail on
warnings, instead using the standard `-Werror` option. This speeds
up the tests by ~3x.
2019-06-10 14:05:33 -07:00