Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-Flask-Migrate for 
openSUSE:Factory checked in at 2021-07-23 23:41:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Flask-Migrate (Old)
 and      /work/SRC/openSUSE:Factory/.python-Flask-Migrate.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-Flask-Migrate"

Fri Jul 23 23:41:13 2021 rev:7 rq:907916 version:3.0.1

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-Flask-Migrate/python-Flask-Migrate.changes    
    2020-03-23 12:53:15.464058040 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-Flask-Migrate.new.1899/python-Flask-Migrate.changes
      2021-07-23 23:41:34.957802905 +0200
@@ -1,0 +2,25 @@
+Wed Jul 21 07:13:43 UTC 2021 - Antonio Larrosa <alarr...@suse.com>
+
+- Update to 3.0.1:
+  * Add support for Alchemical in addition to Flask-SQLAlchemy
+  * Remove Flask-Script references from the documentation
+
+- Changes from 3.0.0:
+  * Remove support for Flask-Script
+  * Use unittest testrunner
+  * Remove dependency on six package
+  * Added sphinx build files to .gitignore file
+  * Fix Sphinx warning
+
+- Changes from 2.7.0:
+  * Reuse engine from Flask-SQLAlchemy
+  * Update logging configuration to include Flask-Migrate's logger
+
+- Changes from 2.6.0:
+  * Removed deprecated --head-only option
+  * Initialize logger with a name
+  * Move import to the top in env.py file to avoid linter warnings
+  * Add a note to the documentation regarding logging
+  * Move builds to GitHub actions
+
+-------------------------------------------------------------------

Old:
----
  Flask-Migrate-2.5.3.tar.gz

New:
----
  Flask-Migrate-3.0.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-Flask-Migrate.spec ++++++
--- /var/tmp/diff_new_pack.Botri6/_old  2021-07-23 23:41:35.481802235 +0200
+++ /var/tmp/diff_new_pack.Botri6/_new  2021-07-23 23:41:35.485802230 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-Flask-Migrate
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %bcond_without python2
 Name:           python-Flask-Migrate
-Version:        2.5.3
+Version:        3.0.1
 Release:        0
 Summary:        SQLAlchemy database migrations for Flask applications using 
Alembic
 License:        MIT
@@ -27,7 +27,6 @@
 Source:         
https://files.pythonhosted.org/packages/source/F/Flask-Migrate/Flask-Migrate-%{version}.tar.gz
 BuildRequires:  %{python_module Flask >= 0.9}
 BuildRequires:  %{python_module Flask-SQLAlchemy >= 1.0}
-BuildRequires:  %{python_module Flask-Script >= 0.6}
 BuildRequires:  %{python_module alembic >= 0.7}
 BuildRequires:  %{python_module setuptools}
 %if %{with python2}
@@ -37,7 +36,6 @@
 BuildRequires:  python-rpm-macros
 Requires:       python-Flask >= 0.9
 Requires:       python-Flask-SQLAlchemy >= 1.0
-Requires:       python-Flask-Script >= 0.6
 Requires:       python-alembic >= 0.7
 BuildArch:      noarch
 %python_subpackages

++++++ Flask-Migrate-2.5.3.tar.gz -> Flask-Migrate-3.0.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/Flask_Migrate.egg-info/PKG-INFO 
new/Flask-Migrate-3.0.1/Flask_Migrate.egg-info/PKG-INFO
--- old/Flask-Migrate-2.5.3/Flask_Migrate.egg-info/PKG-INFO     2020-03-14 
11:04:08.000000000 +0100
+++ new/Flask-Migrate-3.0.1/Flask_Migrate.egg-info/PKG-INFO     2021-05-31 
01:09:32.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: Flask-Migrate
-Version: 2.5.3
+Version: 3.0.1
 Summary: SQLAlchemy database migrations for Flask applications using Alembic
 Home-page: http://github.com/miguelgrinberg/flask-migrate/
 Author: Miguel Grinberg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Flask-Migrate-2.5.3/Flask_Migrate.egg-info/SOURCES.txt 
new/Flask-Migrate-3.0.1/Flask_Migrate.egg-info/SOURCES.txt
--- old/Flask-Migrate-2.5.3/Flask_Migrate.egg-info/SOURCES.txt  2020-03-14 
11:04:08.000000000 +0100
+++ new/Flask-Migrate-3.0.1/Flask_Migrate.egg-info/SOURCES.txt  2021-05-31 
01:09:32.000000000 +0200
@@ -22,12 +22,12 @@
 flask_migrate/templates/flask-multidb/script.py.mako
 tests/__init__.py
 tests/app.py
+tests/app1.db
+tests/app2.db
 tests/app_compare_type1.py
 tests/app_compare_type2.py
 tests/app_custom_directory.py
 tests/app_custom_directory_path.py
 tests/app_multidb.py
 tests/test_migrate.py
-tests/test_migrate_flaskcli.py
-tests/test_multidb_migrate.py
-tests/test_multidb_migrate_flaskcli.py
\ No newline at end of file
+tests/test_multidb_migrate.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/PKG-INFO 
new/Flask-Migrate-3.0.1/PKG-INFO
--- old/Flask-Migrate-2.5.3/PKG-INFO    2020-03-14 11:04:08.327396900 +0100
+++ new/Flask-Migrate-3.0.1/PKG-INFO    2021-05-31 01:09:32.797726000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: Flask-Migrate
-Version: 2.5.3
+Version: 3.0.1
 Summary: SQLAlchemy database migrations for Flask applications using Alembic
 Home-page: http://github.com/miguelgrinberg/flask-migrate/
 Author: Miguel Grinberg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/README.md 
new/Flask-Migrate-3.0.1/README.md
--- old/Flask-Migrate-2.5.3/README.md   2019-12-08 18:39:20.000000000 +0100
+++ new/Flask-Migrate-3.0.1/README.md   2020-11-21 20:28:26.000000000 +0100
@@ -1,7 +1,7 @@
 Flask-Migrate
 =============
 
-[![Build 
Status](https://travis-ci.org/miguelgrinberg/Flask-Migrate.png?branch=master)](https://travis-ci.org/miguelgrinberg/Flask-Migrate)
+[![Build 
status](https://github.com/miguelgrinberg/flask-migrate/workflows/build/badge.svg)](https://github.com/miguelgrinberg/flask-migrate/actions)
 
 Flask-Migrate is an extension that handles SQLAlchemy database migrations for 
Flask applications using Alembic. The database operations are provided as 
command-line arguments under the `flask db` command.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/__version__ 
new/Flask-Migrate-3.0.1/__version__
--- old/Flask-Migrate-2.5.3/__version__ 2020-03-14 11:03:59.000000000 +0100
+++ new/Flask-Migrate-3.0.1/__version__ 2021-05-31 01:09:29.000000000 +0200
@@ -1 +1 @@
-2.5.3
+3.0.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/flask_migrate/__init__.py 
new/Flask-Migrate-3.0.1/flask_migrate/__init__.py
--- old/Flask-Migrate-2.5.3/flask_migrate/__init__.py   2020-03-14 
10:57:33.000000000 +0100
+++ new/Flask-Migrate-3.0.1/flask_migrate/__init__.py   2021-05-15 
16:27:37.000000000 +0200
@@ -4,17 +4,13 @@
 import os
 import sys
 from flask import current_app
-try:
-    from flask_script import Manager
-except ImportError:
-    Manager = None
 from alembic import __version__ as __alembic_version__
 from alembic.config import Config as AlembicConfig
 from alembic import command
 from alembic.util import CommandError
 
 alembic_version = tuple([int(v) for v in __alembic_version__.split('.')[0:3]])
-log = logging.getLogger()
+log = logging.getLogger(__name__)
 
 
 class _MigrateConfig(object):
@@ -54,8 +50,8 @@
         self.alembic_ctx_kwargs.update(kwargs)
         if not hasattr(app, 'extensions'):
             app.extensions = {}
-        app.extensions['migrate'] = _MigrateConfig(self, self.db,
-            **self.alembic_ctx_kwargs)
+        app.extensions['migrate'] = _MigrateConfig(
+            self, self.db, **self.alembic_ctx_kwargs)
 
     def configure(self, f):
         self.configure_callbacks.append(f)
@@ -100,25 +96,6 @@
     return wrapped
 
 
-if Manager is not None:
-    MigrateCommand = Manager(usage='Perform database migrations')
-else:
-    class FakeCommand(object):
-        def option(self, *args, **kwargs):
-            def decorator(f):
-                return f
-            return decorator
-
-    MigrateCommand = FakeCommand()
-
-
-@MigrateCommand.option('-d', '--directory', dest='directory', default=None,
-                       help=("Migration script directory (default is "
-                             "'migrations')"))
-@MigrateCommand.option('--multidb', dest='multidb', action='store_true',
-                       default=False,
-                       help=("Multiple databases migraton (default is "
-                             "False)"))
 @catch_errors
 def init(directory=None, multidb=False):
     """Creates a new migration repository"""
@@ -135,35 +112,6 @@
         command.init(config, directory, 'flask')
 
 
-@MigrateCommand.option('--rev-id', dest='rev_id', default=None,
-                       help=('Specify a hardcoded revision id instead of '
-                             'generating one'))
-@MigrateCommand.option('--version-path', dest='version_path', default=None,
-                       help=('Specify specific path from config for version '
-                             'file'))
-@MigrateCommand.option('--branch-label', dest='branch_label', default=None,
-                       help=('Specify a branch label to apply to the new '
-                             'revision'))
-@MigrateCommand.option('--splice', dest='splice', action='store_true',
-                       default=False,
-                       help=('Allow a non-head revision as the "head" to '
-                             'splice onto'))
-@MigrateCommand.option('--head', dest='head', default='head',
-                       help=('Specify head revision or <branchname>@head to '
-                             'base new revision on'))
-@MigrateCommand.option('--sql', dest='sql', action='store_true', default=False,
-                       help=("Don't emit SQL to database - dump to standard "
-                             "output instead"))
-@MigrateCommand.option('--autogenerate', dest='autogenerate',
-                       action='store_true', default=False,
-                       help=('Populate revision script with candidate '
-                             'migration operations, based on comparison of '
-                             'database to model'))
-@MigrateCommand.option('-m', '--message', dest='message', default=None,
-                       help='Revision message')
-@MigrateCommand.option('-d', '--directory', dest='directory', default=None,
-                       help=("Migration script directory (default is "
-                             "'migrations')"))
 @catch_errors
 def revision(directory=None, message=None, autogenerate=False, sql=False,
              head='head', splice=False, branch_label=None, version_path=None,
@@ -175,32 +123,6 @@
                      version_path=version_path, rev_id=rev_id)
 
 
-@MigrateCommand.option('--rev-id', dest='rev_id', default=None,
-                       help=('Specify a hardcoded revision id instead of '
-                             'generating one'))
-@MigrateCommand.option('--version-path', dest='version_path', default=None,
-                       help=('Specify specific path from config for version '
-                             'file'))
-@MigrateCommand.option('--branch-label', dest='branch_label', default=None,
-                       help=('Specify a branch label to apply to the new '
-                             'revision'))
-@MigrateCommand.option('--splice', dest='splice', action='store_true',
-                       default=False,
-                       help=('Allow a non-head revision as the "head" to '
-                             'splice onto'))
-@MigrateCommand.option('--head', dest='head', default='head',
-                       help=('Specify head revision or <branchname>@head to '
-                             'base new revision on'))
-@MigrateCommand.option('--sql', dest='sql', action='store_true', default=False,
-                       help=("Don't emit SQL to database - dump to standard "
-                             "output instead"))
-@MigrateCommand.option('-m', '--message', dest='message', default=None)
-@MigrateCommand.option('-d', '--directory', dest='directory', default=None,
-                       help=("Migration script directory (default is "
-                             "'migrations')"))
-@MigrateCommand.option('-x', '--x-arg', dest='x_arg', default=None,
-                       action='append', help=("Additional arguments consumed "
-                                              "by custom env.py scripts"))
 @catch_errors
 def migrate(directory=None, message=None, sql=False, head='head', splice=False,
             branch_label=None, version_path=None, rev_id=None, x_arg=None):
@@ -212,11 +134,6 @@
                      version_path=version_path, rev_id=rev_id)
 
 
-@MigrateCommand.option('revision', nargs='?', default='head',
-                       help="revision identifier")
-@MigrateCommand.option('-d', '--directory', dest='directory', default=None,
-                       help=("Migration script directory (default is "
-                             "'migrations')"))
 @catch_errors
 def edit(directory=None, revision='current'):
     """Edit current revision."""
@@ -228,18 +145,6 @@
         raise RuntimeError('Alembic 0.8.0 or greater is required')
 
 
-@MigrateCommand.option('--rev-id', dest='rev_id', default=None,
-                       help=('Specify a hardcoded revision id instead of '
-                             'generating one'))
-@MigrateCommand.option('--branch-label', dest='branch_label', default=None,
-                       help=('Specify a branch label to apply to the new '
-                             'revision'))
-@MigrateCommand.option('-m', '--message', dest='message', default=None)
-@MigrateCommand.option('revisions', nargs='+',
-                       help='one or more revisions, or "heads" for all heads')
-@MigrateCommand.option('-d', '--directory', dest='directory', default=None,
-                       help=("Migration script directory (default is "
-                             "'migrations')"))
 @catch_errors
 def merge(directory=None, revisions='', message=None, branch_label=None,
           rev_id=None):
@@ -249,20 +154,6 @@
                   branch_label=branch_label, rev_id=rev_id)
 
 
-@MigrateCommand.option('--tag', dest='tag', default=None,
-                       help=("Arbitrary 'tag' name - can be used by custom "
-                             "env.py scripts"))
-@MigrateCommand.option('--sql', dest='sql', action='store_true', default=False,
-                       help=("Don't emit SQL to database - dump to standard "
-                             "output instead"))
-@MigrateCommand.option('revision', nargs='?', default='head',
-                       help="revision identifier")
-@MigrateCommand.option('-d', '--directory', dest='directory', default=None,
-                       help=("Migration script directory (default is "
-                             "'migrations')"))
-@MigrateCommand.option('-x', '--x-arg', dest='x_arg', default=None,
-                       action='append', help=("Additional arguments consumed "
-                                              "by custom env.py scripts"))
 @catch_errors
 def upgrade(directory=None, revision='head', sql=False, tag=None, x_arg=None):
     """Upgrade to a later version"""
@@ -271,20 +162,6 @@
     command.upgrade(config, revision, sql=sql, tag=tag)
 
 
-@MigrateCommand.option('--tag', dest='tag', default=None,
-                       help=("Arbitrary 'tag' name - can be used by custom "
-                             "env.py scripts"))
-@MigrateCommand.option('--sql', dest='sql', action='store_true', default=False,
-                       help=("Don't emit SQL to database - dump to standard "
-                             "output instead"))
-@MigrateCommand.option('revision', nargs='?', default="-1",
-                       help="revision identifier")
-@MigrateCommand.option('-d', '--directory', dest='directory', default=None,
-                       help=("Migration script directory (default is "
-                             "'migrations')"))
-@MigrateCommand.option('-x', '--x-arg', dest='x_arg', default=None,
-                       action='append', help=("Additional arguments consumed "
-                                              "by custom env.py scripts"))
 @catch_errors
 def downgrade(directory=None, revision='-1', sql=False, tag=None, x_arg=None):
     """Revert to a previous version"""
@@ -295,11 +172,6 @@
     command.downgrade(config, revision, sql=sql, tag=tag)
 
 
-@MigrateCommand.option('revision', nargs='?', default="head",
-                       help="revision identifier")
-@MigrateCommand.option('-d', '--directory', dest='directory', default=None,
-                       help=("Migration script directory (default is "
-                             "'migrations')"))
 @catch_errors
 def show(directory=None, revision='head'):
     """Show the revision denoted by the given symbol."""
@@ -307,33 +179,18 @@
     command.show(config, revision)
 
 
-@MigrateCommand.option('-i', '--indicate-current', dest='indicate_current', 
action='store_true',
-                       default=False, help='Indicate current version (Alembic 
0.9.9 or greater is required)')
-@MigrateCommand.option('-v', '--verbose', dest='verbose', action='store_true',
-                       default=False, help='Use more verbose output')
-@MigrateCommand.option('-r', '--rev-range', dest='rev_range', default=None,
-                       help='Specify a revision range; format is 
[start]:[end]')
-@MigrateCommand.option('-d', '--directory', dest='directory', default=None,
-                       help=("Migration script directory (default is "
-                             "'migrations')"))
 @catch_errors
-def history(directory=None, rev_range=None, verbose=False, 
indicate_current=False):
+def history(directory=None, rev_range=None, verbose=False,
+            indicate_current=False):
     """List changeset scripts in chronological order."""
     config = current_app.extensions['migrate'].migrate.get_config(directory)
     if alembic_version >= (0, 9, 9):
-        command.history(config, rev_range, verbose=verbose, 
indicate_current=indicate_current)
+        command.history(config, rev_range, verbose=verbose,
+                        indicate_current=indicate_current)
     else:
         command.history(config, rev_range, verbose=verbose)
 
 
-@MigrateCommand.option('--resolve-dependencies', dest='resolve_dependencies',
-                       action='store_true', default=False,
-                       help='Treat dependency versions as down revisions')
-@MigrateCommand.option('-v', '--verbose', dest='verbose', action='store_true',
-                       default=False, help='Use more verbose output')
-@MigrateCommand.option('-d', '--directory', dest='directory', default=None,
-                       help=("Migration script directory (default is "
-                             "'migrations')"))
 @catch_errors
 def heads(directory=None, verbose=False, resolve_dependencies=False):
     """Show current available heads in the script directory"""
@@ -342,11 +199,6 @@
                   resolve_dependencies=resolve_dependencies)
 
 
-@MigrateCommand.option('-v', '--verbose', dest='verbose', action='store_true',
-                       default=False, help='Use more verbose output')
-@MigrateCommand.option('-d', '--directory', dest='directory', default=None,
-                       help=("Migration script directory (default is "
-                             "'migrations')"))
 @catch_errors
 def branches(directory=None, verbose=False):
     """Show current branch points"""
@@ -354,31 +206,13 @@
     command.branches(config, verbose=verbose)
 
 
-@MigrateCommand.option('--head-only', dest='head_only', action='store_true',
-                       default=False,
-                       help='Deprecated. Use --verbose for additional output')
-@MigrateCommand.option('-v', '--verbose', dest='verbose', action='store_true',
-                       default=False, help='Use more verbose output')
-@MigrateCommand.option('-d', '--directory', dest='directory', default=None,
-                       help=("Migration script directory (default is "
-                             "'migrations')"))
 @catch_errors
-def current(directory=None, verbose=False, head_only=False):
+def current(directory=None, verbose=False):
     """Display the current revision for each database."""
     config = current_app.extensions['migrate'].migrate.get_config(directory)
-    command.current(config, verbose=verbose, head_only=head_only)
+    command.current(config, verbose=verbose)
 
 
-@MigrateCommand.option('--tag', dest='tag', default=None,
-                       help=("Arbitrary 'tag' name - can be used by custom "
-                             "env.py scripts"))
-@MigrateCommand.option('--sql', dest='sql', action='store_true', default=False,
-                       help=("Don't emit SQL to database - dump to standard "
-                             "output instead"))
-@MigrateCommand.option('revision', default=None, help="revision identifier")
-@MigrateCommand.option('-d', '--directory', dest='directory', default=None,
-                       help=("Migration script directory (default is "
-                             "'migrations')"))
 @catch_errors
 def stamp(directory=None, revision='head', sql=False, tag=None):
     """'stamp' the revision table with the given revision; don't run any
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/flask_migrate/cli.py 
new/Flask-Migrate-3.0.1/flask_migrate/cli.py
--- old/Flask-Migrate-2.5.3/flask_migrate/cli.py        2019-12-08 
18:39:20.000000000 +0100
+++ new/Flask-Migrate-3.0.1/flask_migrate/cli.py        2021-01-19 
12:25:54.000000000 +0100
@@ -14,6 +14,7 @@
 from flask_migrate import current as _current
 from flask_migrate import stamp as _stamp
 
+
 @click.group()
 def db():
     """Perform database migrations."""
@@ -85,7 +86,8 @@
 @with_appcontext
 def migrate(directory, message, sql, head, splice, branch_label, version_path,
             rev_id, x_arg):
-    """Autogenerate a new revision file (Alias for 'revision 
--autogenerate')"""
+    """Autogenerate a new revision file (Alias for
+    'revision --autogenerate')"""
     _migrate(directory, message, sql, head, splice, branch_label, version_path,
              rev_id, x_arg)
 
@@ -168,7 +170,9 @@
 @click.option('-r', '--rev-range', default=None,
               help='Specify a revision range; format is [start]:[end]')
 @click.option('-v', '--verbose', is_flag=True, help='Use more verbose output')
-@click.option('-i', '--indicate-current', is_flag=True, help='Indicate current 
version (Alembic 0.9.9 or greater is required)')
+@click.option('-i', '--indicate-current', is_flag=True,
+              help=('Indicate current version (Alembic 0.9.9 or greater is '
+                    'required)'))
 @with_appcontext
 def history(directory, rev_range, verbose, indicate_current):
     """List changeset scripts in chronological order."""
@@ -201,12 +205,10 @@
 @click.option('-d', '--directory', default=None,
               help=('Migration script directory (default is "migrations")'))
 @click.option('-v', '--verbose', is_flag=True, help='Use more verbose output')
-@click.option('--head-only', is_flag=True,
-              help='Deprecated. Use --verbose for additional output')
 @with_appcontext
-def current(directory, verbose, head_only):
+def current(directory, verbose):
     """Display the current revision for each database."""
-    _current(directory, verbose, head_only)
+    _current(directory, verbose)
 
 
 @db.command()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Flask-Migrate-2.5.3/flask_migrate/templates/flask/alembic.ini.mako 
new/Flask-Migrate-3.0.1/flask_migrate/templates/flask/alembic.ini.mako
--- old/Flask-Migrate-2.5.3/flask_migrate/templates/flask/alembic.ini.mako      
2019-12-08 18:39:20.000000000 +0100
+++ new/Flask-Migrate-3.0.1/flask_migrate/templates/flask/alembic.ini.mako      
2021-02-12 11:35:50.000000000 +0100
@@ -11,7 +11,7 @@
 
 # Logging configuration
 [loggers]
-keys = root,sqlalchemy,alembic
+keys = root,sqlalchemy,alembic,flask_migrate
 
 [handlers]
 keys = console
@@ -34,6 +34,11 @@
 handlers =
 qualname = alembic
 
+[logger_flask_migrate]
+level = INFO
+handlers =
+qualname = flask_migrate
+
 [handler_console]
 class = StreamHandler
 args = (sys.stderr,)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Flask-Migrate-2.5.3/flask_migrate/templates/flask/env.py 
new/Flask-Migrate-3.0.1/flask_migrate/templates/flask/env.py
--- old/Flask-Migrate-2.5.3/flask_migrate/templates/flask/env.py        
2019-12-08 18:39:20.000000000 +0100
+++ new/Flask-Migrate-3.0.1/flask_migrate/templates/flask/env.py        
2021-05-31 01:07:20.000000000 +0200
@@ -3,8 +3,7 @@
 import logging
 from logging.config import fileConfig
 
-from sqlalchemy import engine_from_config
-from sqlalchemy import pool
+from flask import current_app
 
 from alembic import context
 
@@ -21,10 +20,10 @@
 # for 'autogenerate' support
 # from myapp import mymodel
 # target_metadata = mymodel.Base.metadata
-from flask import current_app
 config.set_main_option(
     'sqlalchemy.url',
-    str(current_app.extensions['migrate'].db.engine.url).replace('%', '%%'))
+    str(current_app.extensions['migrate'].db.get_engine().url).replace(
+        '%', '%%'))
 target_metadata = current_app.extensions['migrate'].db.metadata
 
 # other values from the config, defined by the needs of env.py,
@@ -72,11 +71,7 @@
                 directives[:] = []
                 logger.info('No changes in schema detected.')
 
-    connectable = engine_from_config(
-        config.get_section(config.config_ini_section),
-        prefix='sqlalchemy.',
-        poolclass=pool.NullPool,
-    )
+    connectable = current_app.extensions['migrate'].db.get_engine()
 
     with connectable.connect() as connection:
         context.configure(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Flask-Migrate-2.5.3/flask_migrate/templates/flask-multidb/alembic.ini.mako 
new/Flask-Migrate-3.0.1/flask_migrate/templates/flask-multidb/alembic.ini.mako
--- 
old/Flask-Migrate-2.5.3/flask_migrate/templates/flask-multidb/alembic.ini.mako  
    2019-12-08 18:39:20.000000000 +0100
+++ 
new/Flask-Migrate-3.0.1/flask_migrate/templates/flask-multidb/alembic.ini.mako  
    2021-02-12 11:35:58.000000000 +0100
@@ -11,7 +11,7 @@
 
 # Logging configuration
 [loggers]
-keys = root,sqlalchemy,alembic
+keys = root,sqlalchemy,alembic,flask_migrate
 
 [handlers]
 keys = console
@@ -34,6 +34,11 @@
 handlers =
 qualname = alembic
 
+[logger_flask_migrate]
+level = INFO
+handlers =
+qualname = flask_migrate
+
 [handler_console]
 class = StreamHandler
 args = (sys.stderr,)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Flask-Migrate-2.5.3/flask_migrate/templates/flask-multidb/env.py 
new/Flask-Migrate-3.0.1/flask_migrate/templates/flask-multidb/env.py
--- old/Flask-Migrate-2.5.3/flask_migrate/templates/flask-multidb/env.py        
2019-12-08 18:39:20.000000000 +0100
+++ new/Flask-Migrate-3.0.1/flask_migrate/templates/flask-multidb/env.py        
2021-05-31 01:07:04.000000000 +0200
@@ -2,11 +2,8 @@
 
 import logging
 from logging.config import fileConfig
-import re
 
-from sqlalchemy import engine_from_config
 from sqlalchemy import MetaData
-from sqlalchemy import pool
 from flask import current_app
 
 from alembic import context
@@ -28,14 +25,20 @@
 # target_metadata = mymodel.Base.metadata
 config.set_main_option(
     'sqlalchemy.url',
-    str(current_app.extensions['migrate'].db.engine.url).replace('%', '%%'))
-bind_names = []
-for bind in current_app.config.get("SQLALCHEMY_BINDS"):
+    str(current_app.extensions['migrate'].db.get_engine().url).replace(
+        '%', '%%'))
+if current_app.config.get('SQLALCHEMY_BINDS') is not None:
+    bind_names = list(current_app.config['SQLALCHEMY_BINDS'].keys())
+else:
+    get_bind_names = getattr(current_app.extensions['migrate'].db,
+                             'bind_names', None)
+    if get_bind_names:
+        bind_names = get_bind_names()
+for bind in bind_names:
     context.config.set_section_option(
         bind, "sqlalchemy.url",
         str(current_app.extensions['migrate'].db.get_engine(
-            current_app, bind).url).replace('%', '%%'))
-    bind_names.append(bind)
+            bind=bind).url).replace('%', '%%'))
 target_metadata = current_app.extensions['migrate'].db.metadata
 
 
@@ -121,20 +124,12 @@
     # for the direct-to-DB use case, start a transaction on all
     # engines, then run all migrations, then commit all transactions.
     engines = {
-        '': {
-            'engine': engine_from_config(
-                config.get_section(config.config_ini_section),
-                prefix='sqlalchemy.',
-                poolclass=pool.NullPool,
-            )
-        }
+        '': {'engine': current_app.extensions['migrate'].db.get_engine()}
     }
     for name in bind_names:
         engines[name] = rec = {}
-        rec['engine'] = engine_from_config(
-            context.config.get_section(name),
-            prefix='sqlalchemy.',
-            poolclass=pool.NullPool)
+        rec['engine'] = current_app.extensions['migrate'].db.get_engine(
+            bind=name)
 
     for name, rec in engines.items():
         engine = rec['engine']
@@ -164,7 +159,7 @@
 
         for rec in engines.values():
             rec['transaction'].commit()
-    except:
+    except:  # noqa: E722
         for rec in engines.values():
             rec['transaction'].rollback()
         raise
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Flask-Migrate-2.5.3/flask_migrate/templates/flask-multidb/script.py.mako 
new/Flask-Migrate-3.0.1/flask_migrate/templates/flask-multidb/script.py.mako
--- 
old/Flask-Migrate-2.5.3/flask_migrate/templates/flask-multidb/script.py.mako    
    2019-12-08 18:39:20.000000000 +0100
+++ 
new/Flask-Migrate-3.0.1/flask_migrate/templates/flask-multidb/script.py.mako    
    2021-05-31 01:05:12.000000000 +0200
@@ -28,7 +28,13 @@
 
 <%
     from flask import current_app
-    db_names = [''] + list(current_app.config.get("SQLALCHEMY_BINDS").keys())
+    if current_app.config.get('SQLALCHEMY_BINDS') is not None:
+        bind_names = list(current_app.config['SQLALCHEMY_BINDS'].keys())
+    else:
+        get_bind_names = getattr(current_app.extensions['migrate'].db, 
'bind_names', None)
+        if get_bind_names:
+            bind_names = get_bind_names()
+    db_names = [''] + bind_names
 %>
 
 ## generate an "upgrade_<xyz>() / downgrade_<xyz>()" function
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/setup.py 
new/Flask-Migrate-3.0.1/setup.py
--- old/Flask-Migrate-2.5.3/setup.py    2019-12-08 18:39:20.000000000 +0100
+++ new/Flask-Migrate-3.0.1/setup.py    2021-05-15 16:17:04.000000000 +0200
@@ -28,15 +28,11 @@
         'Flask-SQLAlchemy>=1.0',
         'alembic>=0.7'
     ],
-    tests_require=[
-        'Flask-Script>=0.6'
-    ],
     entry_points={
         'flask.commands': [
             'db=flask_migrate.cli:db'
         ],
     },
-    test_suite="tests",
     classifiers=[
         'Environment :: Web Environment',
         'Intended Audience :: Developers',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/tests/__init__.py 
new/Flask-Migrate-3.0.1/tests/__init__.py
--- old/Flask-Migrate-2.5.3/tests/__init__.py   2019-12-08 18:39:20.000000000 
+0100
+++ new/Flask-Migrate-3.0.1/tests/__init__.py   2020-11-21 20:28:26.000000000 
+0100
@@ -1 +0,0 @@
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/tests/app.py 
new/Flask-Migrate-3.0.1/tests/app.py
--- old/Flask-Migrate-2.5.3/tests/app.py        2019-12-12 00:11:30.000000000 
+0100
+++ new/Flask-Migrate-3.0.1/tests/app.py        2021-05-15 16:37:25.000000000 
+0200
@@ -1,8 +1,7 @@
 #!/bin/env python
 from flask import Flask
 from flask_sqlalchemy import SQLAlchemy
-from flask_script import Manager
-from flask_migrate import Migrate, MigrateCommand
+from flask_migrate import Migrate
 
 app = Flask(__name__)
 app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
@@ -11,20 +10,18 @@
 db = SQLAlchemy(app)
 migrate = Migrate(app, db)
 
-manager = Manager(app)
-manager.add_command('db', MigrateCommand)
-
 
 class User(db.Model):
     id = db.Column(db.Integer, primary_key=True)
     name = db.Column(db.String(128))
 
 
-@manager.command
+@app.cli.command()
 def add():
+    """Add test user."""
     db.session.add(User(name='test'))
     db.session.commit()
 
 
 if __name__ == '__main__':
-    manager.run()
+    app.run()
Binary files old/Flask-Migrate-2.5.3/tests/app1.db and 
new/Flask-Migrate-3.0.1/tests/app1.db differ
Binary files old/Flask-Migrate-2.5.3/tests/app2.db and 
new/Flask-Migrate-3.0.1/tests/app2.db differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/tests/app_compare_type1.py 
new/Flask-Migrate-3.0.1/tests/app_compare_type1.py
--- old/Flask-Migrate-2.5.3/tests/app_compare_type1.py  2019-12-08 
18:39:20.000000000 +0100
+++ new/Flask-Migrate-3.0.1/tests/app_compare_type1.py  2021-05-15 
16:33:41.000000000 +0200
@@ -1,7 +1,6 @@
 from flask import Flask
 from flask_sqlalchemy import SQLAlchemy
-from flask_script import Manager
-from flask_migrate import Migrate, MigrateCommand
+from flask_migrate import Migrate
 
 app = Flask(__name__)
 app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
@@ -10,13 +9,11 @@
 db = SQLAlchemy(app)
 migrate = Migrate(app, db, compare_type=True)
 
-manager = Manager(app)
-manager.add_command('db', MigrateCommand)
-
 
 class User(db.Model):
     id = db.Column(db.Integer, primary_key=True)
     name = db.Column(db.String(128))
 
+
 if __name__ == '__main__':
-    manager.run()
+    app.run()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/tests/app_compare_type2.py 
new/Flask-Migrate-3.0.1/tests/app_compare_type2.py
--- old/Flask-Migrate-2.5.3/tests/app_compare_type2.py  2019-12-08 
18:39:20.000000000 +0100
+++ new/Flask-Migrate-3.0.1/tests/app_compare_type2.py  2021-05-15 
16:33:58.000000000 +0200
@@ -1,7 +1,6 @@
 from flask import Flask
 from flask_sqlalchemy import SQLAlchemy
-from flask_script import Manager
-from flask_migrate import Migrate, MigrateCommand
+from flask_migrate import Migrate
 
 app = Flask(__name__)
 app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
@@ -10,13 +9,11 @@
 db = SQLAlchemy(app)
 migrate = Migrate(app, db, compare_type=True)
 
-manager = Manager(app)
-manager.add_command('db', MigrateCommand)
-
 
 class User(db.Model):
     id = db.Column(db.Integer, primary_key=True)
     name = db.Column(db.String(10))
 
+
 if __name__ == '__main__':
-    manager.run()
+    app.run()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/tests/app_custom_directory.py 
new/Flask-Migrate-3.0.1/tests/app_custom_directory.py
--- old/Flask-Migrate-2.5.3/tests/app_custom_directory.py       2019-12-12 
00:11:34.000000000 +0100
+++ new/Flask-Migrate-3.0.1/tests/app_custom_directory.py       2021-05-15 
16:37:20.000000000 +0200
@@ -1,7 +1,6 @@
 from flask import Flask
 from flask_sqlalchemy import SQLAlchemy
-from flask_script import Manager
-from flask_migrate import Migrate, MigrateCommand
+from flask_migrate import Migrate
 
 app = Flask(__name__)
 app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
@@ -10,20 +9,18 @@
 db = SQLAlchemy(app)
 migrate = Migrate(app, db, directory='temp_folder/temp_migrations')
 
-manager = Manager(app)
-manager.add_command('db', MigrateCommand)
-
 
 class User(db.Model):
     id = db.Column(db.Integer, primary_key=True)
     name = db.Column(db.String(128))
 
 
-@manager.command
+@app.cli.command()
 def add():
+    """Add test user."""
     db.session.add(User(name='test'))
     db.session.commit()
 
 
 if __name__ == '__main__':
-    manager.run()
+    app.run()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Flask-Migrate-2.5.3/tests/app_custom_directory_path.py 
new/Flask-Migrate-3.0.1/tests/app_custom_directory_path.py
--- old/Flask-Migrate-2.5.3/tests/app_custom_directory_path.py  2020-03-14 
10:57:33.000000000 +0100
+++ new/Flask-Migrate-3.0.1/tests/app_custom_directory_path.py  2021-05-15 
16:41:10.000000000 +0200
@@ -1,7 +1,6 @@
 from flask import Flask
 from flask_sqlalchemy import SQLAlchemy
-from flask_script import Manager
-from flask_migrate import Migrate, MigrateCommand
+from flask_migrate import Migrate
 from pathlib import Path
 
 app = Flask(__name__)
@@ -11,20 +10,18 @@
 db = SQLAlchemy(app)
 migrate = Migrate(app, db, directory=Path('temp_folder/temp_migrations'))
 
-manager = Manager(app)
-manager.add_command('db', MigrateCommand)
-
 
 class User(db.Model):
     id = db.Column(db.Integer, primary_key=True)
     name = db.Column(db.String(128))
 
 
-@manager.command
+@app.cli.command()
 def add():
+    """Add test user."""
     db.session.add(User(name='test'))
     db.session.commit()
 
 
 if __name__ == '__main__':
-    manager.run()
+    app.run()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/tests/app_multidb.py 
new/Flask-Migrate-3.0.1/tests/app_multidb.py
--- old/Flask-Migrate-2.5.3/tests/app_multidb.py        2019-12-12 
00:09:00.000000000 +0100
+++ new/Flask-Migrate-3.0.1/tests/app_multidb.py        2021-05-30 
16:48:14.000000000 +0200
@@ -1,8 +1,7 @@
 #!/bin/env python
 from flask import Flask
 from flask_sqlalchemy import SQLAlchemy
-from flask_script import Manager
-from flask_migrate import Migrate, MigrateCommand
+from flask_migrate import Migrate
 
 app = Flask(__name__)
 app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app1.db'
@@ -27,16 +26,14 @@
 
 migrate = Migrate(app, db)
 
-manager = Manager(app)
-manager.add_command('db', MigrateCommand)
 
-
-@manager.command
+@app.cli.command()
 def add():
+    """Add test users."""
     db.session.add(User(name='test'))
     db.session.add(Group(name='group'))
     db.session.commit()
 
 
 if __name__ == '__main__':
-    manager.run()
+    app.run()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/tests/test_migrate.py 
new/Flask-Migrate-3.0.1/tests/test_migrate.py
--- old/Flask-Migrate-2.5.3/tests/test_migrate.py       2020-03-14 
10:57:33.000000000 +0100
+++ new/Flask-Migrate-3.0.1/tests/test_migrate.py       2021-05-15 
16:32:35.000000000 +0200
@@ -1,13 +1,13 @@
 import os
-import shlex
 import shutil
-import subprocess
-import sys
 import unittest
+import subprocess
+import shlex
 
 
-def run_cmd(cmd):
+def run_cmd(app, cmd):
     """Run a command and return a tuple with (stdout, stderr, exit_code)"""
+    os.environ['FLASK_APP'] = app
     process = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE,
                                stderr=subprocess.PIPE)
     (stdout, stderr) = process.communicate()
@@ -54,43 +54,49 @@
             self.assertTrue(isinstance(v, int))
 
     def test_migrate_upgrade(self):
-        (o, e, s) = run_cmd(sys.executable + ' app.py db init')
-        self.assertTrue(s == 0)
-        (o, e, s) = run_cmd(sys.executable + ' app.py db migrate')
+        (o, e, s) = run_cmd('app.py', 'flask db init')
         self.assertTrue(s == 0)
-        (o, e, s) = run_cmd(sys.executable + ' app.py db upgrade')
+        (o, e, s) = run_cmd('app.py', 'flask db migrate')
         self.assertTrue(s == 0)
-        (o, e, s) = run_cmd(sys.executable + ' app.py add')
+        (o, e, s) = run_cmd('app.py', 'flask db upgrade')
         self.assertTrue(s == 0)
 
+        from .app import db, User
+        db.session.add(User(name='test'))
+        db.session.commit()
+
     def test_custom_directory(self):
-        (o, e, s) = run_cmd(sys.executable + ' app_custom_directory.py db 
init')
-        self.assertTrue(s == 0)
-        (o, e, s) = run_cmd(sys.executable + ' app_custom_directory.py db 
migrate')
+        (o, e, s) = run_cmd('app_custom_directory.py', 'flask db init')
         self.assertTrue(s == 0)
-        (o, e, s) = run_cmd(sys.executable + ' app_custom_directory.py db 
upgrade')
+        (o, e, s) = run_cmd('app_custom_directory.py', 'flask db migrate')
         self.assertTrue(s == 0)
-        (o, e, s) = run_cmd(sys.executable + ' app_custom_directory.py add')
+        (o, e, s) = run_cmd('app_custom_directory.py', 'flask db upgrade')
         self.assertTrue(s == 0)
 
+        from .app_custom_directory import db, User
+        db.session.add(User(name='test'))
+        db.session.commit()
+
     def test_custom_directory_path(self):
-        (o, e, s) = run_cmd(sys.executable + ' app_custom_directory_path.py db 
init')
+        (o, e, s) = run_cmd('app_custom_directory_path.py', 'flask db init')
         self.assertTrue(s == 0)
-        (o, e, s) = run_cmd(sys.executable + ' app_custom_directory_path.py db 
migrate')
+        (o, e, s) = run_cmd('app_custom_directory_path.py', 'flask db migrate')
         self.assertTrue(s == 0)
-        (o, e, s) = run_cmd(sys.executable + ' app_custom_directory_path.py db 
upgrade')
-        self.assertTrue(s == 0)
-        (o, e, s) = run_cmd(sys.executable + ' app_custom_directory_path.py 
add')
+        (o, e, s) = run_cmd('app_custom_directory_path.py', 'flask db upgrade')
         self.assertTrue(s == 0)
 
+        from .app_custom_directory_path import db, User
+        db.session.add(User(name='test'))
+        db.session.commit()
+
     def test_compare_type(self):
-        (o, e, s) = run_cmd(sys.executable + ' app_compare_type1.py db init')
+        (o, e, s) = run_cmd('app_compare_type1.py', 'flask db init')
         self.assertTrue(s == 0)
-        (o, e, s) = run_cmd(sys.executable + ' app_compare_type1.py db 
migrate')
+        (o, e, s) = run_cmd('app_compare_type1.py', 'flask db migrate')
         self.assertTrue(s == 0)
-        (o, e, s) = run_cmd(sys.executable + ' app_compare_type1.py db 
upgrade')
+        (o, e, s) = run_cmd('app_compare_type1.py', 'flask db upgrade')
         self.assertTrue(s == 0)
-        (o, e, s) = run_cmd(sys.executable + ' app_compare_type2.py db 
migrate')
+        (o, e, s) = run_cmd('app_compare_type2.py', 'flask db migrate')
         self.assertTrue(s == 0)
         self.assertTrue(b'Detected type change from VARCHAR(length=128) '
                         b'to String(length=10)' in e)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/tests/test_migrate_flaskcli.py 
new/Flask-Migrate-3.0.1/tests/test_migrate_flaskcli.py
--- old/Flask-Migrate-2.5.3/tests/test_migrate_flaskcli.py      2020-03-14 
10:57:33.000000000 +0100
+++ new/Flask-Migrate-3.0.1/tests/test_migrate_flaskcli.py      1970-01-01 
01:00:00.000000000 +0100
@@ -1,102 +0,0 @@
-import os
-import shutil
-import unittest
-import subprocess
-import shlex
-
-
-def run_cmd(app, cmd):
-    """Run a command and return a tuple with (stdout, stderr, exit_code)"""
-    os.environ['FLASK_APP'] = app
-    process = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE,
-                               stderr=subprocess.PIPE)
-    (stdout, stderr) = process.communicate()
-    print('\n$ ' + cmd)
-    print(stdout.decode('utf-8'))
-    print(stderr.decode('utf-8'))
-    return stdout, stderr, process.wait()
-
-
-class TestMigrate(unittest.TestCase):
-    def setUp(self):
-        os.chdir(os.path.split(os.path.abspath(__file__))[0])
-        try:
-            os.remove('app.db')
-        except OSError:
-            pass
-        try:
-            shutil.rmtree('migrations')
-        except OSError:
-            pass
-        try:
-            shutil.rmtree('temp_folder')
-        except OSError:
-            pass
-
-    def tearDown(self):
-        try:
-            os.remove('app.db')
-        except OSError:
-            pass
-        try:
-            shutil.rmtree('migrations')
-        except OSError:
-            pass
-        try:
-            shutil.rmtree('temp_folder')
-        except OSError:
-            pass
-
-    def test_alembic_version(self):
-        from flask_migrate import alembic_version
-        self.assertEqual(len(alembic_version), 3)
-        for v in alembic_version:
-            self.assertTrue(isinstance(v, int))
-
-    def test_migrate_upgrade(self):
-        (o, e, s) = run_cmd('app.py', 'flask db init')
-        self.assertTrue(s == 0)
-        (o, e, s) = run_cmd('app.py', 'flask db migrate')
-        self.assertTrue(s == 0)
-        (o, e, s) = run_cmd('app.py', 'flask db upgrade')
-        self.assertTrue(s == 0)
-
-        from .app import db, User
-        db.session.add(User(name='test'))
-        db.session.commit()
-
-    def test_custom_directory(self):
-        (o, e, s) = run_cmd('app_custom_directory.py', 'flask db init')
-        self.assertTrue(s == 0)
-        (o, e, s) = run_cmd('app_custom_directory.py', 'flask db migrate')
-        self.assertTrue(s == 0)
-        (o, e, s) = run_cmd('app_custom_directory.py', 'flask db upgrade')
-        self.assertTrue(s == 0)
-
-        from .app_custom_directory import db, User
-        db.session.add(User(name='test'))
-        db.session.commit()
-
-    def test_custom_directory_path(self):
-        (o, e, s) = run_cmd('app_custom_directory_path.py', 'flask db init')
-        self.assertTrue(s == 0)
-        (o, e, s) = run_cmd('app_custom_directory_path.py', 'flask db migrate')
-        self.assertTrue(s == 0)
-        (o, e, s) = run_cmd('app_custom_directory_path.py', 'flask db upgrade')
-        self.assertTrue(s == 0)
-
-        from .app_custom_directory_path import db, User
-        db.session.add(User(name='test'))
-        db.session.commit()
-
-    def test_compare_type(self):
-        (o, e, s) = run_cmd('app_compare_type1.py', 'flask db init')
-        self.assertTrue(s == 0)
-        (o, e, s) = run_cmd('app_compare_type1.py', 'flask db migrate')
-        self.assertTrue(s == 0)
-        (o, e, s) = run_cmd('app_compare_type1.py', 'flask db upgrade')
-        self.assertTrue(s == 0)
-        (o, e, s) = run_cmd('app_compare_type2.py', 'flask db migrate')
-        self.assertTrue(s == 0)
-        self.assertTrue(b'Detected type change from VARCHAR(length=128) '
-                        b'to String(length=10)' in e)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/tests/test_multidb_migrate.py 
new/Flask-Migrate-3.0.1/tests/test_multidb_migrate.py
--- old/Flask-Migrate-2.5.3/tests/test_multidb_migrate.py       2019-12-12 
00:09:27.000000000 +0100
+++ new/Flask-Migrate-3.0.1/tests/test_multidb_migrate.py       2019-12-08 
18:39:21.000000000 +0100
@@ -1,14 +1,14 @@
 import os
-import shlex
 import shutil
-import sqlite3
-import subprocess
-import sys
 import unittest
+import subprocess
+import shlex
+import sqlite3
 
 
-def run_cmd(cmd):
+def run_cmd(app, cmd):
     """Run a command and return a tuple with (stdout, stderr, exit_code)"""
+    os.environ['FLASK_APP'] = app
     process = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE,
                                stderr=subprocess.PIPE)
     (stdout, stderr) = process.communicate()
@@ -40,11 +40,11 @@
             pass
 
     def test_multidb_migrate_upgrade(self):
-        (o, e, s) = run_cmd(sys.executable + ' app_multidb.py db init 
--multidb')
+        (o, e, s) = run_cmd('app_multidb.py', 'flask db init --multidb')
         self.assertTrue(s == 0)
-        (o, e, s) = run_cmd(sys.executable + ' app_multidb.py db migrate')
+        (o, e, s) = run_cmd('app_multidb.py', 'flask db migrate')
         self.assertTrue(s == 0)
-        (o, e, s) = run_cmd(sys.executable + ' app_multidb.py db upgrade')
+        (o, e, s) = run_cmd('app_multidb.py', 'flask db upgrade')
         self.assertTrue(s == 0)
 
         # ensure the tables are in the correct databases
@@ -65,11 +65,13 @@
         self.assertIn(('group',), tables)
 
         # ensure the databases can be written to
-        (o, e, s) = run_cmd(sys.executable + ' app_multidb.py add')
-        self.assertTrue(s == 0)
+        from .app_multidb import db, User, Group
+        db.session.add(User(name='test'))
+        db.session.add(Group(name='group'))
+        db.session.commit()
 
         # ensure the downgrade works
-        (o, e, s) = run_cmd(sys.executable + ' app_multidb.py db downgrade')
+        (o, e, s) = run_cmd('app_multidb.py', 'flask db downgrade')
         self.assertTrue(s == 0)
 
         conn1 = sqlite3.connect('app1.db')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Flask-Migrate-2.5.3/tests/test_multidb_migrate_flaskcli.py 
new/Flask-Migrate-3.0.1/tests/test_multidb_migrate_flaskcli.py
--- old/Flask-Migrate-2.5.3/tests/test_multidb_migrate_flaskcli.py      
2019-12-08 18:39:21.000000000 +0100
+++ new/Flask-Migrate-3.0.1/tests/test_multidb_migrate_flaskcli.py      
1970-01-01 01:00:00.000000000 +0100
@@ -1,91 +0,0 @@
-import os
-import shutil
-import unittest
-import subprocess
-import shlex
-import sqlite3
-
-
-def run_cmd(app, cmd):
-    """Run a command and return a tuple with (stdout, stderr, exit_code)"""
-    os.environ['FLASK_APP'] = app
-    process = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE,
-                               stderr=subprocess.PIPE)
-    (stdout, stderr) = process.communicate()
-    return stdout, stderr, process.wait()
-
-
-class TestMigrate(unittest.TestCase):
-    def setUp(self):
-        os.chdir(os.path.split(os.path.abspath(__file__))[0])
-        try:
-            os.remove('app1.db')
-            os.remove('app2.db')
-        except OSError:
-            pass
-        try:
-            shutil.rmtree('migrations')
-        except OSError:
-            pass
-
-    def tearDown(self):
-        try:
-            os.remove('app1.db')
-            os.remove('app2.db')
-        except OSError:
-            pass
-        try:
-            shutil.rmtree('migrations')
-        except OSError:
-            pass
-
-    def test_multidb_migrate_upgrade(self):
-        (o, e, s) = run_cmd('app_multidb.py', 'flask db init --multidb')
-        self.assertTrue(s == 0)
-        (o, e, s) = run_cmd('app_multidb.py', 'flask db migrate')
-        self.assertTrue(s == 0)
-        (o, e, s) = run_cmd('app_multidb.py', 'flask db upgrade')
-        self.assertTrue(s == 0)
-
-        # ensure the tables are in the correct databases
-        conn1 = sqlite3.connect('app1.db')
-        c = conn1.cursor()
-        c.execute('select name from sqlite_master')
-        tables = c.fetchall()
-        conn1.close()
-        self.assertIn(('alembic_version',), tables)
-        self.assertIn(('user',), tables)
-
-        conn2 = sqlite3.connect('app2.db')
-        c = conn2.cursor()
-        c.execute('select name from sqlite_master')
-        tables = c.fetchall()
-        conn2.close()
-        self.assertIn(('alembic_version',), tables)
-        self.assertIn(('group',), tables)
-
-        # ensure the databases can be written to
-        from .app_multidb import db, User, Group
-        db.session.add(User(name='test'))
-        db.session.add(Group(name='group'))
-        db.session.commit()
-
-        # ensure the downgrade works
-        (o, e, s) = run_cmd('app_multidb.py', 'flask db downgrade')
-        self.assertTrue(s == 0)
-
-        conn1 = sqlite3.connect('app1.db')
-        c = conn1.cursor()
-        c.execute('select name from sqlite_master')
-        tables = c.fetchall()
-        conn1.close()
-        self.assertIn(('alembic_version',), tables)
-        self.assertNotIn(('user',), tables)
-
-        conn2 = sqlite3.connect('app2.db')
-        c = conn2.cursor()
-        c.execute('select name from sqlite_master')
-        tables = c.fetchall()
-        conn2.close()
-        self.assertIn(('alembic_version',), tables)
-        self.assertNotIn(('group',), tables)

Reply via email to