clean up flask --version code

This commit is contained in:
David Lord 2019-01-06 16:17:33 -08:00
parent 3fd51c65fb
commit a0ccc47780
No known key found for this signature in database
GPG key ID: 7A1C87E3F5BC42A8
3 changed files with 19 additions and 10 deletions

View file

@ -14,9 +14,12 @@ Unreleased
stricter about header encodings than PEP 3333. (`#2766`_) stricter about header encodings than PEP 3333. (`#2766`_)
- Allow custom CLIs using ``FlaskGroup`` to set the debug flag without - Allow custom CLIs using ``FlaskGroup`` to set the debug flag without
it always being overwritten based on environment variables. (`#2765`_) it always being overwritten based on environment variables. (`#2765`_)
- ``flask --version`` outputs Werkzeug's version and simplifies the
Python version. (`#2825`_)
.. _#2766: https://github.com/pallets/flask/issues/2766 .. _#2766: https://github.com/pallets/flask/issues/2766
.. _#2765: https://github.com/pallets/flask/pull/2765 .. _#2765: https://github.com/pallets/flask/pull/2765
.. _#2825: https://github.com/pallets/flask/pull/2825
Version 1.0.2 Version 1.0.2

View file

@ -14,6 +14,7 @@ from __future__ import print_function
import ast import ast
import inspect import inspect
import os import os
import platform
import re import re
import ssl import ssl
import sys import sys
@ -21,7 +22,6 @@ import traceback
from functools import update_wrapper from functools import update_wrapper
from operator import attrgetter from operator import attrgetter
from threading import Lock, Thread from threading import Lock, Thread
import werkzeug
import click import click
from werkzeug.utils import import_string from werkzeug.utils import import_string
@ -260,11 +260,16 @@ def locate_app(script_info, module_name, app_name, raise_if_not_found=True):
def get_version(ctx, param, value): def get_version(ctx, param, value):
if not value or ctx.resilient_parsing: if not value or ctx.resilient_parsing:
return return
message = 'Python %(python_version)s\nFlask %(version)s\nWerkzeug %(werkzeug_version)s' import werkzeug
message = (
'Python %(python)s\n'
'Flask %(flask)s\n'
'Werkzeug %(werkzeug)s'
)
click.echo(message % { click.echo(message % {
'version': __version__, 'python': platform.python_version(),
'python_version': sys.version, 'flask': __version__,
'werkzeug_version': werkzeug.__version__, 'werkzeug': werkzeug.__version__,
}, color=ctx.color) }, color=ctx.color)
ctx.exit() ctx.exit()

View file

@ -241,9 +241,9 @@ def test_locate_app_suppress_raise():
def test_get_version(test_apps, capsys): def test_get_version(test_apps, capsys):
"""Test of get_version.""" from flask import __version__ as flask_version
from flask import __version__ as flask_ver from werkzeug import __version__ as werkzeug_version
from sys import version as py_ver from platform import python_version
class MockCtx(object): class MockCtx(object):
resilient_parsing = False resilient_parsing = False
@ -254,8 +254,9 @@ def test_get_version(test_apps, capsys):
ctx = MockCtx() ctx = MockCtx()
get_version(ctx, None, "test") get_version(ctx, None, "test")
out, err = capsys.readouterr() out, err = capsys.readouterr()
assert flask_ver in out assert "Python " + python_version() in out
assert py_ver in out assert "Flask " + flask_version in out
assert "Werkzeug " + werkzeug_version in out
def test_scriptinfo(test_apps, monkeypatch): def test_scriptinfo(test_apps, monkeypatch):