Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-Flask for openSUSE:Factory checked in at 2022-05-01 18:53:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-Flask (Old) and /work/SRC/openSUSE:Factory/.python-Flask.new.1538 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Flask" Sun May 1 18:53:24 2022 rev:30 rq:973776 version:2.1.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-Flask/python-Flask.changes 2022-04-23 19:45:36.786958132 +0200 +++ /work/SRC/openSUSE:Factory/.python-Flask.new.1538/python-Flask.changes 2022-05-01 18:53:30.559158546 +0200 @@ -1,0 +2,7 @@ +Thu Apr 28 18:49:06 UTC 2022 - Michael Str??der <mich...@stroeder.com> + +- Update to 2.1.2 + * Fix type annotation for json.loads, it accepts str or bytes. #4519 + * The --cert and --key options on flask run can be given in either order. #4459 + +------------------------------------------------------------------- Old: ---- Flask-2.1.1.tar.gz New: ---- Flask-2.1.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-Flask.spec ++++++ --- /var/tmp/diff_new_pack.0kSATi/_old 2022-05-01 18:53:30.991158947 +0200 +++ /var/tmp/diff_new_pack.0kSATi/_new 2022-05-01 18:53:30.995158951 +0200 @@ -27,7 +27,7 @@ %define skip_python36 1 %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-Flask -Version: 2.1.1 +Version: 2.1.2 Release: 0 Summary: A microframework based on Werkzeug, Jinja2 and good intentions License: BSD-3-Clause ++++++ Flask-2.1.1.tar.gz -> Flask-2.1.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-2.1.1/CHANGES.rst new/Flask-2.1.2/CHANGES.rst --- old/Flask-2.1.1/CHANGES.rst 2022-03-30 23:33:58.000000000 +0200 +++ new/Flask-2.1.2/CHANGES.rst 2022-04-28 19:46:50.000000000 +0200 @@ -1,5 +1,16 @@ .. currentmodule:: flask +Version 2.1.2 +------------- + +Released 2022-04-28 + +- Fix type annotation for ``json.loads``, it accepts str or bytes. + :issue:`4519` +- The ``--cert`` and ``--key`` options on ``flask run`` can be given + in either order. :issue:`4459` + + Version 2.1.1 ------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-2.1.1/PKG-INFO new/Flask-2.1.2/PKG-INFO --- old/Flask-2.1.1/PKG-INFO 2022-03-30 23:38:05.154076600 +0200 +++ new/Flask-2.1.2/PKG-INFO 2022-04-28 19:47:21.039193000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: Flask -Version: 2.1.1 +Version: 2.1.2 Summary: A simple framework for building complex web applications. Home-page: https://palletsprojects.com/p/flask Author: Armin Ronacher diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-2.1.1/docs/deploying/wsgi-standalone.rst new/Flask-2.1.2/docs/deploying/wsgi-standalone.rst --- old/Flask-2.1.1/docs/deploying/wsgi-standalone.rst 2022-03-15 14:12:23.000000000 +0100 +++ new/Flask-2.1.2/docs/deploying/wsgi-standalone.rst 2022-04-28 17:59:47.000000000 +0200 @@ -73,7 +73,7 @@ `uWSGI`_ is a fast application server written in C. It is very configurable, which makes it more complicated to setup than Gunicorn. It also provides many other utilities for writing robust web -applications. To run a Flask application, tell Gunicorn how to import +applications. To run a Flask application, tell uWSGI how to import your Flask app object. .. code-block:: text diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-2.1.1/docs/errorhandling.rst new/Flask-2.1.2/docs/errorhandling.rst --- old/Flask-2.1.1/docs/errorhandling.rst 2022-03-23 21:58:08.000000000 +0100 +++ new/Flask-2.1.2/docs/errorhandling.rst 2022-04-24 18:59:54.000000000 +0200 @@ -489,7 +489,7 @@ @app.errorhandler(InvalidAPIUsage) def invalid_api_usage(e): - return jsonify(e.to_dict()) + return jsonify(e.to_dict()), e.status_code # an API app route for getting user information # a correct request might be /api/user?user_id=420 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-2.1.1/docs/testing.rst new/Flask-2.1.2/docs/testing.rst --- old/Flask-2.1.1/docs/testing.rst 2022-03-15 14:12:23.000000000 +0100 +++ new/Flask-2.1.2/docs/testing.rst 2022-04-24 19:14:20.000000000 +0200 @@ -142,9 +142,9 @@ def test_edit_user(client): response = client.post("/user/2/edit", data={ - name="Flask", - theme="dark", - picture=(resources / "picture.png").open("rb"), + "name": "Flask", + "theme": "dark", + "picture": (resources / "picture.png").open("rb"), }) assert response.status_code == 200 @@ -265,10 +265,10 @@ click.echo(f"Hello, {name}!") def test_hello_command(runner): - result = runner.invoke(["hello"]) + result = runner.invoke(args="hello") assert "World" in result.output - result = runner.invoke(["hello", "--name", "Flask"]) + result = runner.invoke(args=["hello", "--name", "Flask"]) assert "Flask" in result.output diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-2.1.1/requirements/dev.txt new/Flask-2.1.2/requirements/dev.txt --- old/Flask-2.1.1/requirements/dev.txt 2022-03-15 14:12:23.000000000 +0100 +++ new/Flask-2.1.2/requirements/dev.txt 2022-04-28 17:59:47.000000000 +0200 @@ -10,31 +10,31 @@ -r typing.txt cfgv==3.3.1 # via pre-commit -click==8.0.3 +click==8.1.2 # via # pip-compile-multi # pip-tools distlib==0.3.4 # via virtualenv -filelock==3.4.2 +filelock==3.6.0 # via # tox # virtualenv greenlet==1.1.2 ; python_version < "3.11" # via -r requirements/tests.in -identify==2.4.8 +identify==2.5.0 # via pre-commit nodeenv==1.6.0 # via pre-commit pep517==0.12.0 # via pip-tools -pip-compile-multi==2.4.3 +pip-compile-multi==2.4.5 # via -r requirements/dev.in -pip-tools==6.5.1 +pip-tools==6.6.0 # via pip-compile-multi -platformdirs==2.4.1 +platformdirs==2.5.2 # via virtualenv -pre-commit==2.17.0 +pre-commit==2.18.1 # via -r requirements/dev.in pyyaml==6.0 # via pre-commit @@ -48,9 +48,9 @@ # tox toposort==1.7 # via pip-compile-multi -tox==3.24.5 +tox==3.25.0 # via -r requirements/dev.in -virtualenv==20.13.1 +virtualenv==20.14.1 # via # pre-commit # tox diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-2.1.1/requirements/docs.txt new/Flask-2.1.2/requirements/docs.txt --- old/Flask-2.1.1/requirements/docs.txt 2022-02-21 22:05:20.000000000 +0100 +++ new/Flask-2.1.2/requirements/docs.txt 2022-04-28 17:54:45.000000000 +0200 @@ -7,13 +7,13 @@ # alabaster==0.7.12 # via sphinx -babel==2.9.1 +babel==2.10.1 # via sphinx certifi==2021.10.8 # via requests -charset-normalizer==2.0.11 +charset-normalizer==2.0.12 # via requests -docutils==0.16 +docutils==0.17.1 # via # sphinx # sphinx-tabs @@ -21,9 +21,9 @@ # via requests imagesize==1.3.0 # via sphinx -jinja2==3.0.3 +jinja2==3.1.1 # via sphinx -markupsafe==2.0.1 +markupsafe==2.1.1 # via jinja2 packaging==21.3 # via @@ -31,19 +31,19 @@ # sphinx pallets-sphinx-themes==2.0.2 # via -r requirements/docs.in -pygments==2.11.2 +pygments==2.12.0 # via # sphinx # sphinx-tabs -pyparsing==3.0.7 +pyparsing==3.0.8 # via packaging -pytz==2021.3 +pytz==2022.1 # via babel requests==2.27.1 # via sphinx snowballstemmer==2.2.0 # via sphinx -sphinx==4.4.0 +sphinx==4.5.0 # via # -r requirements/docs.in # pallets-sphinx-themes @@ -52,7 +52,7 @@ # sphinxcontrib-log-cabinet sphinx-issues==3.0.1 # via -r requirements/docs.in -sphinx-tabs==3.2.0 +sphinx-tabs==3.3.1 # via -r requirements/docs.in sphinxcontrib-applehelp==1.0.2 # via sphinx @@ -68,5 +68,5 @@ # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -urllib3==1.26.8 +urllib3==1.26.9 # via requests diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-2.1.1/requirements/tests.txt new/Flask-2.1.2/requirements/tests.txt --- old/Flask-2.1.1/requirements/tests.txt 2022-03-15 14:12:23.000000000 +0100 +++ new/Flask-2.1.2/requirements/tests.txt 2022-04-28 17:54:58.000000000 +0200 @@ -21,11 +21,11 @@ # via pytest py==1.11.0 # via pytest -pyparsing==3.0.7 +pyparsing==3.0.8 # via packaging -pytest==7.0.0 +pytest==7.1.2 # via -r requirements/tests.in -python-dotenv==0.19.2 +python-dotenv==0.20.0 # via -r requirements/tests.in tomli==2.0.1 # via pytest diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-2.1.1/requirements/typing.txt new/Flask-2.1.2/requirements/typing.txt --- old/Flask-2.1.1/requirements/typing.txt 2022-02-21 22:05:20.000000000 +0100 +++ new/Flask-2.1.2/requirements/typing.txt 2022-04-28 17:59:47.000000000 +0200 @@ -7,9 +7,9 @@ # cffi==1.15.0 # via cryptography -cryptography==36.0.1 +cryptography==37.0.1 # via -r requirements/typing.in -mypy==0.931 +mypy==0.950 # via -r requirements/typing.in mypy-extensions==0.4.3 # via mypy @@ -17,11 +17,11 @@ # via cffi tomli==2.0.1 # via mypy -types-contextvars==2.4.2 +types-contextvars==2.4.5 # via -r requirements/typing.in -types-dataclasses==0.6.4 +types-dataclasses==0.6.5 # via -r requirements/typing.in -types-setuptools==57.4.9 +types-setuptools==57.4.14 # via -r requirements/typing.in -typing-extensions==4.0.1 +typing-extensions==4.2.0 # via mypy diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-2.1.1/src/Flask.egg-info/PKG-INFO new/Flask-2.1.2/src/Flask.egg-info/PKG-INFO --- old/Flask-2.1.1/src/Flask.egg-info/PKG-INFO 2022-03-30 23:38:04.000000000 +0200 +++ new/Flask-2.1.2/src/Flask.egg-info/PKG-INFO 2022-04-28 19:47:20.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: Flask -Version: 2.1.1 +Version: 2.1.2 Summary: A simple framework for building complex web applications. Home-page: https://palletsprojects.com/p/flask Author: Armin Ronacher diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-2.1.1/src/flask/__init__.py new/Flask-2.1.2/src/flask/__init__.py --- old/Flask-2.1.1/src/flask/__init__.py 2022-03-30 23:37:39.000000000 +0200 +++ new/Flask-2.1.2/src/flask/__init__.py 2022-04-28 19:46:50.000000000 +0200 @@ -42,4 +42,4 @@ from .templating import render_template as render_template from .templating import render_template_string as render_template_string -__version__ = "2.1.1" +__version__ = "2.1.2" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-2.1.1/src/flask/cli.py new/Flask-2.1.2/src/flask/cli.py --- old/Flask-2.1.1/src/flask/cli.py 2022-03-15 14:12:23.000000000 +0100 +++ new/Flask-2.1.2/src/flask/cli.py 2022-04-24 19:14:20.000000000 +0200 @@ -763,7 +763,10 @@ @click.option("--host", "-h", default="127.0.0.1", help="The interface to bind to.") @click.option("--port", "-p", default=5000, help="The port to bind to.") @click.option( - "--cert", type=CertParamType(), help="Specify a certificate file to use HTTPS." + "--cert", + type=CertParamType(), + help="Specify a certificate file to use HTTPS.", + is_eager=True, ) @click.option( "--key", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-2.1.1/src/flask/json/__init__.py new/Flask-2.1.2/src/flask/json/__init__.py --- old/Flask-2.1.1/src/flask/json/__init__.py 2022-03-15 14:12:23.000000000 +0100 +++ new/Flask-2.1.2/src/flask/json/__init__.py 2022-04-24 19:14:20.000000000 +0200 @@ -153,7 +153,11 @@ _json.dump(obj, fp, **kwargs) -def loads(s: str, app: t.Optional["Flask"] = None, **kwargs: t.Any) -> t.Any: +def loads( + s: t.Union[str, bytes], + app: t.Optional["Flask"] = None, + **kwargs: t.Any, +) -> t.Any: """Deserialize an object from a string of JSON. Takes the same arguments as the built-in :func:`json.loads`, with diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-2.1.1/tests/test_appctx.py new/Flask-2.1.2/tests/test_appctx.py --- old/Flask-2.1.1/tests/test_appctx.py 2022-02-21 22:05:20.000000000 +0100 +++ new/Flask-2.1.2/tests/test_appctx.py 2022-04-28 19:40:42.000000000 +0200 @@ -120,7 +120,7 @@ def index(): raise Exception("dummy") - with pytest.raises(Exception): + with pytest.raises(Exception, match="dummy"): with app.app_context(): client.get("/") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-2.1.1/tests/test_basic.py new/Flask-2.1.2/tests/test_basic.py --- old/Flask-2.1.1/tests/test_basic.py 2022-03-23 21:58:08.000000000 +0100 +++ new/Flask-2.1.2/tests/test_basic.py 2022-04-28 19:40:42.000000000 +0200 @@ -150,10 +150,7 @@ def test_disallow_string_for_allowed_methods(app): with pytest.raises(TypeError): - - @app.route("/", methods="GET POST") - def index(): - return "Hey" + app.add_url_rule("/", methods="GET POST", endpoint="test") def test_url_mapping(app, client): @@ -937,8 +934,9 @@ def broken_func(): raise KeyboardInterrupt() - with pytest.raises(KeyboardInterrupt): - client.get("/") + with client: + with pytest.raises(KeyboardInterrupt): + client.get("/") ctx = flask._request_ctx_stack.top assert ctx.preserved @@ -1243,20 +1241,25 @@ with pytest.raises(TypeError) as e: c.get("/none") - assert "returned None" in str(e.value) - assert "from_none" in str(e.value) + + assert "returned None" in str(e.value) + assert "from_none" in str(e.value) with pytest.raises(TypeError) as e: c.get("/small_tuple") - assert "tuple must have the form" in str(e.value) - pytest.raises(TypeError, c.get, "/large_tuple") + assert "tuple must have the form" in str(e.value) + + with pytest.raises(TypeError): + c.get("/large_tuple") with pytest.raises(TypeError) as e: c.get("/bad_type") - assert "it was a bool" in str(e.value) - pytest.raises(TypeError, c.get, "/bad_wsgi") + assert "it was a bool" in str(e.value) + + with pytest.raises(TypeError): + c.get("/bad_wsgi") def test_make_response(app, req_ctx): @@ -1674,11 +1677,9 @@ assert not app.got_first_request assert client.get("/").data == b"Awesome" - with pytest.raises(AssertionError) as e: - @app.route("/foo") - def broken(): - return "Meh" + with pytest.raises(AssertionError) as e: + app.add_url_rule("/foo", endpoint="late") assert "A setup function was called" in str(e.value) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-2.1.1/tests/test_cli.py new/Flask-2.1.2/tests/test_cli.py --- old/Flask-2.1.1/tests/test_cli.py 2022-03-15 14:12:23.000000000 +0100 +++ new/Flask-2.1.2/tests/test_cli.py 2022-04-28 19:40:42.000000000 +0200 @@ -7,7 +7,6 @@ import types from functools import partial from pathlib import Path -from unittest.mock import patch import click import pytest @@ -25,7 +24,6 @@ from flask.cli import get_version from flask.cli import load_dotenv from flask.cli import locate_app -from flask.cli import main as cli_main from flask.cli import NoAppException from flask.cli import prepare_import from flask.cli import run_command @@ -307,9 +305,9 @@ lazy = DispatchingApp(bad_load, use_eager_loading=False) - with pytest.raises(BadExc): - # reduce flakiness by waiting for the internal loading lock - with lazy._lock: + # reduce flakiness by waiting for the internal loading lock + with lazy._lock: + with pytest.raises(BadExc): lazy._flush_bg_loading_exception() @@ -555,9 +553,14 @@ with pytest.raises(click.BadParameter): run_command.make_context("run", ["--key", __file__]) + # cert specified first ctx = run_command.make_context("run", ["--cert", __file__, "--key", __file__]) assert ctx.params["cert"] == (__file__, __file__) + # key specified first + ctx = run_command.make_context("run", ["--key", __file__, "--cert", __file__]) + assert ctx.params["cert"] == (__file__, __file__) + def test_run_cert_adhoc(monkeypatch): monkeypatch.setitem(sys.modules, "cryptography", None) @@ -654,11 +657,3 @@ result = app.test_cli_runner().invoke(args=["blue", "--help"]) assert result.exit_code == 2, f"Unexpected success:\n\n{result.output}" - - -def test_click_7_deprecated(): - with patch("flask.cli.cli"): - if int(click.__version__[0]) < 8: - pytest.deprecated_call(cli_main, match=".* Click 7 is deprecated") - else: - cli_main() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-2.1.1/tests/test_config.py new/Flask-2.1.2/tests/test_config.py --- old/Flask-2.1.1/tests/test_config.py 2022-03-25 20:23:41.000000000 +0100 +++ new/Flask-2.1.2/tests/test_config.py 2022-04-28 19:40:42.000000000 +0200 @@ -133,9 +133,11 @@ def test_config_from_envvar(monkeypatch): monkeypatch.setattr("os.environ", {}) app = flask.Flask(__name__) + with pytest.raises(RuntimeError) as e: app.config.from_envvar("FOO_SETTINGS") - assert "'FOO_SETTINGS' is not set" in str(e.value) + + assert "'FOO_SETTINGS' is not set" in str(e.value) assert not app.config.from_envvar("FOO_SETTINGS", silent=True) monkeypatch.setattr( @@ -147,8 +149,8 @@ def test_config_from_envvar_missing(monkeypatch): monkeypatch.setattr("os.environ", {"FOO_SETTINGS": "missing.cfg"}) + app = flask.Flask(__name__) with pytest.raises(IOError) as e: - app = flask.Flask(__name__) app.config.from_envvar("FOO_SETTINGS") msg = str(e.value) assert msg.startswith(