]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
Add version to cli
authorCaselIT <cfederico87@gmail.com>
Mon, 6 Apr 2020 18:51:22 +0000 (20:51 +0200)
committerCaselIT <cfederico87@gmail.com>
Mon, 6 Apr 2020 20:06:30 +0000 (22:06 +0200)
Fixes: #677
Change-Id: Ic63204d7873bc15a3db1cc03629f122b4fa2cdd0

alembic/__init__.py
alembic/config.py
tests/test_command.py

index 89a318b846b2c963b164d0c872dec0e602abdc31..42b797c70c157fa2d31df375b2a3bfb586c6d1b2 100644 (file)
@@ -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
index f2c6ef9084a4e12e72329fa858bd50024d4f0897..6c9019dea865e3ba5f9e939152f8e99ce62f32a4 100644 (file)
@@ -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",
index da83da7599d2945449e663016f750769e3c8b068..4102f29fe399cb955cc9204141410828c847246a 100644 (file)
@@ -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()))