From: CaselIT Date: Mon, 6 Apr 2020 18:51:22 +0000 (+0200) Subject: Add version to cli X-Git-Tag: rel_1_4_3~20^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6d769893d6ba6c74b979f0122a5d2ada81ab6714;p=thirdparty%2Fsqlalchemy%2Falembic.git Add version to cli Fixes: #677 Change-Id: Ic63204d7873bc15a3db1cc03629f122b4fa2cdd0 --- diff --git a/alembic/__init__.py b/alembic/__init__.py index 89a318b8..42b797c7 100644 --- a/alembic/__init__.py +++ b/alembic/__init__.py @@ -5,7 +5,7 @@ from . import op # noqa from .runtime import environment from .runtime import migration -__version__ = '1.4.3' +__version__ = "1.4.3" sys.modules["alembic.migration"] = migration sys.modules["alembic.environment"] = environment diff --git a/alembic/config.py b/alembic/config.py index f2c6ef90..6c9019de 100644 --- a/alembic/config.py +++ b/alembic/config.py @@ -3,6 +3,7 @@ import inspect import os import sys +from . import __version__ from . import command from . import util from .util import compat @@ -471,6 +472,9 @@ class CommandLine(object): parser = ArgumentParser(prog=prog) + parser.add_argument( + "--version", action="version", version="%%(prog)s %s" % __version__ + ) parser.add_argument( "-c", "--config", diff --git a/tests/test_command.py b/tests/test_command.py index da83da75..4102f29f 100644 --- a/tests/test_command.py +++ b/tests/test_command.py @@ -8,6 +8,7 @@ import re from sqlalchemy import exc as sqla_exc from sqlalchemy import text +from alembic import __version__ from alembic import command from alembic import config from alembic import testing @@ -16,6 +17,7 @@ from alembic.script import ScriptDirectory from alembic.testing import assert_raises from alembic.testing import assert_raises_message from alembic.testing import eq_ +from alembic.testing import is_true from alembic.testing import mock from alembic.testing.env import _get_staging_directory from alembic.testing.env import _no_sql_testing_config @@ -30,6 +32,7 @@ from alembic.testing.env import write_script from alembic.testing.fixtures import capture_context_buffer from alembic.testing.fixtures import capture_engine_context_buffer from alembic.testing.fixtures import TestBase +from alembic.util import compat class _BufMixin(object): @@ -1165,3 +1168,17 @@ class CommandLineTest(TestBase): mock.call().close(), ], ) + + def test_version_text(self): + buf = compat.StringIO() + to_mock = "sys.stdout" if util.compat.py3k else "sys.stderr" + + with mock.patch(to_mock, buf): + try: + config.CommandLine(prog="test_prog").main(argv=["--version"]) + assert False + except SystemExit: + pass + + is_true("test_prog" in str(buf.getvalue())) + is_true(__version__ in str(buf.getvalue()))