diff options
author | CaselIT <cfederico87@gmail.com> | 2020-03-17 23:03:32 +0100 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2020-03-18 16:45:29 -0400 |
commit | 4f351a6ca8a6b5fe6718203226805f4e1a02a2db (patch) | |
tree | 311a185e5cda1a41dcbb02f4a81ed4ed9c82ad9c /alembic/testing | |
parent | 0753306f9c96b23913f24041b3bf2f74d5dc74b1 (diff) | |
download | alembic-4f351a6ca8a6b5fe6718203226805f4e1a02a2db.tar.gz |
Support sqlalchemy 1.4 exec_driver_sql, text() for strings
Adjusted tests so that only connection-explicit execution
is used, along with the use of text() for string invocation.
Tests that are testing explicitly for deprecation warnings
will bypass SQLAlchemy warnings. Added the RemovedIn20 warning
as an error raise for these two specific deprecation cases.
Co-authored-by: Mike Bayer <mike_mp@zzzcomputing.com>
Change-Id: I4f6b83366329aa95204522c9e99129021d1899fc
Diffstat (limited to 'alembic/testing')
-rw-r--r-- | alembic/testing/__init__.py | 1 | ||||
-rw-r--r-- | alembic/testing/plugin/plugin_base.py | 14 | ||||
-rw-r--r-- | alembic/testing/requirements.py | 7 |
3 files changed, 22 insertions, 0 deletions
diff --git a/alembic/testing/__init__.py b/alembic/testing/__init__.py index 238f2bd..f009da9 100644 --- a/alembic/testing/__init__.py +++ b/alembic/testing/__init__.py @@ -3,6 +3,7 @@ from sqlalchemy.testing import emits_warning # noqa from sqlalchemy.testing import engines # noqa from sqlalchemy.testing import mock # noqa from sqlalchemy.testing import provide_metadata # noqa +from sqlalchemy.testing import uses_deprecated # noqa from sqlalchemy.testing.config import requirements as requires # noqa from alembic import util # noqa diff --git a/alembic/testing/plugin/plugin_base.py b/alembic/testing/plugin/plugin_base.py index 276bc56..2d5e95a 100644 --- a/alembic/testing/plugin/plugin_base.py +++ b/alembic/testing/plugin/plugin_base.py @@ -40,6 +40,20 @@ def post_begin(): "once", category=pytest.PytestDeprecationWarning ) + from sqlalchemy import exc + + if hasattr(exc, "RemovedIn20Warning"): + warnings.filterwarnings( + "error", + category=exc.RemovedIn20Warning, + message=".*Engine.execute", + ) + warnings.filterwarnings( + "error", + category=exc.RemovedIn20Warning, + message=".*Passing a string", + ) + # override selected SQLAlchemy pytest hooks with vendored functionality def stop_test_class(cls): diff --git a/alembic/testing/requirements.py b/alembic/testing/requirements.py index 1cb146b..4804646 100644 --- a/alembic/testing/requirements.py +++ b/alembic/testing/requirements.py @@ -85,6 +85,13 @@ class SuiteRequirements(Requirements): ) @property + def sqlalchemy_14(self): + return exclusions.skip_if( + lambda config: not util.sqla_14, + "SQLAlchemy 1.4 or greater required", + ) + + @property def sqlalchemy_1115(self): return exclusions.skip_if( lambda config: not util.sqla_1115, |