diff --git a/CHANGES.rst b/CHANGES.rst index 0d96a61e71..68ef94fd2a 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -7,6 +7,8 @@ Unreleased - 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 --git a/src/flask/cli.py b/src/flask/cli.py index 972698dfa1..36c4f1b6dc 100644 --- a/src/flask/cli.py +++ b/src/flask/cli.py @@ -763,7 +763,10 @@ def convert(self, value, param, ctx): @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 --git a/tests/test_cli.py b/tests/test_cli.py index 6271c72a59..f9f3673a67 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -553,9 +553,14 @@ def test_run_cert_path(): 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)